diff --git a/Resources/Locale/ru-RU/Adventure/Jobs/Borgs.ftl b/Resources/Locale/ru-RU/Adventure/Jobs/Borgs.ftl index 6e9e9dfca21..9caa182e8bb 100644 --- a/Resources/Locale/ru-RU/Adventure/Jobs/Borgs.ftl +++ b/Resources/Locale/ru-RU/Adventure/Jobs/Borgs.ftl @@ -47,3 +47,7 @@ xenoborg-type-engi = [color= #edd45b]Ксеноборги-инженеры[/colo xenoborg-type-heavy = [color= #d62020]Тяжелые ксеноборги[/color] xenoborg-type-scout = [color= #6a6b6f]Ксеноборги-разведчики[/color] xenoborg-type-stealth = [color= #ff00cc]Скрытые ксеноборги[/color] + +ghost-role-information-syndicate-cyborg-medical-name = Медицинский киборг Синдиката +ghost-role-information-syndicate-cyborg-medical-description = Синдикату нужна медицинская помощь. Вы, механический фельдшер, поможете им. +ghost-role-information-syndicate-cyborg-saboteur-description = Синдикату нужен взломщик. Вы, первоклассная машина саботажа, поможете им. diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index bbb2f420d2f..96d68ac5aae 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -181,7 +181,7 @@ ghost-role-information-syndicate-kobold-reinforcement-name = Агент Синд ghost-role-information-syndicate-kobold-reinforcement-description = Кому-то нужно подкрепление. Вы, специально обученный кобольд, поможете им. ghost-role-information-syndicate-cyborg-assault-name = Штурмовой киборг Синдиката ghost-role-information-syndicate-cyborg-saboteur-name = Саботажный киборг Синдиката -ghost-role-information-syndicate-cyborg-description = Синдикату нужно подкрепление. Вы, холодная кремниевая машина для убийства, поможете им. +ghost-role-information-syndicate-cyborg-description = Синдикату нужна боевая единица. Вы, холодная кремниевая машина для убийства, поможете им. ghost-role-information-derelict-engineering-cyborg-name = Брошенный киборг-инженер ghost-role-information-derelict-engineering-cyborg-description = Вы — инженерный киборг, который заблудился в космосе. После долгих лет воздействия ионных бурь вы оказываетесь рядом с космической станцией. ghost-role-information-derelict-cyborg-name = Брошенный киборг diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl index 6611bb0f64e..62050b7228a 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl @@ -12,6 +12,6 @@ ent-ReinforcementRadioSyndicateAncestorNukeops = { ent-ReinforcementRadioSyndica .desc = { ent-ReinforcementRadioSyndicateAncestor.desc } ent-ReinforcementRadioSyndicateSyndiCat = радио подкрепления СиндиКота .desc = Призывает на помощь верного дрессированного кота с микробомбой. -ent-ReinforcementRadioSyndicateCyborgAssault = радио подкрепления штурмового киборга Синдиката - .desc = Призовите хорошо вооружённого штурмового киборга, немедленно! +ent-ReinforcementRadioSyndicateCyborgAssault = радио подкрепления киборгов Синдиката + .desc = Призовите любого из трёх хорошо вооруженных киборгов на ваш вкус, немедленно! .suffix = Ядерные оперативники diff --git a/Resources/Locale/ru-RU/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/store/uplink-catalog.ftl index b501f544535..611f19c75cf 100644 --- a/Resources/Locale/ru-RU/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/store/uplink-catalog.ftl @@ -108,8 +108,8 @@ uplink-reinforcement-radio-name = Телепорт подкрепления uplink-reinforcement-radio-traitor-desc = Телепортирует в качестве подкрепления сомнительного качества агента. Не имеет кнопки отключения, покупайте его только если вы готовы к вечеринке. Вызовите медика, шпиона или вора, чтобы они помогли вам. Удачи. uplink-reinforcement-radio-nukeops-name = Телепорт Ядерного оперативника uplink-reinforcement-radio-nukeops-desc = Телепортирует в качестве подкрепления сомнительного качества ядерного оперативника. Не имеет кнопки отключения, покупайте его только если вы готовы к вечеринке. У них будет базовое снаряжение ядерного оперативника. -uplink-reinforcement-radio-cyborg-assault-name = Телепорт штурмового киборга Синдиката -uplink-reinforcement-radio-cyborg-assault-desc = Машина для убийств с доступом к энергомечу, пулемёту, криптографическому секвенсору и пинпоинтеру. +uplink-reinforcement-radio-cyborg-assault-name = Телепорт киборгов Синдиката +uplink-reinforcement-radio-cyborg-assault-desc = Призовите на помощь зловещую силиконовую боевую единицу, способную заменить недостающее звено в вашей команде. uplink-stealth-box-name = Стелс-коробка uplink-stealth-box-desc = Ящик, оснащённый технологией невидимости. Пробирайтесь незамеченными, но не двигайтесь слишком быстро, иначе вы раскроете себя! uplink-headset-name = Полноразмерная гарнитура Синдиката diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 8fc7998257b..a0a8c0eeffe 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -585,19 +585,26 @@ suffix: Battery, Module, Operative components: - type: NukeOperative + - type: BorgChassis + maxModules: 8 - type: ContainerFill containers: borg_brain: - PositronicBrain - borg_module: - - BorgModuleTool + borg_module: #ADV Modules + - BorgModuleAdvancedTool - BorgModuleOperative - BorgModuleSyndicateWeapon + - BorgModuleSaboteur + - BorgModuleSpyBug - type: ItemSlots slots: cell_slot: name: power-cell-slot-component-slot-name-default startingItem: PowerCellHyper + - type: MovementSpeedModifier #ADV + baseWalkSpeed : 2.75 + baseSprintSpeed : 4.75 - type: entity id: PlayerBorgSyndicateSaboteurGhostRole diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml index ff728e12549..d266faa81e7 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -119,3 +119,4 @@ job: Borg - type: GhostRoleMobSpawner prototype: PlayerBorgSyndicateAssaultBattery + selectablePrototypes: ["SyndicateAssaultBorg", "SyndicateSaboteurBorg", "SyndicateMedicalBorg"] #Adventure diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 8fbc14393bc..3fc8df20dd5 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -652,6 +652,10 @@ layer: - WallLayer density: 2000 + - type: RCDDeconstructable + deviceType: Disassembler + cost: 5 + delay: 8 - type: entity parent: WallReinforced diff --git a/Resources/Prototypes/_Adventure/Roles/Syndie/nukeborgs.yml b/Resources/Prototypes/_Adventure/Roles/Syndie/nukeborgs.yml new file mode 100644 index 00000000000..f6798bcd54d --- /dev/null +++ b/Resources/Prototypes/_Adventure/Roles/Syndie/nukeborgs.yml @@ -0,0 +1,271 @@ + +- type: ghostRole + id: SyndicateAssaultBorg + name: ghost-role-information-syndicate-cyborg-assault-name + description: ghost-role-information-syndicate-cyborg-description + rules: ghost-role-information-nukeop-reinforcement-rules + entityPrototype: PlayerBorgSyndicateAssaultBattery + +- type: ghostRole + id: SyndicateSaboteurBorg + name: ghost-role-information-syndicate-cyborg-saboteur-name + description: ghost-role-information-syndicate-cyborg-saboteur-description + rules: ghost-role-information-nukeop-reinforcement-rules + entityPrototype: PlayerBorgSyndicateSaboteurBattery + +- type: ghostRole + id: SyndicateMedicalBorg + name: ghost-role-information-syndicate-cyborg-medical-name + description: ghost-role-information-syndicate-cyborg-medical-description + rules: ghost-role-information-nukeop-reinforcement-rules + entityPrototype: PlayerBorgSyndicateMedicalBattery + +- type: entity + id: PlayerBorgSyndicateMedicalBattery + parent: BorgChassisSyndicateMedical + suffix: Battery, Module, Operative + name: медицинский киборг Синдиката + description: Боевой медицинский киборг. Имеет ограниченный наступательный потенциал, но с лихвой компенсирует его своими вспомогательными возможностями. + components: + - type: NukeOperative + - type: BorgChassis + maxModules: 6 + - type: ContainerFill + containers: + borg_brain: + - PositronicBrain + borg_module: + - BorgModuleTool + - BorgModuleCrossbow + - BorgModuleLaboratory + - BorgModuleParamedic + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHyper + - type: MovementSpeedModifier + baseWalkSpeed : 2.75 + baseSprintSpeed : 4.75 + + +- type: entity + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ] + id: BorgModuleCrossbow + name: модуль киборга-крестоносца + description: Модуль, содержащий в себе энергощит и энергетический арбалет, на короткое время сбивающий цель с ног. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: WeaponEnergyCrossbow + - item: EnergyShield + - type: BorgModuleIcon + icon: { sprite: _Adventure/Interface/Actions/actions_borg_syndie.rsi, state: syndicate-crossbow-module } + +- type: entity + id: DefibrillatorSyndicateBorg + parent: [ DefibrillatorOneHandedUnpowered, BaseSyndicateContraband ] + name: дефибриллятор Interdyne + description: Также служит оружием самообороны против склонных к военным преступлениям тайдеров. + components: + - type: Sprite + sprite: Objects/Specific/Medical/defibsyndi.rsi + layers: + - state: icon + - state: screen + map: [ "enum.ToggleableVisuals.Layer" ] + visible: false + shader: unshaded + - state: ready + map: ["enum.PowerDeviceVisualLayers.Powered"] + shader: unshaded + - type: MeleeWeapon + damage: + types: + Blunt: 4 + - type: ItemToggleMeleeWeapon + activatedSoundOnHit: + path: /Audio/Items/Defib/defib_zap.ogg + params: + variation: 0.250 + activatedSoundOnHitNoDamage: + path: /Audio/Items/Defib/defib_zap.ogg + params: + variation: 0.250 + volume: -10 + activatedDamage: + types: + Blunt: 4 + Shock: 10 + +- type: entity + parent: [ BorgHypo, BaseSyndicateContraband ] + id: EpinephrineHypo + name: эпинефрин-гипо + description: Самозаполняющийся инъектор для оперативного введения эпинефрина пострадавшим. + components: + - type: SolutionContainerManager + solutions: + hypospray: + maxVol: 7 + reagents: + - ReagentId: Epinephrine + Quantity: 7 + - type: SolutionRegeneration + solution: hypospray + generated: + reagents: + - ReagentId: Epinephrine + Quantity: 0.2 + + +- type: entity + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ] + id: BorgModuleParamedic + name: модуль киборга-парамедика + description: Техническая деталь, содержащая в себе набор для реанимации ваших союзников и для причинения вреда тем, кто пытается реанимации воспрепятствовать. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: HandheldHealthAnalyzerUnpowered + - item: DefibrillatorSyndicateBorg + - item: EpinephrineHypo + - type: BorgModuleIcon + icon: { sprite: _Adventure/Interface/Actions/actions_borg_syndie.rsi, state: syndicate-paramedic-module } + + +- type: entity + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ] + id: BorgModuleLaboratory + name: модуль киборга-лаборанта + description: Техническая деталь, превращающая киборга в переносную лабораторию. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: HandheldHealthAnalyzerUnpowered + - item: SyndiHypo + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Jug + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Jug + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Jug + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Jug + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - item: LargeBeaker + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: LargeBeaker + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - type: BorgModuleIcon + icon: { sprite: _Adventure/Interface/Actions/actions_borg_syndie.rsi, state: syndicate-laboratory-module } + +- type: entity + id: RPDRecharging + parent: RPD + name: экспериментальное УПТ + description: Новейшее ручное устройство подачи труб, которое может быстро размещать трубы и вентиляции. + suffix: AutoRecharge + components: + - type: LimitedCharges + maxCharges: 20 + - type: AutoRecharge + rechargeDuration: 10 + +- type: entity + id: Disassembler + parent: RCD + name: дизассемблер + description: Отмычка, специально сконструированная для разбора укрепленных стен. + components: + - type: RCD + deviceType: Disassembler + availablePrototypes: + - Deconstruct + - type: Sprite + sprite: _Adventure/Interface/Actions/actions_borg_syndie.rsi + state: icon + - type: LimitedCharges + maxCharges: 20 + - type: AutoRecharge + rechargeDuration: 10 + +- type: entity + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ] + id: BorgModuleSaboteur + name: саботажный модуль киборга + description: Техническая деталь, содержащая в себе набор для разбора большинства несущих конструкций. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: RCDRecharging + - item: RPDRecharging + - item: Disassembler + - type: BorgModuleIcon + icon: { sprite: _Adventure/Interface/Actions/actions_borg_syndie.rsi, state: syndicate-saboteur-module } + +- type: entity + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ] + id: BorgModuleSpyBug + name: шпионский модуль киборга + description: Техническая деталь, дающая киборгу способности вторжения в системы станции. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: XenoborgRadioJammer + - item: HandheldStationMapUnpowered + - item: CameraBug + - type: BorgModuleIcon + icon: { sprite: _Adventure/Interface/Actions/actions_borg_syndie.rsi, state: syndicate-spybug-module } diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/icon.png b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/icon.png new file mode 100644 index 00000000000..4576308bf80 Binary files /dev/null and b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/icon.png differ diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/meta.json b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/meta.json new file mode 100644 index 00000000000..01da808ebf3 --- /dev/null +++ b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by @Elsuert", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name":"syndicate-crossbow-module" + }, + { + "name":"syndicate-laboratory-module" + }, + { + "name":"syndicate-paramedic-module" + }, + { + "name":"syndicate-saboteur-module" + }, + { + "name":"syndicate-spybug-module" + }, + { + "name":"icon" + } + ] +} diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-crossbow-module.png b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-crossbow-module.png new file mode 100644 index 00000000000..20bb93c3a30 Binary files /dev/null and b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-crossbow-module.png differ diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-laboratory-module.png b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-laboratory-module.png new file mode 100644 index 00000000000..505437366a9 Binary files /dev/null and b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-laboratory-module.png differ diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-paramedic-module.png b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-paramedic-module.png new file mode 100644 index 00000000000..d07e4cebf73 Binary files /dev/null and b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-paramedic-module.png differ diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-saboteur-module.png b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-saboteur-module.png new file mode 100644 index 00000000000..1075cecb072 Binary files /dev/null and b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-saboteur-module.png differ diff --git a/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-spybug-module.png b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-spybug-module.png new file mode 100644 index 00000000000..8f8b7aadd53 Binary files /dev/null and b/Resources/Textures/_Adventure/Interface/Actions/actions_borg_syndie.rsi/syndicate-spybug-module.png differ