| Строка 1: |
Строка 1: |
| − | Дарова
| + | {{Архивировано}} |
| − | <div style='background: transparent;background: -moz-linear-gradient(top, rgba(32, 102, 148, .5) 0%, transparent 2em);background: -o-linear-gradient(top, rgba(32, 102, 148, .5) 0%, transparent 2em);background: -webkit-linear-gradient(top, rgba(32, 102, 148, .5) 0%, transparent 2em);background: linear-gradient(rgba(32, 102, 148, .5) 0%, transparent 2em);border-radius: 1em'>
| + | {| border="1" cellspacing="0" cellpadding="2" width="80%" style="background-color:#EEEEFF;" |
| − | {|style='align: center;border: 2px ridge rgb(32, 102, 148);text-align: center' border='1' align='center'
| + | ! style="background-color:lightblue;" width="200" |Профессия |
| | + | ! style="background-color:lightblue;" |Описание |
| | + | ! style="background-color:lightblue;" width="100" |Сложность |
| | |- | | |- |
| − | |style='font-size: larger;text-align: left'|<h3> <div style='color: #993399;display: inline;font-style: italic;'>—</div><div style='color: #395a9a;display: inline;'>𝓓</div><div style='color: #a66300;display: inline;'>𝒜</div><div style='color: #a30000;display: inline;'>𝓡</div><div style='color: #008000;display: inline;'>𝒪</div><div style='color: #ff00ff;display: inline;'>𝓥</div><div style='color: #6eaa2c;display: inline;'>𝒜</div><div style='color: #395a9a;display: inline;font-style: italic;'>, </div><div style='color: #a3a332;display: inline;'>𝒮</div><div style='color: #395a9a;display: inline;'>𝓐</div><div style='color: #6d3f40;display: inline;'>𝒩</div><div style='color: #5c5c8a;display: inline;'>𝓨</div><div style='color: #008160;display: inline;'>𝒪</div><div style='color: #7f6539;display: inline;'>𝓚</div><div style='color: #6eaa2c;display: inline;font-style: italic;'>!</div> | + | ![[File:Jobhop.png]][[Head of Personnel|Глава снабжения]] |
| − | |} | + | |'''Доступ:''' Карго, сервисные отсеки |
| | + | '''Подчинение:''' [[Captain|Капитан]] |
| | | | |
| − | --
| + | '''Обязанности:''' Обеспечивать снабжение станции ресурсами, повышать код до красного для заказа личных штурмовых винтовок. |
| − | -- This module implements {{Sidebar}}
| |
| − | --
| |
| − | require('Module:No globals')
| |
| | | | |
| − | local p = {}
| + | '''Guides:''' [[Space Law/Onyx]], [[Chain of Command]], [[Guide to Paperworks]], [[Official forms| Бланки документов]] |
| | + | !Очень сложно |
| | + | |}<p style="text-align:right;">''"Сидя в конце стола президиума, Гардин размышлял о том, почему из ученых получаются такие плохие администраторы. Видимо, думал он, потому что они привыкли иметь дело с фактами, а не с живыми людьми."''</p><p style="text-align:right;">'''Айзек Азимов, "Основание"'''</p> |
| | + | [[Файл:Head of provising office.png|альт=|мини|500x500пкс|Центр принятия логистических решений.]] |
| | + | '''Глава снабжения''' отвечает за финансово-ресурсное снабжение станции. В его подчинении находится отдел карго - грузчики и шахтеры, а так же сервисный отсек - повара, бармены, ботаники, уборщики и библиотекари. |
| | + | ==Даже близко не капитан== |
| | + | Вы - не гроза криминала, как глава охраны, и не амбициозный директор исследований. Ваши задачи скромнее, но не менее важны для станции. От вас зависит, будут ли у ученных ресурсы для исследований, генераторы щита у инженеров, пиво в желудках. |
| | | | |
| − | local getArgs = require('Module:Arguments').getArgs
| + | Итак, у Вас есть все возможности [[Captain|капитана]], за исключением формального звания - но несколько секунд наедине с ID компьютером и это исправят. Они так же начинают рядом со шкафчиком, в котором хранятся лазерный пистолет и ещё пара полезных вещей. |
| − | local navbar = require('Module:Navbar')._navbar
| |
| | | | |
| − | local function trimAndAddAutomaticNewline(s)
| + | '''Важно!''' |
| − | -- For compatibility with the original {{sidebar with collapsible lists}}
| |
| − | -- implementation, which passed some parameters through {{#if}} to trim
| |
| − | -- their whitespace. This also triggered the automatic newline behavior.
| |
| − | -- ([[meta:Help:Newlines and spaces#Automatic newline]])
| |
| − | s = mw.ustring.gsub(s, "^%s*(.-)%s*$", "%1")
| |
| − | if mw.ustring.find(s, '^[#*:;]') or mw.ustring.find(s, '^{|') then
| |
| − | return '\n' .. s
| |
| − | else
| |
| − | return s
| |
| − | end
| |
| − | end
| |
| | | | |
| − | function p.sidebar(frame, args)
| + | Глава персонала - '''талантливый администратор''', распорядитель человеческими ресурсами, а не '''[[Security_Officer | сотрудник службы безопасности]]'''. |
| − | if not args then
| |
| − | args = getArgs(frame)
| |
| − | end
| |
| − | local root = mw.html.create()
| |
| − | local child = args.child and mw.text.trim(args.child) == 'yes'
| |
| | | | |
| − | if not child then
| + | Если вы воруете у охранников тепловизоры и набираете в арсенале оружие, затем носясь по станции и верша правосудие — '''идите в охрану!''' Уступите профессию тому, кто правильно и интересно её отыграет. |
| − | root = root
| + | ==Пренеприятнейшее известие== |
| − | :tag('table')
| + | Ваша вторая по важности задача - периодические ревизии и инспекции работы персонала. '''[[Chemist | Химики]]''' варят наркотики, '''[[Botanist | ботаники]]''' выращивают наркотики, а '''[[Station_Engineer | инженеры]]''' их употребляют и думают, что могут при этом безнаказанно халявить? Ворвитесь в их пучину безделья и некомпетентности, раздайте форсирующих подзатыльников, увольте, если дела совсем плохи. '''Главное''' - возьмите с собой на обход одного или двух '''[[Security_Officer | сотрудников службы безопасности]]''', на всякий случай. |
| − | :addClass('vertical-navbox')
| + | ==Советы== |
| − | :addClass(args.wraplinks ~= 'true' and 'nowraplinks' or nil)
| + | * Общайтесь! У главы охраны куча оружия, у '''[[Chief Engineer|старшего инженера]]''' — инструментов... Вы же — талантливый администратор, используйте свои навыки! Используйте '''[[Radio Channels|командный радиоканал]]''' для этого. |
| − | :addClass(args.bodyclass or args.class)
| + | *Постарайтесь находиться возле мостика — по крайней мере в начале. Многие люди, не получившие желаемой профессии, будут просить другую работу. Вам решать - выдавать им или нет желаемый доступ. Будьте справедливы. |
| − | :css('float', args.float or 'right')
| + | * Уточняйте у глав отделов, нужны ли им новые работники в штате. [http://www.youtube.com/watch?feature=player_embedded&v=NisCkxU544c#! Не назначайте ненужных людей] и не устраивайте [[Janitor|драк за галоши]]. |
| − | :css('clear', (args.float == 'none' and 'both') or args.float or 'right')
| + | *Все гражданские на станции - ваш штат. И если кто-то из них напортачил — используйте свои разговорные навыки, чтобы этого не повторилось. |
| − | :css('width', args.width or '22.0em')
| + | *Вы не из службы безопасности. Если никого нет рядом, конечно делайте то, что должны, но если служба безопасности появляется, отойдите в сторонку и дайте им выполнять их работу. |
| − | :css('margin', args.float == 'left' and '0 1.0em 1.0em 0' or '0 0 1.0em 1.0em')
| + | *В большинстве случаев, вы или '''[[Head of Security|глава охраны]]''' - правая рука капитана. Делайте всё, что он говорит. |
| − | :css('background', '#f9f9f9')
| + | *Не забывайте об Иане, он ведь ваш самый верный друг на всей станции. |
| − | :css('border', '1px solid #aaa')
| + | Помните о том, что в отсутствии '''[[Captain|капитана]]''' вы - самый главный человек на станции, и вполне можете приказывать главам. В вашей же власти назначать глав на пустующие должности и снимать особых идиотов, если '''[[Captain|капитана]]''' нет. Если капитан есть, прежде всего вам стоит согласовать такие действия с ним. |
| − | :css('padding', '0.2em')
| + | {{JobMenu}} |
| − | :css('border-spacing', '0.4em 0')
| |
| − | :css('text-align', 'center')
| |
| − | :css('line-height', '1.4em')
| |
| − | :css('font-size', '88%')
| |
| − | :cssText(args.bodystyle or args.style)
| |
| − | | |
| − | if args.outertitle then
| |
| − | root
| |
| − | :tag('caption')
| |
| − | :addClass(args.outertitleclass)
| |
| − | :css('padding-bottom', '0.2em')
| |
| − | :css('font-size', '125%')
| |
| − | :css('line-height', '1.2em')
| |
| − | :css('font-weight', 'bold')
| |
| − | :cssText(args.outertitlestyle)
| |
| − | :wikitext(args.outertitle)
| |
| − | end
| |
| − | | |
| − | if args.topimage then
| |
| − | local imageCell = root:tag('tr'):tag('td')
| |
| − | | |
| − | imageCell
| |
| − | :addClass(args.topimageclass)
| |
| − | :css('padding', '0.4em 0')
| |
| − | :cssText(args.topimagestyle)
| |
| − | :wikitext(args.topimage)
| |
| − | | |
| − | if args.topcaption then
| |
| − | imageCell
| |
| − | :tag('div')
| |
| − | :css('padding-top', '0.2em')
| |
| − | :css('line-height', '1.2em')
| |
| − | :cssText(args.topcaptionstyle)
| |
| − | :wikitext(args.topcaption)
| |
| − | end
| |
| − | end
| |
| − | | |
| − | if args.pretitle then
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('td')
| |
| − | :addClass(args.pretitleclass)
| |
| − | :cssText(args.basestyle)
| |
| − | :css('padding-top', args.topimage and '0.2em' or '0.4em')
| |
| − | :css('line-height', '1.2em')
| |
| − | :cssText(args.pretitlestyle)
| |
| − | :wikitext(args.pretitle)
| |
| − | end
| |
| − | | |
| − | end
| |
| − | | |
| − | if args.title then
| |
| − | if child then
| |
| − | root
| |
| − | :wikitext(args.title)
| |
| − | :wikitext('</th></tr>') -- @todo replace this with unclosed again once mw.html gets it
| |
| − | else
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('th')
| |
| − | :addClass(args.titleclass)
| |
| − | :cssText(args.basestyle)
| |
| − | :css('padding', '0.2em 0.4em 0.2em')
| |
| − | :css('padding-top', args.pretitle and 0)
| |
| − | :css('font-size', '145%')
| |
| − | :css('line-height', '1.2em')
| |
| − | :cssText(args.titlestyle)
| |
| − | :wikitext(args.title)
| |
| − | end
| |
| − | end
| |
| − | | |
| − | if args.image then
| |
| − | local imageCell = root:tag('tr'):tag('td')
| |
| − | | |
| − | imageCell
| |
| − | :addClass(args.imageclass)
| |
| − | :css('padding', '0.2em 0 0.4em')
| |
| − | :cssText(args.imagestyle)
| |
| − | :wikitext(args.image)
| |
| − | | |
| − | if args.caption then
| |
| − | imageCell
| |
| − | :tag('div')
| |
| − | :css('padding-top', '0.2em')
| |
| − | :css('line-height', '1.2em')
| |
| − | :cssText(args.captionstyle)
| |
| − | :wikitext(args.caption)
| |
| − | end
| |
| − | end
| |
| − | | |
| − | if args.above then
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('td')
| |
| − | :addClass(args.aboveclass)
| |
| − | :css('padding', '0.3em 0.4em 0.3em')
| |
| − | :css('font-weight', 'bold')
| |
| − | :cssText(args.abovestyle)
| |
| − | :newline() -- newline required for bullet-points to work
| |
| − | :wikitext(args.above)
| |
| − | end
| |
| − | | |
| − | local rowNums = {}
| |
| − | for k, v in pairs(args) do
| |
| − | k = '' .. k
| |
| − | local num = k:match('^heading(%d+)$') or k:match('^content(%d+)$')
| |
| − | if num then table.insert(rowNums, tonumber(num)) end
| |
| − | end
| |
| − | table.sort(rowNums)
| |
| − | -- remove duplicates from the list (e.g. 3 will be duplicated if both heading3 and content3 are specified)
| |
| − | for i = #rowNums, 1, -1 do
| |
| − | if rowNums[i] == rowNums[i - 1] then
| |
| − | table.remove(rowNums, i)
| |
| − | end
| |
| − | end
| |
| − | | |
| − | for i, num in ipairs(rowNums) do
| |
| − | local heading = args['heading' .. num]
| |
| − | if heading then
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('th')
| |
| − | :addClass(args.headingclass)
| |
| − | :css('padding', '0.1em')
| |
| − | :cssText(args.basestyle)
| |
| − | :cssText(args.headingstyle)
| |
| − | :cssText(args['heading' .. num .. 'style'])
| |
| − | :newline()
| |
| − | :wikitext(heading)
| |
| − | end
| |
| − | | |
| − | local content = args['content' .. num]
| |
| − | if content then
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('td')
| |
| − | :addClass(args.contentclass)
| |
| − | :css('padding', '0 0.1em 0.4em')
| |
| − | :cssText(args.contentstyle)
| |
| − | :cssText(args['content' .. num .. 'style'])
| |
| − | :newline()
| |
| − | :wikitext(content)
| |
| − | :done()
| |
| − | :newline() -- Without a linebreak after the </td>, a nested list like "* {{hlist| ...}}" doesn't parse correctly.
| |
| − | end
| |
| − | end
| |
| − | | |
| − | if args.below then
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('td')
| |
| − | :addClass(args.belowclass)
| |
| − | :css('padding', '0.3em 0.4em 0.3em')
| |
| − | :css('font-weight', 'bold')
| |
| − | :cssText(args.belowstyle)
| |
| − | :newline()
| |
| − | :wikitext(args.below)
| |
| − | end
| |
| − | | |
| − | if not child then
| |
| − | local navbarArg = args.navbar or args.tnavbar
| |
| − | if navbarArg ~= 'none' and navbarArg ~= 'off' and (args.name or frame:getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Sidebar') then
| |
| − | root
| |
| − | :tag('tr')
| |
| − | :tag('td')
| |
| − | :css('text-align', 'right')
| |
| − | :css('font-size', '115%')
| |
| − | :cssText(args.navbarstyle or args.tnavbarstyle)
| |
| − | :wikitext(navbar{
| |
| − | args.name,
| |
| − | mini = 1,
| |
| − | fontstyle = args.navbarfontstyle or args.tnavbarfontstyle
| |
| − | })
| |
| − | end
| |
| − | end
| |
| − | | |
| − | return tostring(root)
| |
| − | end
| |
| − | | |
| − | function p.collapsible(frame)
| |
| − | local args = getArgs(frame)
| |
| − | | |
| − | args.abovestyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.abovestyle or '')
| |
| − | args.belowstyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.belowstyle or '')
| |
| − | args.navbarstyle = 'padding-top: 0.6em;' .. (args.navbarstyle or args.tnavbarstyle or '')
| |
| − | if not args.name and frame:getParent():getTitle():gsub('/sandbox$', '') == 'Template:Sidebar with collapsible lists' then
| |
| − | args.navbar = 'none'
| |
| − | end
| |
| − | | |
| − | local contentArgs = {}
| |
| − | | |
| − | for k, v in pairs(args) do
| |
| − | local num = string.match(k, '^list(%d+)$')
| |
| − | if num then
| |
| − | local expand = args.expanded and (args.expanded == 'all' or args.expanded == args['list' .. num .. 'name'])
| |
| − | | |
| − | local row = mw.html.create('div')
| |
| − | row
| |
| − | :addClass('NavFrame')
| |
| − | :addClass((not expand) and 'collapsed' or nil)
| |
| − | :css('border', 'none')
| |
| − | :css('padding', 0)
| |
| − | :cssText(args.listframestyle)
| |
| − | :cssText(args['list' .. num .. 'framestyle'])
| |
| − | :tag('div')
| |
| − | :addClass('NavHead')
| |
| − | :addClass(args.listtitleclass)
| |
| − | :css('font-size', '105%')
| |
| − | :css('background', 'transparent')
| |
| − | :css('text-align', 'left')
| |
| − | :cssText(args.basestyle)
| |
| − | :cssText(args.listtitlestyle)
| |
| − | :cssText(args['list' .. num .. 'titlestyle'])
| |
| − | :wikitext(trimAndAddAutomaticNewline(args['list' .. num .. 'title'] or 'List'))
| |
| − | :done()
| |
| − | :tag('div')
| |
| − | :addClass('NavContent')
| |
| − | :addClass(args.listclass)
| |
| − | :addClass(args['list' .. num .. 'class'])
| |
| − | :css('font-size', '105%')
| |
| − | :css('padding', '0.2em 0 0.4em')
| |
| − | :css('text-align', 'center')
| |
| − | :cssText(args.liststyle)
| |
| − | :cssText(args['list' .. num .. 'style'])
| |
| − | :wikitext(trimAndAddAutomaticNewline(args['list' .. num]))
| |
| − | | |
| − | contentArgs['content' .. num] = tostring(row)
| |
| − | end
| |
| − | end
| |
| − | | |
| − | for k, v in pairs(contentArgs) do
| |
| − | args[k] = v
| |
| − | end
| |
| − | | |
| − | return p.sidebar(frame, args)
| |
| − | end
| |
| − | | |
| − | return p
| |