Песочница/Pok/3: различия между версиями

Материал из Space Station 14 Вики
мНет описания правки
Нет описания правки
 
(не показаны 252 промежуточные версии 4 участников)
Строка 1: Строка 1:
<onlyinclude>{{#switch: {{{1|}}}
{{docpage}}{{TOC hidden}}
| Suit =
{{OnLua|Сущность|module1=Сущность|module2=Сущность/поля|module3=GetField}}
  {{#switch: {{{2|}}}
  | Security = <!-- SuitSecurity -->
{{#invoke:Песочница/Pok|main
| anchorName = Бронежилеты
| id = ClothingOuterArmorBasic
| backgroundColor = #{{ColorPalette|Security|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* [[Инвентарь службы безопасности#ОхранШкаф|{{#invoke:Entity Lookup|getname|VendingMachineSecDrobe}}]] {{#invoke:Entity Lookup|createimagetooltip|Файл:VendingMachineSecDrobe.png|VendingMachineSecDrobe|Мета=32x32}}
* [[Инвентарь службы безопасности#Шкаф офицера службы безопасности|{{#invoke:Entity Lookup|getname|LockerSecurity}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerSecurity.png|LockerSecurity|Мета=32x32px}}
* Начальное снаряжения:
: [[Офицер СБ]]
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Пуленепробиваемый жилет
| id = ClothingOuterArmorBulletproof
| backgroundColor = #972626
| description =
* Размер: '''огромный'''
| location =
* Заказ груза:
: [[Таблица грузов#Ящик с броней|Ящик с броней]] [[Файл:ClothingHeadHoodBioSecurity.png|32px]]
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противоударная броня
| id = ClothingOuterArmorRiot
| backgroundColor = #972626
| description =
* Размер: '''огромный'''
| location =
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тяжёлый бронекостюм
| id = ClothingOuterArmorHeavy
| backgroundColor = #972626
| description =
* Размер: '''огромный'''
| location =
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Сапёрный костюм
| id = ClothingOuterSuitBomb
| backgroundColor = #972626
| description =
* Размер: '''огромный'''
| location =
* [[Инвентарь службы безопасности#Шкаф взрывозащитного снаряжения|{{#invoke:Entity Lookup|getname|ClosetBomb}}]] {{#invoke:Entity Lookup|createimagetooltip|Файл:ClosetBomb.png|ClosetBombFilled|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик сапёрного снаряжения|Ящик сапёрного снаряжения]] [[Файл:Bombsuit helmet.png|32px]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Отражающий бронежилет
| id = ClothingOuterArmorReflective
| backgroundColor = #972626
| description =
* Размер: '''огромный'''
* Отражает выстрелы [[Дальнобойное оружие#Лазерное оружие|лазеров]] с шансом '''100 %'''
| location =
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
* Заказ груза:
: [[Таблица грузов#Грандиозная лотерея|Грандиозная лотерея]] [[File:SpaceCash.png|32px]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Жилет детектива
| id = ClothingOuterVestDetective
| backgroundColor = #972626
| description =
* Размер: '''огромный'''
| location =  
* [[Инвентарь службы безопасности#ДетекШкаф|{{#invoke:Entity Lookup|getname|VendingMachineDetDrobe}}]] {{#invoke:Entity Lookup|createimagetooltip|File:VendingMachineDetDrobe.png|VendingMachineDetDrobe|Мета=32x32}}
* Начальное снаряжения:
: [[Детектив]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тренч детектива
| id = ClothingOuterCoatDetective
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =  
* [[Инвентарь службы безопасности#ДетекШкаф|{{#invoke:Entity Lookup|getname|VendingMachineDetDrobe}}]] {{#invoke:Entity Lookup|createimagetooltip|File:VendingMachineDetDrobe.png|VendingMachineDetDrobe|Мета=32x32}}
* Начальное снаряжения:
: [[Детектив]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Нуарный плащ
| id = ClothingOuterCoatDetectiveDark
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#ДетекШкаф|{{#invoke:Entity Lookup|getname|VendingMachineDetDrobe}}]] {{#invoke:Entity Lookup|createimagetooltip|File:VendingMachineDetDrobe.png|VendingMachineDetDrobe|Мета=32x32}}
* Начальное снаряжения:
: [[Детектив]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Бронированная куртка смотрителя
| id = ClothingOuterCoatWarden
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф смотрителя|{{#invoke:Entity Lookup|getname|LockerWarden}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerWarden.png|LockerWarden|Мета=32x32}}
* Начальное снаряжения:
: [[Смотритель]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Куртка смотрителя
| id = ClothingOuterCoatWardenAlt
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф смотрителя|{{#invoke:Entity Lookup|getname|LockerWarden}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerWarden.png|LockerWarden|Мета=32x32}}
* Начальное снаряжения:
: [[Смотритель]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Зимняя бронекуртка смотрителя
| id = ClothingOuterWinterWarden
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф смотрителя|{{#invoke:Entity Lookup|getname|LockerWarden}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerWarden.png|LockerWarden|Мета=32x32}}
* Начальное снаряжения:
: [[Смотритель]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тренч главы службы безопасности
| id = ClothingOuterCoatHoSTrench
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф главы службы безопасности|{{#invoke:Entity Lookup|getname|LockerHeadOfSecurity}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафГСБ-гифка.gif|LockerHeadOfSecurity|Мета=32x32}}
* Начальное снаряжения:
: [[ГСБ|Глава cлужбы безопасности]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Бронированная шинель
| id = ClothingOuterCoatHoSGreatcoat
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф главы службы безопасности|{{#invoke:Entity Lookup|getname|LockerHeadOfSecurity}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафГСБ-гифка.gif|LockerHeadOfSecurity|Мета=32x32}}
* Начальное снаряжения:
: [[ГСБ|Глава cлужбы безопасности]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шинель службы безопасности
| id = ClothingOuterCoatSecurityOvercoat
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф главы службы безопасности|{{#invoke:Entity Lookup|getname|LockerHeadOfSecurity}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафГСБ-гифка.gif|LockerHeadOfSecurity|Мета=32x32}}
* Начальное снаряжения:
: [[ГСБ|Глава cлужбы безопасности]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Зимняя бронекуртка главы службы безопасности
| id = ClothingOuterWinterHoS
| backgroundColor = #972626
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь службы безопасности#Шкаф главы службы безопасности|{{#invoke:Entity Lookup|getname|LockerHeadOfSecurity}} [Глава службы безопасности]]] {{#invoke:Entity Lookup|createimagetooltip|File:Dresser.png|DresserHeadOfSecurityFilled|Мета=32x32}}
* Начальное снаряжения:
: [[ГСБ|Глава cлужбы безопасности]]
}}
 
  | Science = <!-- SuitScience -->
{{#invoke:Песочница/Pok|main
| anchorName = Лабораторный халат учёного
| id = ClothingOuterCoatRnd
| backgroundColor = #{{ColorPalette|Science|Saturated}}
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* [[Инвентарь научного отдела#НаучШкаф|{{#invoke:Entity Lookup|getname|VendingMachineSciDrobe}}]] {{#invoke:Entity Lookup|createimagetooltip|File:Scidrobe.gif|VendingMachineSciDrobe|Мета=32x32px}}
* [[Инвентарь научного отдела#Шкаф учёного|{{#invoke:Entity Lookup|getname|LockerScienceFilled}} [Научный руководитель]]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафУчёного-гифка.gif|LockerScienceFilled|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Капюшон радиозащитного костюма
| id = ClothingHeadHatHoodRad
| backgroundColor = #{{ColorPalette|Science|Saturated}}
| description =
* Имеется встроенная маска
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противорадиационный костюм
| id = ClothingOuterSuitRad
| backgroundColor = #{{ColorPalette|Science|Saturated}}
| description =
* Размер: '''огромный'''
* Имеет встроенный капюшон
| location =
* {{#invoke:Entity Lookup|getname|ClosetRadiationSuitFilled}} {{#invoke:Entity Lookup|createimagetooltip|Файл:ШкафАнтирада-гифка.gif|ClosetRadiationSuitFilled|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик противорадиационного снаряжения|Ящик противорадиационного снаряжения]] [[Файл:Radiation.png|32px]]
}}
 
  | Service = <!-- SuitService -->
  | Engineering = <!-- SuitEngineering -->
  | Command = <!-- SuitCommand -->
{{#invoke:Песочница/Pok|main
| anchorName = Флотский панцирь
| id = ClothingOuterArmorCentcomCarapace
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''огромный'''
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Панцирь капитана
| id = ClothingOuterArmorCaptainCarapace
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* {{#invoke:Entity Lookup|getname|LockerCaptainFilledNoLaser}} {{#invoke:Entity Lookup|createimagetooltip|Файл:Кэпшкаф-гифка.gif|LockerCaptainFilledNoLaser|Мета=32x32px}}
* Начальное снаряжения:
: [[Капитан]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Торжественная куртка капитана
| id = ClothingOuterCoatCaptain
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* Начальное снаряжения:
: [[Капитан]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Куртка главы персонала
| id = ClothingOuterCoatHOP
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* {{#invoke:Entity Lookup|getname|LockerHeadOfPersonnelFilled}} {{#invoke:Entity Lookup|createimagetooltip|Файл:ШкафГП-гифка.gif|LockerHeadOfPersonnelFilled|Мета=32x32px}}
* Начальное снаряжения:
: [[ГП|Глава Персонала]]
}}
 
  | Medical = <!-- SuitMedical -->
{{#invoke:Песочница/Pok|main
| anchorName = Биозащитные костюмы
| id = ClothingOuterBioVirology
| backgroundColor = #{{ColorPalette|Medical|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* {{#invoke:Entity Lookup|getname|ClosetL3SecurityFilled}} {{#invoke:Entity Lookup|createimagetooltip|Файл:ClosetL3Security.png|ClosetL3SecurityFilled|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик биозащитных костюмов|Ящик биозащитных костюмов]] [[Файл:Bio helmet.png|32px]]
}}
 
  | Cargo = <!-- SuitCargo -->
  | Antagonist = <!-- SuitAntagonist -->
{{#invoke:Песочница/Pok|main
| anchorName = Бронированный тренч Синдиката
| id = ClothingOuterCoatSyndieCapArmored
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* {{#invoke:Entity Lookup|getname|VendingMachineSyndieDrobe}} ([[Взламываемые криптографическим секвенсором предметы|Взломанный]]) {{#invoke:Entity Lookup|createimagetooltip|Файл:Syndiedrobe.png|VendingMachineSyndieDrobe|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Зимняя бронекуртка Синдиката
| id = ClothingOuterWinterSyndieCapArmored
| backgroundColor = #7d1c1c
| protHeat      = 30 %
| protCaustic      = -
| protRadiation  = -
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* {{#invoke:Entity Lookup|getname|VendingMachineSyndieDrobe}} ([[Взламываемые криптографическим секвенсором предметы|Взломанный]]) {{#invoke:Entity Lookup|createimagetooltip|Файл:Syndiedrobe.png|VendingMachineSyndieDrobe|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тактический жилет
| id = ClothingOuterVestWeb
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тактический жилет наёмника
| id = ClothingOuterVestWebMerc
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Армейская РПС
| id = ClothingBeltMilitaryWebbing
| backgroundColor = #7d1c1c
| description =
* Размер: '''гигантский'''
* Имеет инвентарь: '''2x18'''
* Взрывной урон к содержимому снижается на <span style="color:tan">'''50 %'''</span>
| location =
* {{#invoke:Entity Lookup|getname|LockerSyndicatePersonalFilled}} {{#invoke:Entity Lookup|createimagetooltip|Файл:LockerSyndicatePersonal.png|LockerSyndicatePersonalFilled|Мета=32x32px}}
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тактический жилет гренадёра
| id = ClothingBeltMilitaryWebbingGrenadeFilled
| backgroundColor = #7d1c1c
| description =
* Размер: '''гигантский'''
* Имеет инвентарь: '''2x18'''
* Взрывной урон к содержимому снижается на <span style="color:tan">'''50 %'''</span>
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Рейдерский костюм Синдиката
| id = ClothingOuterArmorRaid
| backgroundColor = #7d1c1c
| description =
* Размер: '''огромный'''
| location =
* [[Файл:ReinforcementRadio.png]] [[Аплинк]]
}}
 
  | Other = <!-- SuitOther -->
{{#invoke:Песочница/Pok|main
| anchorName = Пожарный костюм
| id = ClothingOuterSuitFire
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
| location =
* {{#invoke:Entity Lookup|getname|ClosetFireFilled}} {{#invoke:Entity Lookup|createimagetooltip|Файл:ПожарныйШкаф-гифка.gif|ClosetFireFilled|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик пожарного снаряжения|Ящик пожарного снаряжения]] [[Файл:Objects-Misc-fire extinguisher.png|32px]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Любая зимняя куртка
| id = ClothingOuterWinterCoat
| backgroundColor = #333845
| description =
* Размер: '''средний'''
* Имеет инвентарь: '''2x6'''
| location =
* Где угодно на станции
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Доги самурая
| id = ClothingOuterDogi
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
* Имеет инвентарь: '''2x6'''
| location =
* {{#invoke:Entity Lookup|getname|VendingMachineTheater}} ([[Взламываемые криптографическим секвенсором предметы|Взломанный]]) {{#invoke:Entity Lookup|createimagetooltip|Файл:VendingMachineTheater.png|VendingMachineTheater|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Хитиновый панцирь
| id = ClothingOuterArmorChangeling
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Красные доспехи магуса
| id = ClothingOuterArmorMagusred
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Доспехи аколита
| id = ClothingOuterArmorCult
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
| location =
* {{#invoke:Entity Lookup|getname|VendingMachineChapel}} ([[Взламываемые криптографическим секвенсором предметы|Взломанный]]) {{#invoke:Entity Lookup|createimagetooltip|Файл:VendingMachineChapel.png|VendingMachineChapel|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Костяной доспех
| id = ClothingOuterArmorBone
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
| created =
* {{#invoke:Entity Lookup|createimagetooltip|File:MaterialBones1.png|MaterialBones1|Мета=32x32px}} {{#invoke:Entity Lookup|getname|MaterialBones1}} '''[6]'''
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Броня Броненосец II
| id = ClothingOuterArmorPodWars
| backgroundColor = #333845
| description =
* Размер: '''огромный'''
| location =
}}
 
  }}
| Spacesuit =
  {{#switch: {{{2|}}}
  | Security = <!-- SpacesuitSecurity -->
{{#invoke:Песочница/Pok|main
| anchorName = Шлем скафандра главы службы безопасности
| id = ClothingHeadHelmetHardsuitSecurityRed
| backgroundColor = #972626
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр главы службы безопасности
| id = ClothingOuterHardsuitSecurityRed
| backgroundColor = #972626
| description =
* Размер: '''гигантский'''
| location =
* [[Инвентарь службы безопасности#Хранилище скафандра Глава службы безопасности|{{#invoke:Entity Lookup|getname|SuitStorageHOS}} [Глава службы безопасности]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageHOS|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> [[Инвентарь службы безопасности#Шкаф главы службы безопасности|{{#invoke:Entity Lookup|getname|LockerHeadOfSecurity}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerHeadOfSecurity.png|LockerHeadOfSecurityFilledHardsuit|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем скафандра смотрителя
| id = ClothingHeadHelmetHardsuitWarden
| backgroundColor = #972626
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр смотрителя
| id = ClothingOuterHardsuitWarden
| backgroundColor = #972626
| description =
* Размер: '''гигантский'''
| location =
* [[Инвентарь службы безопасности#Хранилище скафандра Смотрителя|{{#invoke:Entity Lookup|getname|SuitStorageWarden}} [Смотрителя]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageWarden|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем скафандра бригмедика
| id = ClothingHeadHelmetHardsuitBrigmedic
| backgroundColor = #972626
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр бригмедика
| id = ClothingOuterHardsuitBrigmedic
| backgroundColor = #972626
| description =
* Размер: '''гигантский'''
| location =
* [[Инвентарь службы безопасности#Шкаф бригмедика|{{#invoke:Entity Lookup|getname|LockerBrigmedic}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerBrigmedic.png|LockerBrigmedic|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем скафандра службы безопасности
| id = ClothingHeadHelmetHardsuitSecurity
| backgroundColor = #972626
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр службы безопасности
| id = ClothingOuterHardsuitSecurity
| backgroundColor = #972626
| description =
* Размер: '''гигантский'''
| location =
* [[#Хранилище скафандра Служба безопасности|{{#invoke:Entity Lookup|getname|SuitStorageSec}} [Служба безопасности]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageSec|Мета=32x32px}}
}}
 
  | Science = <!-- SpacesuitScience -->
{{#invoke:Песочница/Pok|main
| anchorName = Экспериментальный шлем исследовательского скафандра
| id = ClothingHeadHelmetHardsuitRd
| backgroundColor = #{{ColorPalette|Science|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр научного руководителя
| id = ClothingOuterHardsuitRd
| backgroundColor = #{{ColorPalette|Science|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* [[Инвентарь научного отдела#Хранилище скафандра Научный руководитель|{{#invoke:Entity Lookup|getname|SuitStorageRD}} [Нучный руководитель]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageRD|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> [[Инвентарь научного отдела#Шкаф научного руководителя|{{#invoke:Entity Lookup|getname|LockerResearchDirectorFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафНРа-гифка.gif|LockerResearchDirectorFilledHardsuit|Мета=32x32px}}
}}
 
  | Service = <!-- SpacesuitService -->
{{#invoke:Песочница/Pok|main
| anchorName = Шлем скафандра клоуна
| id = ClothingHeadHelmetHardsuitClown
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| class = spacesuit-helmet
| description =
* После снятия издаёт ''пердящий'' звук
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр клоуна
| id = ClothingOuterHardsuitClown
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''гигантский'''
| created =
* {{#invoke:Entity Lookup|createimagetooltip|Файл:MaterialCloth.png|MaterialCloth|Мета=32x32px}} {{#invoke:Entity Lookup|getname|MaterialCloth}} '''[5]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:EVA hardsuit.png|ClothingOuterHardsuitEVA|Мета=32x32px}} {{#invoke:Entity Lookup|getname|ClothingOuterHardsuitEVA}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:ClothingHeadHelmetEVALarge.png|ClothingHeadHelmetEVALarge|Мета=32x32px}} {{#invoke:Entity Lookup|getname|ClothingHeadHelmetEVALarge}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:CrayonPurple.png|CrayonPurple|Мета=32x32px}} {{#invoke:Entity Lookup|getname|CrayonPurple}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:CrayonRed.png|CrayonRed|Мета=32x32px}} {{#invoke:Entity Lookup|getname|CrayonRed}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:CrayonYellow.png|CrayonYellow|Мета=32x32px}} {{#invoke:Entity Lookup|getname|CrayonYellow}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:ClownRecorder.png|ClownRecorder|Мета=32x32px}} {{#invoke:Entity Lookup|getname|ClownRecorder}} '''[1]'''
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем скафандра мима
| id = ClothingHeadHelmetHardsuitMime
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр мима
| id = ClothingOuterHardsuitMime
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''гигантский'''
| created =
* {{#invoke:Entity Lookup|createimagetooltip|Файл:MaterialCloth1.png|MaterialCloth|Мета=32x32px}} {{#invoke:Entity Lookup|getname|MaterialCloth}} '''[5]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:EVA hardsuit.png|ClothingOuterHardsuitEVA|Мета=32x32px}} {{#invoke:Entity Lookup|getname|ClothingOuterHardsuitEVA}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:ClothingHeadHelmetEVALarge.png|ClothingHeadHelmetEVALarge|Мета=32x32px}} {{#invoke:Entity Lookup|getname|ClothingHeadHelmetEVALarge}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:CrayonRed.png|CrayonRed|Мета=32x32px}} {{#invoke:Entity Lookup|getname|CrayonRed}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:CrayonBlack.png|CrayonBlack|Мета=32x32px}} {{#invoke:Entity Lookup|getname|CrayonBlack}} '''[1]'''
* {{#invoke:Entity Lookup|createimagetooltip|Файл:ClothingBeltSuspendersRed.png|ClothingBeltSuspendersRed|Мета=32x32px}} {{#invoke:Entity Lookup|getname|ClothingBeltSuspendersRed}} '''[1]'''
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем EVA
| id = ClothingHeadHelmetEVALarge
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| class = spacesuit-helmet
| description =
* Не имеет встроенного фонарика
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Тюремный скафандр EVA
| id = ClothingOuterHardsuitEVAPrisoner
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''огромный'''
* Не имеет встроенного шлема
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageEVAPrisoner}} [Тюремный EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageEVAPrisoner|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Аварийный скафандр EVA
| id = ClothingOuterSuitEmergency
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* {{#invoke:Entity Lookup|getname|ClosetEmergencyFilledRandom}} {{#invoke:Entity Lookup|createimagetooltip|File:АварийныйШкаф-гифка.gif|ClosetEmergencyFilledRandom|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик аварийного снаряжения|Ящик аварийного снаряжения]] [[Файл:Breath mask.png|32px]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Скафандр EVA
| id = ClothingOuterHardsuitEVA
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''огромный'''
* Не имеет встроенного шлема
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageEVA}} [EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageEVA|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Набор EVA|Набор EVA]] [[Файл:ClothingHeadHelmetEVA.png|32px]]
}}


  | Engineering = <!-- SpacesuitEngineering -->
Модульный набор {{tl|Модуль:Сущность}} + {{tl|Модуль:Сущность/поля}} + {{tl|Модуль:GetField}} предназначен для:
{{#invoke:Песочница/Pok|main
* автоматической сборки карточек сущностей (компонентов и прототипов) по их ID;
| anchorName = Шлем скафандра инженера
* описания полей в шаблонах компонентов (какие поля идут в карточку, как подписаны);
| id = ClothingHeadHelmetHardsuitEngineering
* удобного доступа к данным из JSON (как простыми значениями, так и готовыми вызовами шаблонов).
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
Ниже описан общий принцип работы и отдельные режимы.
| anchorName = Скафандр инженера
| id = ClothingOuterHardsuitEngineering
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| description =
* Размер: '''гигантский'''
| location =
* [[Инженерный инвентарь#Хранилище скафандра Инженер|{{#invoke:Entity Lookup|getname|SuitStorageEngi}} [Инженер]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageEngi|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> [[Инженерный инвентарь#Шкаф инженера|{{#invoke:Entity Lookup|getname|LockerEngineerFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:Инжешкаф-гифка.gif|LockerEngineerFilledHardsuit|Мета=32x32px}}
}}


{{#invoke:Песочница/Pok|main
== Общий принцип работы ==
| anchorName = Шлем скафандра атмос-техника
* В шаблонах компонентов/прототипов (<code>Template:Component/...</code>, <code>Template:prototype/...</code>) через {{tl|Модуль:Сущность/поля}} описываются поля:
| id = ClothingHeadHelmetHardsuitAtmos
** '''лейблы''' (<code>cardLabel_*</code>) и '''содержимое''' (<code>cardContent_*</code>), заголовки (<code>title_*</code>) и т. п.;
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
** '''мета‑информация''' о том, какие ключи доступны для <code>card</code> / <code>title</code> и в каком порядке.
| class = spacesuit-helmet
* {{tl|Модуль:Сущность}} по ID сущности:
| description =
** находит связанные с ней компоненты и прототипы по JSON‑данным;
* Имеет встроенный фонарик. Светит на '''3''' тайл.
** для каждого компонента/прототипа читает шаблоны и метаданные;
| location =
** собирает все поля в единую структуру;
}}
** формирует один вызов карточки <code><nowiki>{{карточка/сущность|...}}</nowiki></code> (и блоки заголовков).
* Внутри полей можно писать вики‑параметры <code>{{{...}}}</code> и вызывать дополнительные модули.
* {{tl|Модуль:GetField}} даёт доступ к JSON‑данным на низком уровне:
** как «расплющенный» набор параметров (<code>flattenField</code>);
** как отдельные значения (<code>get</code>);
** как готовые вызовы шаблонов с нужными параметрами (<code>getTpl</code>, <code>getTplProto</code>).


{{#invoke:Песочница/Pok|main
== Модуль: Сущность/поля ==
| anchorName = Скафандр атмос-техника
Шаблоны компонентов используют модуль <code>Сущность/поля</code> для объявления полей, которые будут собираться в карточку.
| id = ClothingOuterHardsuitAtmos
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| description =
* Размер: '''гигантский'''
| location =  
* [[Инженерный инвентарь#Хранилище скафандра Атмосферный техник|{{#invoke:Entity Lookup|getname|SuitStorageAtmos}} [Атмосферный техник]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageAtmos|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> [[Инженерный инвентарь#Шкаф атмосферного техника|{{#invoke:Entity Lookup|getname|LockerAtmosphericsFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:Атмосшкаф-гифка.gif|LockerAtmosphericsFilledHardsuit|Мета=32x32px}}
}}


{{#invoke:Песочница/Pok|main
Пример шаблона компонента:
| anchorName = Шлем скафандра старшего инженера
| id = ClothingHeadHelmetHardsuitEngineeringWhite
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Скафандр Старшего Инженера
{{#invoke:Сущность/поля|main
| id = ClothingOuterHardsuitEngineeringWhite
|cardLabel_Стоимость  = [[Стоимость]]
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
|cardContent_Стоимость = '''{{{price}}}'''
| description =  
* Размер: '''гигантский'''
| location =
* [[Инженерный инвентарь#Хранилище скафандра Старший инженер|{{#invoke:Entity Lookup|getname|SuitStorageCE}} [Старший инженер]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageCE|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> [[Инженерный инвентарь#Шкаф старшего инженера|{{#invoke:Entity Lookup|getname|LockerChiefEngineerFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафСИ-гифка.gif|LockerChiefEngineerFilledHardsuit|Мета=32x32px}}
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Другой компонент может добавлять тот же ключ:
| anchorName = Атмос-пожарный костюм
| id = ClothingOuterSuitAtmosFire
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| description =
* Размер: '''огромный'''
* Не имеет встроенного шлема
| location =
* [[Инженерный инвентарь#Хранилище скафандра Атмосферный техник|{{#invoke:Entity Lookup|getname|SuitStorageAtmos}} [Атмосферный техник]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageAtmos|Мета=32x32px}}
* [[Инженерный инвентарь#Шкаф атмосферного техника|{{#invoke:Entity Lookup|getname|LockerAtmosphericsFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:Атмосшкаф-гифка.gif|LockerAtmosphericsFilledHardsuit|Мета=32x32px}}
}}


  | Command = <!-- SpacesuitCommand -->
<pre>
{{#invoke:Песочница/Pok|main
{{#invoke:Сущность/поля|main
| anchorName = Шлем скафандра капитана
|cardContent_Стоимость  = '''{{{superPrice}}}'''
| id = ClothingHeadHelmetHardsuitCap
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| class = spacesuit-helmet
| description =
* Не имеет встроенного фонарика
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Особенности:
| anchorName = Бронескафандр капитана
* Пара <code>cardLabel_<Ключ></code> / <code>cardContent_<Ключ></code> описывает одну строку карточки (лейбл и содержимое).
| id = ClothingOuterHardsuitCap
* Если несколько шаблонов дают один и тот же <code>cardContent_Ключ</code>, содержимое '''объединяется''', а лейбл берётся первый непустой.
| backgroundColor = #{{ColorPalette|Command|Saturated}}
* То же относится к другим режимам, перечисленным в мета‑JSON шаблона (разделы <code>card</code>, <code>title</code> и т. п.), которые читает {{tl|Модуль:Сущность}}.
| description =
* Размер: '''гигантский'''
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageCaptain}} [Капитан] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageCaptain|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> {{#invoke:Entity Lookup|getname|LockerCaptainFilledHardsuit}} {{#invoke:Entity Lookup|createimagetooltip|File:Кэпшкаф-гифка.gif|LockerCaptainFilledHardsuit|Мета=32x32px}}
}}


{{#invoke:Песочница/Pok|main
== Модуль: Сущность ==
| anchorName = Шлем отряда РХБЗЗ
| id = ClothingHeadHelmetCBURN
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| class = spacesuit-helmet
| description =  
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =  
}}


{{#invoke:Песочница/Pok|main
=== p.get: основная сборка карточки ===
| anchorName = Экзокостюм отряда РХБЗЗ
Вызов:
| id = ClothingOuterHardsuitCBURN
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =  
* Размер: '''гигантский'''
| location =  
* Начальное снаряжения:
: [[РХБЗЗ]]
* Заказ груза:
: [[Таблица грузов#Грандиозная лотерея|Грандиозная лотерея]] [[File:SpaceCash.png|32px]]
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Шлем командира отряда РХБЗЗ
{{#invoke:Сущность|get
| id = ClothingHeadHelmetCBURNLeader
| <ID или список ID>
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| blacklist=...
| class = spacesuit-helmet
| whitelist=...
| description =  
| ignoreComponents=...
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| ignorePrototypes=...
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
* '''1‑й параметр''' — <code>id</code> или список <code>id</code> через запятую.
| anchorName = Экзокостюм командира отряда РХБЗЗ
* По этому ID модуль находит:
| id = ClothingOuterHardsuitCBURNLeader
** '''компоненты''' из <code>component.json</code>;
| backgroundColor = #{{ColorPalette|Command|Saturated}}
** '''прототипы''' из <code>prototype.json</code>;
| description =
и для каждого — соответствующие шаблоны <code>Template:component/...</code> / <code>Template:prototype/...</code>.
* Размер: '''гигантский'''
* Шаблоны описывают свои поля через <code>Сущность/поля</code>.
| location =
* Начальное снаряжения:
: [[РХБЗЗ|Командир оряда РХБЗЗ]]
}}


{{#invoke:Песочница/Pok|main
После сборки модуль:
| anchorName = Шлем скафандра лидера ОБР
* формирует один вызов <code><nowiki>{{карточка/сущность|...}}</nowiki></code> со всеми разделами и полями;
| id = ClothingHeadHelmetHardsuitERTLeader
* дополняет выход при необходимости (блоки title и т. п.);
| backgroundColor = #{{ColorPalette|Command|Saturated}}
* прогоняет результат через <code>frame:preprocess</code>, чтобы отрендерить разметку.
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
Параметры фильтрации:
| anchorName = Скафандр лидера ОБР
* {{пм|blacklist}} — список <code>режим_Ключ</code> через запятую, чтобы исключить поле:
| id = ClothingOuterHardsuitERTLeader
** пример: <code>blacklist=card_Наносит повреждения,title_Что‑то</code>;
| backgroundColor = #{{ColorPalette|Command|Saturated}}
* {{пм|whitelist}} — наоборот, список разрешённых <code>режим_Ключ</code>, остальные игнорируются;
| description =
* {{пм|ignoreComponents}} / {{пм|ignoreComponent}} — список имён компонентов через запятую, которые полностью игнорируются для этого вызова;
* Размер: '''гигантский'''
* {{пм|ignorePrototypes}} / {{пм|ignorePrototype}} — аналогично для прототипов.
| location =
* Начальное снаряжения:
: [[ОБР|Лидер ОБР]]
}}


{{#invoke:Песочница/Pok|main
Пример простой сборки (через шаблон‑обёртку):
| anchorName = Шлем скафандра офицера безопасности ОБР
| id = ClothingHeadHelmetHardsuitERTSecurity
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Скафандр офицера безопасности ОБР
{{Сущность/карточка|MyEntityId}}
| id = ClothingOuterHardsuitERTSecurity
</pre>
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* Начальное снаряжения:
: [[ОБР|Офицер Безопасности ОБР]]
}}


{{#invoke:Песочница/Pok|main
где в шаблоне <code>Сущность/карточка</code> внутри:
| anchorName = Шлем скафандра инженера ОБР
| id = ClothingHeadHelmetHardsuitERTEngineer
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Скафандр инженера ОБР
{{#invoke:Сущность|get|{{{1}}}}}
| id = ClothingOuterHardsuitERTEngineer
</pre>
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''гигантский'''
| location =
* Начальное снаряжения:
: [[ОБР|Инженер ОБР]]
}}


{{#invoke:Песочница/Pok|main
=== p.preview: предпросмотр полей конкретного шаблона ===
| anchorName = ClothingHeadHelmetHardsuitERTMedical
Используется для проверки, что компонент/прототип правильно описал свои поля.
| id = Шлем скафандра медика ОБР
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| class = spacesuit-helmet
| description =  
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Скафандр медика ОБР
{{#invoke:Сущность|preview
| id = ClothingOuterHardsuitERTMedical
| Component/meleeWeapon
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* Начальное снаряжения:
: [[ОБР|Медик ОБР]]
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
* Показывает, какие <code>card</code> / <code>title</code>‑поля объявлены в <code>Template:Component/meleeWeapon</code>.
| anchorName = Шлем скафандра уборщика ОБР
* Удобно при разработке шаблонов компонентов.
| id = ClothingHeadHelmetHardsuitERTJanitor
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
=== p.jsonList: вывод JSON в виде списка ===
| anchorName = Скафандр уборщика ОБР
Режим похож на стандартный <code>arraymap</code>, но работает с JSON.
| id = ClothingOuterHardsuitERTJanitor
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =  
* Размер: '''гигантский'''
| location =  
* Начальное снаряжения:
: [[ОБР|Уборщик ОБР]]
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Шлем скафандра священника ОБР
{{#invoke:Сущность|jsonList
| id = ClothingHeadHelmetHardsuitERTChaplain
| <json или {{{...}}}>
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| type = list / enum
| class = spacesuit-helmet
| prefix = *
| description =  
| sep = :
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| key_pattern = (.*)
| location =  
| key_replace = \1
| value_pattern = (.*)
| value_replace = \1
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Примеры JSON:
| anchorName = Скафандр священника ОБР
| id = ClothingOuterHardsuitERTChaplain
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''гигантский'''
| location =
* Начальное снаряжения:
: [[ОБР|Священник ОБР]]
}}


{{#invoke:Песочница/Pok|main
<pre> <!-- <syntaxhighlight lang=json> -->
| anchorName = Шлем скафандра эскадрона смерти
{
| id = ClothingHeadHelmetHardsuitDeathsquad
  "Blunt": 10,
| backgroundColor = #{{ColorPalette|Command|Saturated}}
  "Slash": 5
| class = spacesuit-helmet
}
| description =
</pre> <!-- </syntaxhighlight> -->
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
или
| anchorName = Скафандр эскадрона смерти
| id = ClothingOuterHardsuitDeathsquad
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''гигантский'''
| location =
* Начальное снаряжения:
: [[Эскадрон смерти]]
}}


  | Medical = <!-- SpacesuitMedical -->
<pre> <!-- <syntaxhighlight lang=json> -->
{{#invoke:Песочница/Pok|main
["Knife", "Sword", "Bat"]
| anchorName = Шлем скафандра главного врача
</pre> <!-- </syntaxhighlight> -->
| id = ClothingHeadHelmetHardsuitMedical
| backgroundColor = #{{ColorPalette|Medical|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
Основные опции:
| anchorName = Скафандр главного врача
* {{пм|type}}:
| id = ClothingOuterHardsuitMedical
** <code>list</code> — список строк (с префиксом, например <code>* </code>);
| backgroundColor = #{{ColorPalette|Medical|Saturated}}
** <code>enum</code> — перечисление через запятую (<code>A, B, C</code> без префикса).
| description =
* {{пм|prefix}} — префикс строки списка (по умолчанию <code>* </code>).
* Размер: '''гигантский'''
* {{пм|sep}} — разделитель для <code>ключ: значение</code> (по умолчанию <code>: </code>).
| location =
* {{пм|key_pattern}} / {{пм|key_replace}} — regex и замена для ключей.
* [[Медицинский инвентарь#Хранилище скафандра Главный врач|{{#invoke:Entity Lookup|getname|SuitStorageCMO}}]] [Главный врач] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageCMO|Мета=32x32px}}
* {{пм|value_pattern}} / {{пм|value_replace}} — regex и замена для значений.
* <span style="color:LemonChiffon">Иногда:</span> [[Медицинский инвентарь#Шкаф главного врача|{{#invoke:Entity Lookup|getname|LockerChiefMedicalOfficerFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафСМО-гифка.gif|LockerChiefMedicalOfficerFilledHardsuit|Мета=32x32px}}
}}


{{#invoke:Песочница/Pok|main
Дополнительно:
| anchorName = Пустотный шлем парамедика
* в шаблоне замены поддерживаются:
| id = ClothingHeadHelmetVoidParamed
** <code>\1</code> — собственное значение (ключ или значение);
| backgroundColor = #{{ColorPalette|Medical|Saturated}}
** <code>\2</code> в <code>value_replace</code> — '''сырой ключ''' (после <code>key_pattern</code>, но до <code>key_replace</code>);
| class = spacesuit-helmet
** <code>\2</code> в <code>key_replace</code> — итоговое отформатированное значение (после <code>value_replace</code>).
| description =
* Не имеет встроенного фонарика
| location =
}}


{{#invoke:Песочница/Pok|main
Пример, где сначала форматируем тип урона, а затем подставляем его в описание:
| anchorName = Пустотный скафандр парамедика
| id = ClothingOuterHardsuitVoidParamed
| backgroundColor = #{{ColorPalette|Medical|Saturated}}
| description =
* Размер: '''огромный'''
| location =
* [[Медицинский инвентарь#Шкаф парамедика|{{#invoke:Entity Lookup|getname|LockerParamedicFilled}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафПарамедика-гифка.gif|LockerParamedicFilled|Мета=32x32px}}
}}


  | Cargo = <!-- SpacesuitCargo -->
<pre>
{{#invoke:Песочница/Pok|main
{{#invoke:Сущность|jsonList
| anchorName = Шлем скафандра шахтёра
| {{{damage.types}}}
| id = ClothingHeadHelmetHardsuitSalvage
| type = enum
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| key_replace = <nowiki>\1</nowiki>              <!-- "Blunt" -->
| class = spacesuit-helmet
| value_replace = <nowiki>'''\1''' \2</nowiki>  <!-- "'''10''' Blunt" -->
| description =  
* Имеет встроенный фонарик. Светит на '''7''' тайл.
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
=== p.json: превращение JSON в вызовы шаблонов ===
| anchorName = Скафандр шахтёра
Режим для случаев, когда в JSON лежит список эффектов/объектов, и нужно по каждому вызвать отдельный шаблон.
| id = ClothingOuterHardsuitSalvage
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| description =  
* Размер: '''гигантский'''
| location =  
* [[Экспедиции#Случайные награды|Ящик с экипировкой утилизаторов]]
* [[Экспедиции#Награда биома Caves|Награда биома Caves]]
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Шлем лёгкого скафандра утилизатора
{{#invoke:Сущность|json
| id = ClothingHeadHelmetHardsuitSpatio
| <json или {{{...}}}>
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| <путь_к_шаблону>
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
* '''1‑й параметр / <code>json=</code>''' — строка JSON.
| anchorName = Лёгкий скафандр утилизатора
* '''2‑й параметр / <code>template=</code>''' — путь к шаблону, например <code>Component/adjustPlant</code>.
| id = ClothingOuterHardsuitSpatio
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| description =
* Размер: '''гигантский'''
| location =
* [[Инвентарь отдела снабжения#Хранилище скафандра Утилизатор|{{#invoke:Entity Lookup|getname|SuitStorageSalv}} [Утилизатор]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageSalv|Мета=32x32px}}
* <span style="color:LemonChiffon">Иногда:</span> [[Инвентарь отдела снабжения#Снаряжение специалиста по утилизации|{{#invoke:Entity Lookup|getname|LockerSalvageSpecialistFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафУтилизатора-гифка.gif|LockerSalvageSpecialistFilledHardsuit|Мета=32x32px}}
}}


{{#invoke:Песочница/Pok|main
Ожидаемый формат JSON‑массива:
| anchorName = Шлем элитного шахтёрского скафандра
| id = ClothingHeadHelmetHardsuitLuxury
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
<pre> <!-- <syntaxhighlight lang=json> -->
| anchorName = Элитный шахтёрский скафандр
[
| id = ClothingOuterHardsuitLuxury
  {
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
    "!type:PlantAdjustNutrition": {
| description =
      "amount": 0.1
* Размер: '''гигантский'''
    }
| location =
  },
* Заказ груза:
  {
: [[Таблица грузов#Элитный шахтёрский скафандр|{{#invoke:Entity Lookup|getname|CrateCargoLuxuryHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|Файл:Hemlet_luxury.png|CrateCargoLuxuryHardsuit|Мета=32px}}
    "!type:PlantAdjustWeeds": {
}}
      "amount": 2
 
    }
{{#invoke:Песочница/Pok|main
  },
| anchorName = Максимальный шлем утилизатора
  {
| id = ClothingHeadHelmetHardsuitMaxim
    "!type:PlantAdjustPests": {
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
      "amount": 2
| class = spacesuit-helmet
    }
| description =
  }
* Имеет встроенный фонарик. Светит на '''3''' тайл.
]
| location =
</pre> <!-- </syntaxhighlight> -->
}}


{{#invoke:Песочница/Pok|main
Для каждого элемента создаётся вызов:
| anchorName = Максимальный скафандр утилизатора
| id = ClothingOuterHardsuitMaxim
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| description =
* Размер: '''гигантский'''
| location =
* Место:
: [[Рендер карт|Обломки]]
}}


  | Antagonist = <!-- SpacesuitAntagonist -->
<pre>
{{#invoke:Песочница/Pok|main
{{Component/adjustPlant
| anchorName = Шлем кроваво-красного скафандра
|id=!type:PlantAdjustNutrition
| id = ClothingHeadHelmetHardsuitSyndie
|amount=0.1
| backgroundColor = #7d1c1c
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
}}
 
{{Component/adjustPlant
{{#invoke:Песочница/Pok|main
|id=!type:PlantAdjustWeeds
| anchorName = Кроваво-красный скафандр
|amount=2
| id = ClothingOuterHardsuitSyndie
| backgroundColor = #7d1c1c
| description =
* Размер: '''огромный'''
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
* Начальное снаряжения:
: [[Ядерный Оперативник]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем командира Синдиката
| id = ClothingHeadHelmetHardsuitSyndieCommander
| backgroundColor = #7d1c1c
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =  
}}
}}
 
{{Component/adjustPlant
{{#invoke:Песочница/Pok|main
|id=!type:PlantAdjustPests
| anchorName = Скафандр командира Синдиката
|amount=2
| id = ClothingOuterHardsuitSyndieCommander
| backgroundColor = #7d1c1c
| description =
* Размер: '''огромный'''
| location =  
* Начальное снаряжения:
: [[Ядерный Оперативник|Командир ядерных оперативников]]
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Особенности:
| anchorName = Шлем кроваво-красного скафандра медика
* Если JSON — объект вида <code>{ "id1": {...}, "id2": {...} }</code>, происходит аналогичный проход по парам <code>ключ → объект</code>.
| id = ClothingHeadHelmetHardsuitSyndieMedic
* Все вызовы склеиваются через перевод строки и прогоняются через <code>frame:preprocess</code>, поэтому внутри шаблона можно использовать любую вики‑разметку.
| backgroundColor = #7d1c1c
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
== Модуль: GetField ==
| anchorName = Кроваво-красный медицинский скафандр
Модуль <code>GetField</code> используется для доступа к тем же JSON‑данным <code>.../data</code>, но на более низком уровне.
| id = ClothingOuterHardsuitSyndieMedic
| backgroundColor = #7d1c1c
| description =  
* Размер: '''огромный'''
| location =
* Начальное снаряжения:
: [[Ядерный Оперативник|Медик ядерных оперативников]]
}}


{{#invoke:Песочница/Pok|main
=== p.flattenField: расплющивание записи в параметры ===
| anchorName = Шлем элитного скафандра Синдиката
<pre>
| id = ClothingHeadHelmetHardsuitSyndieElite
{{#invoke:GetField|flattenField
| backgroundColor = #7d1c1c
| <id>
| class = spacesuit-helmet
| <путь_к_json_странице>
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Например:
| anchorName = Элитный скафандр Синдиката
| id = ClothingOuterHardsuitSyndieElite
| backgroundColor = #7d1c1c
| description =
* Размер: '''огромный'''
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Шлем джаггернаута Cybersun
{{#invoke:GetField|flattenField
| id = ClothingHeadHelmetHardsuitCybersun
| MyEntityId
| backgroundColor = #7d1c1c
| component/item.json
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Возвращает строку вида:
| anchorName = Костюм джаггернаута Cybersun
| id = ClothingOuterHardsuitJuggernaut
| backgroundColor = #7d1c1c
| description =
* Размер: '''гигантский'''
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Капюшон карпа
damage.types={"Blunt":10}|wieldSound=someSound|...
| id = ClothingHeadHelmetHardsuitCarp
</pre>
| backgroundColor = #7d1c1c
| class = spacesuit-helmet
| description =
* Не имеет встроенного фонарика
| location =
* Находится в костюме
}}


{{#invoke:Песочница/Pok|main
Особенности:
| anchorName = Костюм карпа
* Вложенные объекты кодируются в JSON и заворачиваются в <code><nowiki><nowiki></nowiki></code>, чтобы их можно было безопасно передавать как параметр.
| id = ClothingOuterSuitCarp
* Массивы кодируются в JSON без <code><nowiki><nowiki></nowiki></code>, чтобы удобно обрабатывать их модулями вроде <code>Сущность.jsonList</code>.
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
* [[Карпы|Космические карпы]] будут нейтральны, если надеть этот костюм вместе со встроенным капюшоном
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}


{{#invoke:Песочница/Pok|main
Этот режим используется внутри <code>GetField.getTpl</code> и других обёрток.
| anchorName = Кроваво-красный скафандр EVA
| id = ClothingOuterHardsuitSyndicate
| backgroundColor = #7d1c1c
| description =
* Размер: '''огромный'''
* Не имеет встроенного шлема
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageEVASyndicate}} [Синдикат EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageEVASyndicate|Мета=32x32px}}
* [[Файл:ReinforcementRadio.png]] [[Аплинк]]
}}


{{#invoke:Песочница/Pok|main
=== p.get: получение значения по пути ===
| anchorName = Костюм космического ниндзя
<pre>
| id = ClothingOuterSuitSpaceNinja
{{#invoke:GetField|get
| backgroundColor = #7d1c1c
| <id или пусто для "default">
| description =
| <путь_к_json_странице>
* Размер: '''огромный'''
| <ключ.с.точками>
| location =
* Начальное снаряжения:
: [[Ниндзя|Космический ниндзя]]
}}
}}
</pre>


  | Other = <!-- SpacesuitOther -->
Примеры:
{{#invoke:Песочница/Pok|main
| anchorName = Шлем древнего скафандра
| id = ClothingHeadHelmetHardsuitPirateCap
| backgroundColor = #333845
| class = spacesuit-helmet
| description =
* Не имеет встроенного фонарика
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Древний бронескафандр
{{#invoke:GetField|get
| id = ClothingOuterHardsuitPirateCap
| MyEntityId
| backgroundColor = #333845
| component/item.json
| description =
| damage.types
* Размер: '''гигантский'''
| location =
* {{#invoke:Entity Lookup|getname|SuitStoragePirateCap}} [Капитан пиратов] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStoragePirateCap|Мета=32x32px}}
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Если в JSON:
| anchorName = Шлем EVA космических глубин
| id = ClothingHeadHelmetHardsuitPirateEVA
| backgroundColor = #333845
| class = spacesuit-helmet
| description =
* Не имеет встроенного фонарика
| location =
}}


{{#invoke:Песочница/Pok|main
<pre> <!-- <syntaxhighlight lang=json> -->
| anchorName = Скафандр EVA космических глубин
"damage": {
| id = ClothingOuterHardsuitPirateEVA
  "types": {
| backgroundColor = #333845
    "Blunt": 10
| description =
  }
* Размер: '''гигантский'''
}
| location =
</pre> <!-- </syntaxhighlight> -->
}}


{{#invoke:Песочница/Pok|main
то результатом будет:
| anchorName = Шлем скафандра волшебника
| id = ClothingHeadHelmetHardsuitWizard
| backgroundColor = #333845
| class = spacesuit-helmet
| description =
* Имеет встроенный фонарик. Светит на '''3''' тайл.
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Скафандр волшебника
{"Blunt":10}
| id = ClothingOuterHardsuitWizard
</pre>
| backgroundColor = #333845
| description =
* Размер: '''гигантский'''
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageWizard}} [Волшебник] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageWizard|Мета=32x32px}}
}}


{{#invoke:Песочница/Pok|main
то есть:
| anchorName = Органический космический шлем
* для таблиц модуль пытается сделать <code>mw.text.jsonEncode(v)</code> и вернуть JSON‑строку;
| id = ClothingHeadHelmetHardsuitLing
* для простых значений возвращается строка <code>tostring(v)</code>.
| backgroundColor = #333845
| class = spacesuit-helmet
| description =
* Не имеет встроенного фонарика
| location =
}}


{{#invoke:Песочница/Pok|main
Если <code>keyPath</code> пуст, возвращается весь объект (как JSON).
| anchorName = Органический космический скафандр
| id = ClothingOuterHardsuitLing
| backgroundColor = #333845
| description =
* Размер: '''гигантский'''
| location =
}}


{{#invoke:Песочница/Pok|main
=== p.getTpl: вызов шаблона по данным JSON ===
| anchorName = Шлем скафандра Санты
<pre>
| id = ClothingHeadHelmetHardsuitSanta
{{#invoke:GetField|getTpl
| backgroundColor = #333845
| <id>
| class = spacesuit-helmet
| <путь_к_json_странице>
| description =
| <путь_к_шаблону>
* Имеет встроенный фонарик. Постоянно светит на '''5''' тайл. вокруг себя
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Пример:
| anchorName = Скафандр Санты
| id = ClothingOuterHardsuitSanta
| backgroundColor = #333845
| description =
* Размер: '''гигантский'''
| location =
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Базовый шлем скафандра
{{#invoke:GetField|getTpl
| id = ClothingHeadHelmetHardsuitBasic
| MyEntityId
| backgroundColor = #333845
| component/item.json
| class = spacesuit-helmet
| Component/meleeWeapon
| description =
* Не имеет встроенного фонарика
| location =
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
Работа:
| anchorName = Базовый скафандр
* внутри вызывает <code>flattenField</code>, получая строку <code>key=value|...</code>;
| id = ClothingOuterHardsuitBasic
* формирует строку вида:
| backgroundColor = #333845
| description =
* Размер: '''гигантский'''
| location =
* Заказ груза:
: [[Таблица грузов#Грандиозная лотерея|Грандиозная лотерея]] [[File:SpaceCash.png|32px]]
}}


{{#invoke:Песочница/Pok|main
<pre>
| anchorName = Пустотный скафандр NTSRA
{{Component/meleeWeapon
| id = ClothingOuterHardsuitAncientEVA
|id=MyEntityId
| backgroundColor = #333845
|damage.types=...
| description =
|...
* Размер: '''огромный'''
* Не имеет встроенного шлема
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageNTSRA}} [Ancient EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageNTSRA|Мета=32x32px}}
* {{#invoke:Entity Lookup|getname|LockerOldAISat}} [шкаф пустотный скафандр NTSRA] {{#invoke:Entity Lookup|createimagetooltip|File:LockerSyndicate.png|LockerOldAISat|Мета=32x32px}}
}}
}}
</pre>


  }}
* и прогоняет её через <code>frame:preprocess</code>, возвращая итоговый рендер.
| Head =
  {{#switch: {{{2|}}}
  | Security = <!-- HeadSecurity -->
{{#invoke:Песочница/Pok|main
| anchorName = Шлем
| id = ClothingHeadHelmetBasic
| backgroundColor = #972626
| description =
* Размер: '''маленький'''
| location =
* [[Инвентарь службы безопасности#Шкаф офицера службы безопасности|{{#invoke:Entity Lookup|getname|LockerSecurity}}]] {{#invoke:Entity Lookup|createimagetooltip|File:LockerSecurity.png|LockerSecurity|Мета=32x32px}}
* Начальное снаряжения:
: [[Офицер СБ]], [[Кадет СБ]]
* Заказ груза:
: [[Таблица грузов#Ящик со шлемами|Ящик со шлемами]] [[Файл:Security helmet.png|32px]]
}}


{{#invoke:Песочница/Pok|main
Это удобный способ «подключить» шаблон компонента к данным из JSON без ручного перечисления параметров.
| anchorName = Лёгкий противоударный шлем
| id = ClothingHeadHelmetRiot
| backgroundColor = #972626
| description =
* Размер: '''маленький'''
| location =
* Заказ груза:
: [[Таблица грузов#Ящик снаряжения против беспорядков|Ящик снаряжения против беспорядков]] [[Файл:Riot armor.png|32px]]
}}


{{#invoke:Песочница/Pok|main
=== p.getTplProto: вызов шаблона по прототипам ===
| anchorName = Шлем спецназа
<pre>
| id = ClothingHeadHelmetSwat
{{#invoke:GetField|getTplProto
| backgroundColor = #972626
| <searchId>
| description =
| <protoId>
* Размер: '''маленький'''
| <путь_к_шаблону>
| location =
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
}}
}}
</pre>


{{#invoke:Песочница/Pok|main
* Ищет в <code>prototype.json</code> все записи, где <code>protoId</code> встречается у <code>searchId</code>.
| anchorName = Сапёрный шлем
* Для каждого найденного ID вызывает <code>getTpl</code> и возвращает все вызовы, склеенные через перевод строки и отрендеренные.
| id = ClothingHeadHelmetBombSuit
| backgroundColor = #972626
| description =
* Размер: '''маленький'''
| location =
* [[Инвентарь службы безопасности#Шкаф взрывозащитного снаряжения|{{#invoke:Entity Lookup|getname|ClosetBomb}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ClosetBomb.png|ClosetBomb|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик сапёрного снаряжения|Ящик сапёрного снаряжения]] [[Файл:Bombsuit helmet.png|32px]]
}}


  | Science = <!-- HeadScience -->
Используется для случаев, когда сущность использует '''несколько''' прототипов одного типа, и нужно вывести по одному шаблону на каждый прототип.
  | Service = <!-- HeadService -->
{{#invoke:Песочница/Pok|main
| anchorName = Шлем EVA
| id = ClothingHeadHelmetEVA
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''средний'''
* Надевания/снятия занимает некоторое время
* Вместе со скафандром позволяет находиться в открытом космосе
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageEVA}} [EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageEVA|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Набор EVA|Набор EVA]] [[Файл:ClothingHeadHelmetEVA.png|32px]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Арбузный шлем
| id = ClothingHeadHatWatermelon
| backgroundColor = #{{ColorPalette|Service|Saturated}}
| description =
* Размер: '''маленький'''
| location =
}}
 
  | Engineering = <!-- HeadEngineering -->
{{#invoke:Песочница/Pok|main
| anchorName = Пожарный атмос-шлем
| id = ClothingHeadHelmetAtmosFire
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| description =
* Размер: '''средний'''
* Вместе со скафандром позволяет находиться в открытом космосе
* Имеет встроенный фонарик
:* Светит на '''~3''' тайл.
:* Работает от батареек
| location =
* [[Инженерный инвентарь#Шкаф атмосферного техника|{{#invoke:Entity Lookup|getname|LockerAtmosphericsFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:Атмосшкаф-гифка.gif|LockerAtmosphericsFilledHardsuit|Мета=32x32px}}
}}
 
  | Command = <!-- HeadCommand -->
{{#invoke:Песочница/Pok|main
| anchorName = Шлем лидера ОБР
| id = ClothingHeadHelmetERTLeader
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[ОБР|Лидер ОБР]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем офицера безопасности ОБР
| id = ClothingHeadHelmetERTSecurity
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[ОБР|Офицер безопасности ОБР]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем инженера ОБР
| id = ClothingHeadHelmetERTEngineer
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[ОБР|Инженер ОБР]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем медика ОБР
| id = ClothingHeadHelmetERTMedic
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[ОБР|Медик ОБР]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем уборщика ОБР
| id = ClothingHeadHelmetERTJanitor
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[ОБР|Уборщик ОБР]]
}}
 
  | Medical = <!-- HeadMedical -->
  | Cargo = <!-- HeadCargo -->
  | Antagonist = <!-- HeadAntagonist -->
{{#invoke:Песочница/Pok|main
| anchorName = Стильный шлем
| id = ClothingHeadHelmetSyndicate
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
* Надевания/снятия занимает некоторое время
* Вместе со скафандром позволяет находиться в открытом космосе
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageEVASyndicate}} [Синдикат EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageEVASyndicate|Мета=32x32px}}
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем космического ниндзя
| id = ClothingHeadHelmetSpaceNinja
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
* Надевания/снятия занимает некоторое время
* Вместе со скафандром позволяет находиться в открытом космосе
| location =
* Начальное снаряжения:
: [[Ниндзя|Космический ниндзя]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Рейдерский шлем Синдиката
| id = ClothingHeadHelmetRaid
| backgroundColor = #7d1c1c
| description =
* Размер: '''средний'''
* Имеет встроенный фонарик. Светит на '''5''' тайл.
| location =
* [[Файл:ReinforcementRadio.png]] [[Аплинк]]
}}
 
  | Other = <!-- HeadOther -->
{{#invoke:Песочница/Pok|main
| anchorName = Пожарный шлем
| id = ClothingHeadHelmetFire
| backgroundColor = #333845
| description =
* Размер: '''средний'''
* Имеет встроенный фонарик
:* Светит на '''~3''' тайл.
:* Работает от батареек
| location =
* {{#invoke:Entity Lookup|getname|ClosetFireFilled}} {{#invoke:Entity Lookup|createimagetooltip|Файл:ПожарныйШкаф-гифка.gif|ClosetFireFilled|Мета=32x32px}}
* Заказ груза:
: [[Таблица грузов#Ящик пожарного снаряжения|Ящик пожарного снаряжения]] [[Файл:Objects-Misc-fire extinguisher.png|32px]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Пустотный шлем NTSRA
| id = ClothingHeadHelmetAncient
| backgroundColor = #333845
| description =
* Размер: '''средний'''
* Надевания/снятия занимает некоторое время
* Вместе со скафандром позволяет находиться в открытом космосе
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageNTSRA}} [Ancient EVA] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageNTSRA|Мета=32x32px}}
* {{#invoke:Entity Lookup|getname|LockerOldAISat}} [шкаф пустотный скафандр NTSRA] {{#invoke:Entity Lookup|createimagetooltip|File:LockerSyndicate.png|LockerOldAISat|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Костяной шлем
| id = ClothingHeadHelmetBone
| backgroundColor = #333845
| description =
* Размер: '''маленький'''
| location =
* Заказ груза:
: [[Таблица грузов#Грандиозная лотерея|Грандиозная лотерея]] [[File:SpaceCash.png|32px]]
| created =
* {{#invoke:Entity Lookup|createimagetooltip|File:MaterialBones1.png|MaterialBones1|Мета=32x32px}} {{#invoke:Entity Lookup|getname|MaterialBones1}} '''[4]'''
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем Броненосец II
| id = ClothingHeadHelmetPodWars
| backgroundColor = #333845
| description =
* Размер: '''маленький'''
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Шлем культа
| id = ClothingHeadHelmetCult
| backgroundColor = #333845
| description =
* Размер: '''маленький'''
| location =
* {{#invoke:Entity Lookup|getname|VendingMachineChapel}} ([[Взламываемые криптографическим секвенсором предметы|Взломанный]]) {{#invoke:Entity Lookup|createimagetooltip|Файл:VendingMachineChapel.png|VendingMachineChapel|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Хитиновый шлем
| id = ClothingHeadHelmetLing
| backgroundColor = #333845
| description =
* Размер: '''маленький'''
| location =
}}
 
  }}
| Mask =
  {{#switch: {{{2|}}}
  | Security = <!-- MaskSecurity -->
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз СБ
| id = ClothingMaskGasSecurity
| backgroundColor = #972626
| description =
* Размер: '''крошечный'''
| location =
* [[Инвентарь службы безопасности#ОхранШкаф|{{#invoke:Entity Lookup|getname|VendingMachineSecDrobe}}]] {{#invoke:Entity Lookup|createimagetooltip|Файл:VendingMachineSecDrobe.png|VendingMachineSecDrobe|Мета=32x32}}
* Начальное снаряжения:
: [[Офицер СБ]], [[Кадет СБ]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз спецназа
| id = ClothingMaskGasSwat
| backgroundColor = #972626
| description =
* Размер: '''маленький'''
| location =
* [[Инвентарь службы безопасности#Хранилище скафандра Глава службы безопасности|{{#invoke:Entity Lookup|getname|SuitStorageHOS}} [Глава службы безопасности]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageHOS|Мета=32x32px}}
* Место:
: [[Отдел Службы Безопасности#Арсенал|Арсенал]]
}}
 
  | Science = <!-- MaskScience -->
{{#invoke:Песочница/Pok|main
| anchorName = Сварочный противогаз
| id = ClothingMaskWeldingGas
| backgroundColor = #{{ColorPalette|Science|Saturated}}
| description =
* Размер: '''маленький'''
* Обладает свойствами [[Инженерный инвентарь#Сварочная маска|сварочной маски]]
| location =
* [[Руководство по исследованию и разработке#Снаряжение для утилизации|Открываемая технология]] [[Файл:ComputerAnalysisConsole.png]]
* Создаётся на [[Инвентарь научного отдела#Протолат|протолате]] {{#invoke:Entity Lookup|createimagetooltip|Файл:Protolathe.png|Protolathe|Мета=32x32px}}
}}
 
  | Service = <!-- MaskService -->
  | Engineering = <!-- MaskEngineering -->
{{#invoke:Песочница/Pok|main
| anchorName = Атмос-противогаз
| id = ClothingMaskGasAtmos
| backgroundColor = #{{ColorPalette|Engineering|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* [[Инженерный инвентарь#Хранилище скафандра Атмосферный техник|{{#invoke:Entity Lookup|getname|SuitStorageAtmos}} [Атмосферный техник]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageAtmos|Мета=32x32px}}
* [[Инженерный инвентарь#Шкаф атмосферного техника|{{#invoke:Entity Lookup|getname|LockerAtmosphericsFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:Атмосшкаф-гифка.gif|LockerAtmosphericsFilledHardsuit|Мета=32x32px}}
}}
 
  | Command = <!-- MaskCommand -->
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз капитана
| id = ClothingMaskGasCaptain
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* {{#invoke:Entity Lookup|getname|SuitStorageCaptain}} [Капитан] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageCaptain|Мета=32x32px}}
* {{#invoke:Entity Lookup|getname|LockerCaptainFilledHardsuit}} {{#invoke:Entity Lookup|createimagetooltip|File:Кэпшкаф-гифка.gif|LockerCaptainFilledHardsuit|Мета=32x32px}}
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз Центком
| id = ClothingMaskGasCentcom
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз ОБР
| id = ClothingMaskGasERT
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[ОБР|Офицер Безопасности ОБР]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз эскадрона смерти
| id = ClothingMaskGasDeathSquad
| backgroundColor = #{{ColorPalette|Command|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* Начальное снаряжения:
: [[Эскадрон смерти]]
}}
 
  | Medical = <!-- MaskMedical -->
{{#invoke:Песочница/Pok|main
| anchorName = Военно-медицинская маска
| id = ClothingMaskBreathMedicalSecurity
| backgroundColor = #{{ColorPalette|Medical|Saturated}}
| description =
* Размер: '''крошечный'''
| location =
}}
 
  | Cargo = <!-- MaskCargo -->
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз исследователя
| id = ClothingMaskGasExplorer
| backgroundColor = #{{ColorPalette|Cargo|Saturated}}
| description =
* Размер: '''маленький'''
| location =
* [[Инвентарь отдела снабжения#Хранилище скафандра Утилизатор|{{#invoke:Entity Lookup|getname|SuitStorageSalv}} [Утилизатор]]] {{#invoke:Entity Lookup|createimagetooltip|File:SuitStorageSec.png|SuitStorageSalv|Мета=32x32px}}
* [[Инвентарь отдела снабжения#Снаряжение специалиста по утилизации|{{#invoke:Entity Lookup|getname|LockerSalvageSpecialistFilledHardsuit}}]] {{#invoke:Entity Lookup|createimagetooltip|File:ШкафУтилизатора-гифка.gif|LockerSalvageSpecialistFilledHardsuit|Мета=32x32px}}
}}
 
  | Antagonist = <!-- MaskAntagonist -->
{{#invoke:Песочница/Pok|main
| anchorName = Чёрный боевой противогаз
| id = ClothingMaskGasSyndicate
| backgroundColor = #7d1c1c
| description =
* Размер: '''маленький'''
* Обладает свойствами [[Инженерный инвентарь#Сварочная маска|сварочной маски]]
| location =
* [[Аплинк]] [[Файл:ReinforcementRadio.png]]
* Начальное снаряжения:
: [[Ядерный Оперативник]], [[Агент подкрепления]]
}}
 
{{#invoke:Песочница/Pok|main
| anchorName = Противогаз наёмника
| id = ClothingMaskGasMerc
| backgroundColor = #7d1c1c
| description =
* Размер: '''маленький'''
| location =
}}


  | Other = <!-- MaskOther -->
== Типичный рабочий поток ==
  }}
# В JSON‑файлах (<code>component.json</code>, <code>prototype.json</code> и др.) описываются сущности и связи компонент/прототипов.
}}</onlyinclude>
# Для каждого компонента/прототипа создаются шаблоны <code>Template:Component/...</code>, <code>Template:prototype/...</code>, которые:
<noinclude>{{doc}}</noinclude>
#* вызывают <code><nowiki>{{#invoke:Сущность/поля|main ...}}</nowiki></code> для описания полей карточки;
#* при необходимости используют <code>GetField</code> / <code>Сущность.jsonList</code> / <code>Сущность.json</code> для форматирования сложных JSON‑полей.
# Для вывода карточки на странице сущности используется:
#* либо прямой <code><nowiki>{{#invoke:Сущность|get|MyEntityId}}</nowiki></code>,
#* либо шаблон‑обёртка <code><nowiki>{{Сущность/карточка|MyEntityId}}</nowiki></code>.
# Для специализированных списков/таблиц:
#* <code>Сущность.jsonList</code> — если нужно красиво показать массив/словарь из JSON;
#* <code>Сущность.json</code> — если нужно превратить список эффектов в набор вызовов шаблона;
#* <code>GetField.get</code> — если нужно точечно вытащить одно поле;
#* <code>GetField.getTpl</code> / <code>getTplProto</code> — если нужно строить шаблоны по данным JSON автоматически.

Текущая версия от 16:00, 5 марта 2026

Модульный набор {{#invoke:Сущность}} + {{#invoke:Сущность/поля}} + {{#invoke:GetField}} предназначен для:

  • автоматической сборки карточек сущностей (компонентов и прототипов) по их ID;
  • описания полей в шаблонах компонентов (какие поля идут в карточку, как подписаны);
  • удобного доступа к данным из JSON (как простыми значениями, так и готовыми вызовами шаблонов).

Ниже описан общий принцип работы и отдельные режимы.

Общий принцип работы

  • В шаблонах компонентов/прототипов (Template:Component/..., Template:prototype/...) через {{#invoke:Сущность/поля}} описываются поля:
    • лейблы (cardLabel_*) и содержимое (cardContent_*), заголовки (title_*) и т. п.;
    • мета‑информация о том, какие ключи доступны для card / title и в каком порядке.
  • {{#invoke:Сущность}} по ID сущности:
    • находит связанные с ней компоненты и прототипы по JSON‑данным;
    • для каждого компонента/прототипа читает шаблоны и метаданные;
    • собирает все поля в единую структуру;
    • формирует один вызов карточки {{карточка/сущность|...}} (и блоки заголовков).
  • Внутри полей можно писать вики‑параметры {{{...}}} и вызывать дополнительные модули.
  • {{#invoke:GetField}} даёт доступ к JSON‑данным на низком уровне:
    • как «расплющенный» набор параметров (flattenField);
    • как отдельные значения (get);
    • как готовые вызовы шаблонов с нужными параметрами (getTpl, getTplProto).

Модуль: Сущность/поля

Шаблоны компонентов используют модуль Сущность/поля для объявления полей, которые будут собираться в карточку.

Пример шаблона компонента:

{{#invoke:Сущность/поля|main
 |cardLabel_Стоимость   = [[Стоимость]]
 |cardContent_Стоимость = '''{{{price}}}'''
}}

Другой компонент может добавлять тот же ключ:

{{#invoke:Сущность/поля|main
 |cardContent_Стоимость  = '''{{{superPrice}}}'''
}}

Особенности:

  • Пара cardLabel_<Ключ> / cardContent_<Ключ> описывает одну строку карточки (лейбл и содержимое).
  • Если несколько шаблонов дают один и тот же cardContent_Ключ, содержимое объединяется, а лейбл берётся первый непустой.
  • То же относится к другим режимам, перечисленным в мета‑JSON шаблона (разделы card, title и т. п.), которые читает {{#invoke:Сущность}}.

Модуль: Сущность

p.get: основная сборка карточки

Вызов:

{{#invoke:Сущность|get
 | <ID или список ID>
 | blacklist=...
 | whitelist=...
 | ignoreComponents=...
 | ignorePrototypes=...
}}
  • 1‑й параметр — id или список id через запятую.
  • По этому ID модуль находит:
    • компоненты из component.json;
    • прототипы из prototype.json;

и для каждого — соответствующие шаблоны Template:component/... / Template:prototype/....

  • Шаблоны описывают свои поля через Сущность/поля.

После сборки модуль:

  • формирует один вызов {{карточка/сущность|...}} со всеми разделами и полями;
  • дополняет выход при необходимости (блоки title и т. п.);
  • прогоняет результат через frame:preprocess, чтобы отрендерить разметку.

Параметры фильтрации:

  • |blacklist = — список режим_Ключ через запятую, чтобы исключить поле:
    • пример: blacklist=card_Наносит повреждения,title_Что‑то;
  • |whitelist = — наоборот, список разрешённых режим_Ключ, остальные игнорируются;
  • |ignoreComponents = / |ignoreComponent = — список имён компонентов через запятую, которые полностью игнорируются для этого вызова;
  • |ignorePrototypes = / |ignorePrototype = — аналогично для прототипов.

Пример простой сборки (через шаблон‑обёртку):

{{Сущность/карточка|MyEntityId}}

где в шаблоне Сущность/карточка внутри:

{{#invoke:Сущность|get|{{{1}}}}}

p.preview: предпросмотр полей конкретного шаблона

Используется для проверки, что компонент/прототип правильно описал свои поля.

{{#invoke:Сущность|preview
 | Component/meleeWeapon
}}
  • Показывает, какие card / title‑поля объявлены в Template:Component/meleeWeapon.
  • Удобно при разработке шаблонов компонентов.

p.jsonList: вывод JSON в виде списка

Режим похож на стандартный arraymap, но работает с JSON.

{{#invoke:Сущность|jsonList
 | <json или {{{...}}}>
 | type = list / enum
 | prefix = * 
 | sep = : 
 | key_pattern = (.*)
 | key_replace = \1
 | value_pattern = (.*)
 | value_replace = \1
}}

Примеры JSON:

 <!-- <syntaxhighlight lang=json> -->
{
  "Blunt": 10,
  "Slash": 5
}

или

 <!-- <syntaxhighlight lang=json> -->
["Knife", "Sword", "Bat"]

Основные опции:

  • |type =:
    • list — список строк (с префиксом, например * );
    • enum — перечисление через запятую (A, B, C без префикса).
  • |prefix = — префикс строки списка (по умолчанию * ).
  • |sep = — разделитель для ключ: значение (по умолчанию : ).
  • |key_pattern = / |key_replace = — regex и замена для ключей.
  • |value_pattern = / |value_replace = — regex и замена для значений.

Дополнительно:

  • в шаблоне замены поддерживаются:
    • \1 — собственное значение (ключ или значение);
    • \2 в value_replace — сырой ключ (после key_pattern, но до key_replace);
    • \2 в key_replace — итоговое отформатированное значение (после value_replace).

Пример, где сначала форматируем тип урона, а затем подставляем его в описание:

{{#invoke:Сущность|jsonList
 | {{{damage.types}}}
 | type = enum
 | key_replace = \1              <!-- "Blunt" -->
 | value_replace = '''\1''' \2   <!-- "'''10''' Blunt" -->
}}

p.json: превращение JSON в вызовы шаблонов

Режим для случаев, когда в JSON лежит список эффектов/объектов, и нужно по каждому вызвать отдельный шаблон.

{{#invoke:Сущность|json
 | <json или {{{...}}}>
 | <путь_к_шаблону>
}}
  • 1‑й параметр / json= — строка JSON.
  • 2‑й параметр / template= — путь к шаблону, например Component/adjustPlant.

Ожидаемый формат JSON‑массива:

 <!-- <syntaxhighlight lang=json> -->
[
  {
    "!type:PlantAdjustNutrition": {
      "amount": 0.1
    }
  },
  {
    "!type:PlantAdjustWeeds": {
      "amount": 2
    }
  },
  {
    "!type:PlantAdjustPests": {
      "amount": 2
    }
  }
]

Для каждого элемента создаётся вызов:

{{Component/adjustPlant
 |id=!type:PlantAdjustNutrition
 |amount=0.1
}}
{{Component/adjustPlant
 |id=!type:PlantAdjustWeeds
 |amount=2
}}
{{Component/adjustPlant
 |id=!type:PlantAdjustPests
 |amount=2
}}

Особенности:

  • Если JSON — объект вида { "id1": {...}, "id2": {...} }, происходит аналогичный проход по парам ключ → объект.
  • Все вызовы склеиваются через перевод строки и прогоняются через frame:preprocess, поэтому внутри шаблона можно использовать любую вики‑разметку.

Модуль: GetField

Модуль GetField используется для доступа к тем же JSON‑данным .../data, но на более низком уровне.

p.flattenField: расплющивание записи в параметры

{{#invoke:GetField|flattenField
 | <id>
 | <путь_к_json_странице>
}}

Например:

{{#invoke:GetField|flattenField
 | MyEntityId
 | component/item.json
}}

Возвращает строку вида:

damage.types={"Blunt":10}|wieldSound=someSound|...

Особенности:

  • Вложенные объекты кодируются в JSON и заворачиваются в <nowiki>, чтобы их можно было безопасно передавать как параметр.
  • Массивы кодируются в JSON без <nowiki>, чтобы удобно обрабатывать их модулями вроде Сущность.jsonList.

Этот режим используется внутри GetField.getTpl и других обёрток.

p.get: получение значения по пути

{{#invoke:GetField|get
 | <id или пусто для "default">
 | <путь_к_json_странице>
 | <ключ.с.точками>
}}

Примеры:

{{#invoke:GetField|get
 | MyEntityId
 | component/item.json
 | damage.types
}}

Если в JSON:

 <!-- <syntaxhighlight lang=json> -->
"damage": {
  "types": {
    "Blunt": 10
  }
}

то результатом будет:

{"Blunt":10}

то есть:

  • для таблиц модуль пытается сделать mw.text.jsonEncode(v) и вернуть JSON‑строку;
  • для простых значений возвращается строка tostring(v).

Если keyPath пуст, возвращается весь объект (как JSON).

p.getTpl: вызов шаблона по данным JSON

{{#invoke:GetField|getTpl
 | <id>
 | <путь_к_json_странице>
 | <путь_к_шаблону>
}}

Пример:

{{#invoke:GetField|getTpl
 | MyEntityId
 | component/item.json
 | Component/meleeWeapon
}}

Работа:

  • внутри вызывает flattenField, получая строку key=value|...;
  • формирует строку вида:
{{Component/meleeWeapon
 |id=MyEntityId
 |damage.types=...
 |...
}}
  • и прогоняет её через frame:preprocess, возвращая итоговый рендер.

Это удобный способ «подключить» шаблон компонента к данным из JSON без ручного перечисления параметров.

p.getTplProto: вызов шаблона по прототипам

{{#invoke:GetField|getTplProto
 | <searchId>
 | <protoId>
 | <путь_к_шаблону>
}}
  • Ищет в prototype.json все записи, где protoId встречается у searchId.
  • Для каждого найденного ID вызывает getTpl и возвращает все вызовы, склеенные через перевод строки и отрендеренные.

Используется для случаев, когда сущность использует несколько прототипов одного типа, и нужно вывести по одному шаблону на каждый прототип.

Типичный рабочий поток

  1. В JSON‑файлах (component.json, prototype.json и др.) описываются сущности и связи компонент/прототипов.
  2. Для каждого компонента/прототипа создаются шаблоны Template:Component/..., Template:prototype/..., которые:
    • вызывают {{#invoke:Сущность/поля|main ...}} для описания полей карточки;
    • при необходимости используют GetField / Сущность.jsonList / Сущность.json для форматирования сложных JSON‑полей.
  3. Для вывода карточки на странице сущности используется:
    • либо прямой {{#invoke:Сущность|get|MyEntityId}},
    • либо шаблон‑обёртка {{Сущность/карточка|MyEntityId}}.
  4. Для специализированных списков/таблиц:
    • Сущность.jsonList — если нужно красиво показать массив/словарь из JSON;
    • Сущность.json — если нужно превратить список эффектов в набор вызовов шаблона;
    • GetField.get — если нужно точечно вытащить одно поле;
    • GetField.getTpl / getTplProto — если нужно строить шаблоны по данным JSON автоматически.