diff --git a/Resources/Locale/en-US/_corvaxnext/entities/objects/Robotics/security.ftl b/Resources/Locale/en-US/_corvaxnext/entities/objects/Robotics/security.ftl new file mode 100644 index 00000000000..dfd722a6bf9 --- /dev/null +++ b/Resources/Locale/en-US/_corvaxnext/entities/objects/Robotics/security.ftl @@ -0,0 +1,22 @@ +ent-StunbatonROW = stun baton+ + .desc = A stun baton for incapacitating people with. It is charged by cyborg power. +ent-StunbatonDouble = double-baton + .desc = An advanced stun baton, with which you can very effectively disable people. She is powered by cyborg energy. +ent-FlashBorg = flash + .desc = An ultra bright flashbulb with a trigger, which causes the victim to be dazed and lose their eyesight for a moment. It has a burnout auto-stop system. +ent-WeaponDisablerROW = disabler-MK3 + .desc = A self-defense weapon that exhausts organic targets, weakening them until they collapse. Powered by cyborg power. +ent-WeaponDisablerSMGROW = disabler-SMG+ + .desc = An advanced weapon that exhausts organic targets until they fall off their feet. Powered by cyborg energy. + +ent-WeaponRifleLecterROW = Lecter ROW + .desc = A high end military grade assault rifle. Synthesizes ammo by powering a cyborg. + +ent-HandHeldCriminalRecords = handheld criminal records + .desc = A device for remote access to the station's criminal records. + +ent-HandHeldCriminalRecordsBorg = handheld criminal records + .desc = A device for remote access to the station's criminal records. + +ent-HoloprojectorSecurityBorg = holobarrier projector + .desc = Creates a solid but fragile holographic barrier. Self-rechargable. \ No newline at end of file diff --git a/Resources/Locale/en-US/borg/borg.ftl b/Resources/Locale/en-US/borg/borg.ftl index 9c9dc71069a..260d9c0f4e2 100644 --- a/Resources/Locale/en-US/borg/borg.ftl +++ b/Resources/Locale/en-US/borg/borg.ftl @@ -61,4 +61,8 @@ borg-type-service-name = Service borg-type-service-desc = Help out with a wide range of crew services, ranging from serving snacks and drinks to botany to entertainment. borg-type-service-transponder = service cyborg +borg-type-security-name = Security +borg-type-security-desc = Assist the Security Department in monitoring compliance with space law and eliminating threats. +borg-type-security-transponder = security cyborg + diff --git a/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl b/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl index 1eb816aea2a..90440bf3337 100644 --- a/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl +++ b/Resources/Locale/en-US/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl @@ -12,6 +12,8 @@ ent-BaseBorgModuleJanitor = { ent-BaseBorgModule } .desc = { ent-BaseBorgModule.desc } ent-BaseBorgModuleMedical = { ent-BaseBorgModule } .desc = { ent-BaseBorgModule.desc } +ent-BaseBorgModuleSecurity = { ent-BaseBorgModule } + .desc = { ent-BaseBorgModule.desc } ent-BaseBorgModuleService = { ent-BaseBorgModule } .desc = { ent-BaseBorgModule.desc } ent-BaseBorgModuleSyndicate = { ent-BaseBorgModule } @@ -68,6 +70,14 @@ ent-BorgModuleHarvesting = harvesting cyborg module .desc = { ent-BaseBorgModuleService.desc } ent-BorgModuleClowning = clowning cyborg module .desc = { ent-BaseBorgModuleService.desc } +ent-BorgModuleNeutralization = neutralization cyborg module + .desc = { ent-BaseBorgModuleSecurity.desc } +ent-BorgModuleNeutralizationAdvanced = advanced neutralization cyborg module + .desc = { ent-BaseBorgModuleSecurity.desc } +ent-BorgModuleLecter = lecter cyborg module + .desc = { ent-BaseBorgModuleSecurity.desc } +ent-BorgModuleSecurityControlling = controlling cyborg module + .desc = { ent-BaseBorgModuleSecurity.desc } ent-BorgModuleSyndicateWeapon = weapon cyborg module .desc = { ent-BaseBorgModule.desc } ent-BorgModuleOperative = operative cyborg module diff --git a/Resources/Locale/ru-RU/_CorvaxNext/entities/objects/Robotics/security.ftl b/Resources/Locale/ru-RU/_CorvaxNext/entities/objects/Robotics/security.ftl new file mode 100644 index 00000000000..51b2eeb912d --- /dev/null +++ b/Resources/Locale/ru-RU/_CorvaxNext/entities/objects/Robotics/security.ftl @@ -0,0 +1,22 @@ +ent-StunbatonROW = дубинка-шокер+ + .desc = Электрошоковая дубинка для обездвиживания людей. Заряжается от питания киборга. +ent-StunbatonDouble = двойная дубинка-шокер + .desc = Продвинутая электрошоковая дубинка, с помощью которой можно очень эффектно выводить людей из строя. Она питается от энергии киборга. +ent-FlashBorg = вспышка + .desc = Сверхъяркая лампочка с кнопкой включения, вызывает оцепенение и кратковременную потерю зрения. Имеет систему авто-починки от перегорания. +ent-WeaponDisablerROW = станнер-MK3 + .desc = Оружие для самозащиты, которое изнуряет органические цели, пока они не свалятся с ног. Работает от питания киборга. +ent-WeaponDisablerSMGROW = станнер-пулемёт+ + .desc = Усовершенствованное оружие, которое изнуряет органические цели, пока они не свалятся с ног. Питается от энергии киборга. + +ent-WeaponRifleLecterROW = Лектер ROW + .desc = Первоклассная армейская штурмовая винтовка. Синтезирует боеприпасы за счёт питания киборга. + +ent-HandHeldCriminalRecords = пульт криминальных записей + .desc = Устройство для дистанционного доступа к криминальным записям станции. + +ent-HandHeldCriminalRecordsBorg = пульт криминальных записей + .desc = Устройство для дистанционного доступа к криминальным записям станции. + +ent-HoloprojectorSecurityBorg = проектор голобарьера + .desc = Создаёт твёрдый но хрупкий барьер. Самоперезарежаемый. diff --git a/Resources/Locale/ru-RU/borg/borg.ftl b/Resources/Locale/ru-RU/borg/borg.ftl index bcc25920441..bc356590cf6 100644 --- a/Resources/Locale/ru-RU/borg/borg.ftl +++ b/Resources/Locale/ru-RU/borg/borg.ftl @@ -13,12 +13,15 @@ borg-ui-no-brain = Мозг отсутствует borg-ui-remove-battery = Извлечь borg-ui-modules-label = Модули: borg-ui-module-counter = { $actual }/{ $max } + # Transponder borg-transponder-disabled-popup = Мозг вылетает из верхушки { $name }! borg-transponder-disabling-popup = Ваш транспондер начинает отсоединять вас от шасси! borg-transponder-destroying-popup = Система самоуничтожения { $name } начинает пикать! borg-transponder-emagged-disabled-popup = Огни вашего транспондера погасли! borg-transponder-emagged-destroyed-popup = Предохранитель вашего транспондера перегорел! + +## Borg type selection UI. borg-select-type-menu-title = Выберите тип шасси borg-select-type-menu-bottom-text = Выбор шасси является необратимым borg-select-type-menu-available = Доступные: @@ -26,21 +29,33 @@ borg-select-type-menu-information = Информация borg-select-type-menu-select-type = Выберите тип шасси для просмотра информации borg-select-type-menu-confirm = Подтвердите выбор borg-select-type-menu-guidebook = Руководство + +## Borg type information + borg-type-generic-name = Универсал borg-type-generic-desc = Может всё, но одинаково не очень хорошо. Выполняйте различные случайные поручения на станции, или, быть может, окажите помощь научному отделу, который вас построил. borg-type-generic-transponder = обычный киборг + borg-type-engineering-name = Инженер borg-type-engineering-desc = Помогайте команде инженеров в строительстве станции, ликвидации повреждений или исправлении проблем с электричеством и атмосферой. borg-type-engineering-transponder = киборг-инженер + borg-type-mining-name = Утилизатор borg-type-mining-desc = Присоединитесь к утилизаторам и окажите им помощь в добыче ресурсов, исследованию обломков и борьбе с враждебной фауной космоса. borg-type-mining-transponder = киборг-шахтёр + borg-type-janitor-name = Уборщик borg-type-janitor-desc = Поддерживайте порядок на станции, убирайте пролитую жидкость, собирайте и правильно утилизируйте мусор, оставленный ленивыми членами экипажа. borg-type-janitor-transponder = киборг-уборщик + borg-type-medical-name = Медик borg-type-medical-desc = Оказывайте медицинскую помощь нуждающемуся экипажу в медотсеке или в опасных зонах, куда обычные парамедики не могут добраться. borg-type-medical-transponder = киборг-доктор + borg-type-service-name = Сервисный borg-type-service-desc = Помогайте членам экипажа в самых разных ситуациях - от подачи закусок и напитков до занятий ботаникой и развлечений. borg-type-service-transponder = киборг-официант + +borg-type-security-name = Служебный +borg-type-security-desc = Помогайте отделу Службы безопасности в контроле соблюдения космического закона и устранении угроз станции. +borg-type-security-transponder = киборг-службы-безопасности \ No newline at end of file diff --git a/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl b/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl index a23586d1731..7ab16612fc9 100644 --- a/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl @@ -63,6 +63,7 @@ petting-success-salvage-cyborg = Вы гладите { $target } по { POSS-ADJ petting-success-engineer-cyborg = Вы гладите { $target } по { POSS-ADJ($target) } светоотражающей металлической голове. petting-success-janitor-cyborg = Вы гладите { $target } по { POSS-ADJ($target) } сырой металлической голове. petting-success-medical-cyborg = Вы гладите { $target } по { POSS-ADJ($target) } стерильной металлической голове. +petting-success-security-cyborg = Вы гладите { $target } по { POSS-ADJ($target) } бронированной металлической голове. petting-success-service-cyborg = Вы гладите { $target } по { POSS-ADJ($target) } нарядной металлической голове. petting-success-syndicate-cyborg = Вы гладите { $target } по { POSS-ADJ($target) } угрожающего вида металлической голове. petting-failure-honkbot = Вы тянетесь погладить { $target }, но { $target } хонкает и уворачивается! @@ -73,6 +74,7 @@ petting-failure-medibot = Вы тянетесь погладить { $target }, petting-failure-firebot = Вы тянетесь погладить { $target }, но { $target } брызгает вам в лицо, прежде чем вы успеваете приблизиться! petting-failure-generic-cyborg = Вы тянетесь погладить { $target }, но { $target } занимается перечислением законов! petting-failure-salvage-cyborg = Вы тянетесь погладить { $target }, но { $target } занимается бурением! +petting-failure-security-cyborg = Вы тянетесь погладить { $target }, но { $target } занимается обеспечением безопасности! petting-failure-engineer-cyborg = Вы тянетесь погладить { $target }, но { $target } занимается починкой! petting-failure-janitor-cyborg = Вы тянетесь погладить { $target }, но { $target } занимается уборкой! petting-failure-medical-cyborg = Вы тянетесь погладить { $target }, но { $target } занимается спасением жизней! diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl index 7c80e538866..5b493fa3b01 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/robotics/borg_modules.ftl @@ -6,6 +6,8 @@ ent-ActionBorgSwapModule = Сменить модуль .desc = Выбор этого модуля позволит вам использовать предоставляемые им инструменты. ent-BaseBorgModuleCargo = { ent-BaseBorgModule } .desc = { ent-BaseBorgModule.desc } +ent-BaseBorgModuleSecurity = { ent-BaseBorgModule } + .desc = { ent-BaseBorgModule.desc } ent-BaseBorgModuleEngineering = { ent-BaseBorgModule } .desc = { ent-BaseBorgModule.desc } ent-BaseBorgModuleJanitor = { ent-BaseBorgModule } @@ -68,6 +70,14 @@ ent-BorgModuleHarvesting = урожайный модуль киборга .desc = { ent-BaseBorgModule.desc } ent-BorgModuleClowning = клоунский модуль киборга .desc = { ent-BaseBorgModule.desc } +ent-BorgModuleNeutralization = обезвреживающий модуль киборга + .desc = { ent-BaseBorgModuleSecurity.desc } +ent-BorgModuleNeutralizationAdvanced = продвинутый обезвреживающий модуль киборга + .desc = { ent-BaseBorgModuleSecurity.desc } +ent-BorgModuleLecter = Лектер модуль киборга + .desc = Техническая деталь, дающая киборгам новые способности. Имеется гравировка "Установка разрешена только в Красный Код и выше!" +ent-BorgModuleSecurityControlling = контролирующий модуль киборга + .desc = { ent-BaseBorgModuleSecurity.desc } ent-BorgModuleSyndicateWeapon = кроваво-красный модуль киборга .desc = { ent-BaseBorgModule.desc } .suffix = оружейный модуль киборга diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index e2cff55e0ce..46d82ee700d 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -341,6 +341,7 @@ prob: 0.5 - id: ClothingOuterCoatHoSGreatcoat # Corvax-Resprite - id: BookBusido # Corvax-Books + - id: BorgModuleLecter # Corvax Next- Security Borg # Hardsuit table, used for suit storage as well - type: entityTable diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index 8f8a116a4e3..0080d70525d 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -49,6 +49,14 @@ - type: BorgSwitchableType selectedBorgType: mining +- type: entity + id: BorgChassisSec + parent: BorgChassisSelectable + name: киборг-службы безопасности + components: + - type: BorgSwitchableType + selectedBorgType: security + - type: entity id: BorgChassisEngineer parent: BorgChassisSelectable diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml index 0df74d80d6a..f00fc1a054f 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml @@ -134,3 +134,21 @@ slots: cell_slot: name: power-cell-slot-component-slot-name-default + +- type: entity + parent: HoloprojectorSecurity + id: HoloprojectorSecurityBorg + name: holobarrier projector + suffix: Borg + description: Creates a solid but fragile holographic barrier. Self-rechargable + components: + - type: HolosignProjector + signProto: HolosignSecurity + chargeUse: 240 + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor + disableEject: true + swap: false diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 6e4d3a59262..3a1a3c1a9d4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -482,6 +482,20 @@ - Security - Antagonists +- type: entity + name: disabler-MK3 + parent: WeaponDisabler + id: WeaponDisablerROW + description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. + noSpawn: true + components: + - type: Battery + maxCharge: 500 + startingCharge: 500 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 15 + - type: entity name: disabler SMG parent: [ BaseWeaponBattery, BaseRestrictedContraband ] @@ -519,6 +533,31 @@ - type: StaticPrice price: 260 +- type: entity + name: disabler-SMG+ + parent: WeaponDisablerSMG + id: WeaponDisablerSMGROW + description: Advanced weapon that exhausts organic targets, weakening them until they collapse. + noSpawn: true + components: + - type: Gun + minAngle: 2 + maxAngle: 8 + selectedMode: FullAuto + fireRate: 4 + availableModes: + - SemiAuto + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: Battery + maxCharge: 330 + startingCharge: 330 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 8 + + - type: entity name: taser parent: [ BaseWeaponBatterySmall, BaseRestrictedContraband ] diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index e34433cb56a..6dce0bbe784 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -191,6 +191,46 @@ zeroVisible: true - type: Appearance +- type: entity + name: Lecter ROW + parent: BaseItem + suffix: Borg + id: WeaponRifleLecterROW + description: A high end military grade assault rifle. Synthesizes ammo by powering a cyborg. + noSpawn: true + components: + - type: Gun + minAngle: 12 + maxAngle: 18 + fireRate: 5 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/ltrifle.ogg + - type: Sprite + sprite: Objects/Weapons/Guns/Rifles/lecter.rsi + layers: + - state: base + map: [ "enum.GunVisualLayers.Base" ] + - state: mag-0 + map: [ "enum.GunVisualLayers.Mag" ] + - type: Item + size: Huge + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: ProjectileBatteryAmmoProvider + proto: CartridgeLightRifle + fireCost: 100 + - type: Battery + maxCharge: 1600 + startingCharge: 1600 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 20 + - type: AmmoCounter + - type: entity name: Foam Force Astro Ace parent: [BaseWeaponShotgun, BaseGunWieldable] diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml index edbe58f584f..277b9141359 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml @@ -89,6 +89,19 @@ - Security - Antagonists +- type: entity + name: stun baton+ + parent: Stunbaton + id: StunbatonROW + description: A stun baton for incapacitating people with. It is charged by cyborg power + noSpawn: true + components: + - type: Stunbaton + energyPerUse: 200 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 5 + - type: entity name: truncheon parent: [BaseItem, BaseRestrictedContraband] @@ -172,6 +185,26 @@ - Security - Antagonists +- type: entity + name: flash + noSpawn: true + parent: [BaseItem, Flash] + id: FlashBorg + suffix: Borg + description: An ultra bright flashbulb with a trigger, which causes the victim to be dazed and lose their eyesight for a moment. It has a burnout auto-stop system + components: + - type: AutoRecharge + - type: GenericVisualizer + visuals: + enum.FlashVisuals.Burnt: + enum.FlashVisuals.BaseLayer: + False: {state: burnt} + enum.FlashVisuals.Flashing: + enum.FlashVisuals.LightLayer: + True: {visible: true} + False: {visible: false} + + - type: entity name: flash parent: Flash diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index a589c1258db..851e7492638 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -759,6 +759,7 @@ - WeaponFlareGunSecurity - WeaponLaserCarbinePractice - Zipties + - BorgModuleNeutralization # _CorvaxNext: Security Borg dynamicRecipes: - BoxBeanbag - BoxShotgunIncendiary @@ -812,6 +813,9 @@ - WeaponXrayCannon - SecurityCyberneticEyes # _CorvaxNext: surgery Change - MedicalCyberneticEyes # _CorvaxNext: surgery Change + - BorgModuleLecter # _CorvaxNext: Security Borg + - BorgModuleSecurityControlling # _CorvaxNext: Security Borg + - BorgModuleNeutralizationAdvanced # _CorvaxNext: Security Borg - type: MaterialStorage whitelist: tags: diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 553258fdb3f..ac28507b41e 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -96,6 +96,8 @@ - TelescopicShield - HoloprojectorSecurity - WeaponDisablerSMG + - BorgModuleSecurityControlling + - BorgModuleLecter - type: technology id: ExplosiveTechnology @@ -140,6 +142,7 @@ cost: 10000 recipeUnlocks: - WeaponLaserCannon + - BorgModuleNeutralizationAdvanced - type: technology id: WaveParticleHarnessing diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Robotics/borg_modules.yml new file mode 100644 index 00000000000..1ec8f2542c2 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -0,0 +1,84 @@ +- type: entity + id: BaseBorgModuleSecurity + parent: [BaseBorgModule, BaseSecurityScienceCommandContraband] + abstract: true + components: + - type: Tag + tags: + - BorgModuleSec + +# security modules +- type: entity + id: BorgModuleNeutralization + parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] + name: neutralization cyborg module + components: + - type: Sprite + layers: + - state: security + - state: icon-neutralization + - type: ItemBorgModule + items: + - StunbatonROW + - WeaponDisablerROW + - FlashBorg + - type: BorgModuleIcon + icon: { sprite: _CorvaxNext/Interface/Actions/actions_borg.rsi, state: security-neutralization-module } + +- type: entity + id: BorgModuleNeutralizationAdvanced + parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] + name: advanced neutralization cyborg module + components: + - type: Sprite + layers: + - state: security + - state: icon-neutralization-adv + - type: ItemBorgModule + items: + - StunbatonDouble + - WeaponDisablerSMGROW + - FlashBorg + - type: BorgModuleIcon + icon: { sprite: _CorvaxNext/Interface/Actions/actions_borg.rsi, state: security-neutralization-adv-module } + +- type: entity + id: BorgModuleLecter + parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] + name: lecter cyborg module + description: A piece of tech that gives cyborgs new abilities. Installation is allowed only in red code and above. + components: + - type: Sprite + layers: + - state: security + - state: icon-lecter + - type: ItemBorgModule + items: + - WeaponRifleLecterROW + - CombatKnife + - type: Tag + tags: + - BorgModuleSec + - type: BorgModuleIcon + icon: { sprite: _CorvaxNext/Interface/Actions/actions_borg.rsi, state: security-lecter-module } + +- type: entity + id: BorgModuleSecurityControlling + parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] + name: controlling cyborg module + components: + - type: Sprite + layers: + - state: security + - state: icon-security-supportive + - type: ItemBorgModule + items: + - HandHeldCriminalRecordsBorg + - HoloprojectorSecurityBorg + - DoorRemoteSecurity + - Syringe + - type: Tag + tags: + - BorgModuleSec + - type: BorgModuleIcon + icon: { sprite: _CorvaxNext/Interface/Actions/actions_borg.rsi, state: security-support-module } \ No newline at end of file diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/HandheldComputers/handheld_criminal_Records.yml b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/HandheldComputers/handheld_criminal_Records.yml new file mode 100644 index 00000000000..f6a119cfc9f --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/HandheldComputers/handheld_criminal_Records.yml @@ -0,0 +1,47 @@ +- type: entity + name: handheld criminal records + parent: BaseHandheldComputer + id: HandHeldCriminalRecords + description: A device for remote access to the station's criminal records. + components: + - type: Item + - type: Sprite + sprite: _CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi + state: icon + layers: + - state: icon + - state: scanner + shader: unshaded + visible: true + map: [ "enum.PowerDeviceVisualLayers.Powered" ] + - type: CriminalRecordsConsole + - type: Appearance + - type: PowerCellDraw + drawRate: 1.5 + - type: ToggleCellDraw + - type: ActivatableUI + key: enum.CriminalRecordsConsoleKey.Key + inHandsOnly: true + singleUser: true + - type: UserInterface + interfaces: + enum.CriminalRecordsConsoleKey.Key: + type: CriminalRecordsConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface + - type: StaticPrice + price: 150 + +- type: entity + id: HandHeldCriminalRecordsBorg + parent: HandHeldCriminalRecords + suffix: Borg + noSpawn: true + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor + disableEject: true + swap: false \ No newline at end of file diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Weapons/security.yml new file mode 100644 index 00000000000..366fdaee0fb --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Weapons/security.yml @@ -0,0 +1,94 @@ +- type: entity + name: stun baton double + parent: [BaseItem, BaseRestrictedContraband] + id: StunbatonDouble + description: A stun baton for incapacitating people with. Actively harming with this is considered bad tone. + components: + - type: Sprite + sprite: _CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi + layers: + - state: double_stunbaton_off + map: [ "enum.ToggleVisuals.Layer" ] + - type: Stunbaton + energyPerUse: 50 + - type: ItemToggle + predictable: false + soundActivate: + collection: sparks + params: + variation: 0.250 + soundDeactivate: + collection: sparks + params: + variation: 0.250 + soundFailToActivate: + path: /Audio/Machines/button.ogg + params: + variation: 0.250 + - type: ItemToggleMeleeWeapon + activatedDamage: + types: + Blunt: 0 + - type: MeleeWeapon + wideAnimationRotation: -135 + attackRate: 1.5 + damage: + types: + Blunt: 7 + bluntStaminaDamageFactor: 2.0 + angle: 60 + animation: WeaponArcSlash + - type: StaminaDamageOnHit + damage: 35 + sound: /Audio/Weapons/egloves.ogg + - type: StaminaDamageOnCollide + damage: 35 + sound: /Audio/Weapons/egloves.ogg + - type: LandAtCursor # it deals stamina damage when thrown + - type: Battery + maxCharge: 400 + startingCharge: 400 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 5 + - type: UseDelay + - type: Item + heldPrefix: off + size: Normal + - type: Clothing + sprite: Objects/Weapons/Melee/stunbaton.rsi + quickEquip: false + slots: + - Belt + - type: DisarmMalus + malus: 0.225 + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleVisuals.Toggled: + enum.ToggleVisuals.Layer: + True: {state: double_stunbaton_on} + False: {state: double_stunbaton_off} + - type: StaticPrice + price: 200 + - type: Riggable + - type: SolutionContainerManager + solutions: + battery: + maxVol: 5 + - type: InjectableSolution + solution: battery + - type: DrawableSolution + solution: battery + - type: Explosive + explosionType: Default + intensitySlope: 1.5 + maxIntensity: 200 + - type: PhysicalComposition + materialComposition: + Steel: 100 + Plastic: 100 + - type: GuideHelp + guides: + - Security + - Antagonists diff --git a/Resources/Prototypes/_CorvaxNext/Recipes/Lathes/robotics.yml b/Resources/Prototypes/_CorvaxNext/Recipes/Lathes/robotics.yml new file mode 100644 index 00000000000..44020500f3f --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Recipes/Lathes/robotics.yml @@ -0,0 +1,38 @@ +# Security Modules +- type: latheRecipe + parent: BaseBorgModuleRecipe + id: BorgModuleNeutralization + result: BorgModuleNeutralization + materials: + Steel: 500 + Glass: 800 + Plastic: 250 + +- type: latheRecipe + parent: BaseBorgModuleRecipe + id: BorgModuleNeutralizationAdvanced + result: BorgModuleNeutralizationAdvanced + materials: + Steel: 500 + Glass: 800 + Plastic: 250 + Gold: 50 + +- type: latheRecipe + parent: BaseBorgModuleRecipe + id: BorgModuleSecurityControlling + result: BorgModuleSecurityControlling + materials: + Steel: 500 + Glass: 500 + Plastic: 500 + +- type: latheRecipe + parent: BaseBorgModuleRecipe + id: BorgModuleLecter + result: BorgModuleLecter + materials: + Steel: 2000 + Glass: 1500 + Plastic: 1000 + Gold: 50 \ No newline at end of file diff --git a/Resources/Prototypes/borg_types.yml b/Resources/Prototypes/borg_types.yml index f6294be68e3..55187f04dc6 100644 --- a/Resources/Prototypes/borg_types.yml +++ b/Resources/Prototypes/borg_types.yml @@ -65,6 +65,45 @@ petFailureString: petting-failure-engineer-cyborg +# Secutity borg +- type: borgType + id: security + + # Description + dummyPrototype: BorgChassisSec + + # Functional + extraModuleCount: 2 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleSec + + defaultModules: + - BorgModuleNeutralization + + radioChannels: + - Security + - Science + + addComponents: + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + - type: FlashImmunity + + # Visual + inventoryTemplateId: borgTall + spriteBodyState: sec + spriteHasMindState: sec_e + spriteNoMindState: sec_e_r + spriteToggleLightState: sec_l + + # Pet + petSuccessString: petting-success-security-cyborg + petFailureString: petting-failure-security-cyborg + + # Salvage borg - type: borgType id: mining diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 6112f93c164..5884eb3f8a6 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -99,6 +99,9 @@ - type: Tag id: BorgModuleCargo +- type: Tag + id: BorgModuleSec + - type: Tag id: BorgModuleEngineering diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json index 68fbf1985e7..4efc876148a 100644 --- a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json +++ b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json @@ -314,6 +314,22 @@ { "name": "synd_engi_l", "directions": 4 + }, + { + "name": "sec", + "directions": 4 + }, + { + "name": "sec_e", + "directions": 4 + }, + { + "name": "sec_l", + "directions": 4 + }, + { + "name": "sec_e_r", + "directions": 4 } ] diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/sec.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec.png new file mode 100644 index 00000000000..de3c81f283c Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_e.png new file mode 100644 index 00000000000..2e8735270e3 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_e_r.png new file mode 100644 index 00000000000..d11d854ea87 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_l.png new file mode 100644 index 00000000000..b3ca7026f5e Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/sec_l.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-lecter.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-lecter.png new file mode 100644 index 00000000000..3317f2e3576 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-lecter.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-neutralization-adv.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-neutralization-adv.png new file mode 100644 index 00000000000..5ac2e4f6c84 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-neutralization-adv.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-neutralization.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-neutralization.png new file mode 100644 index 00000000000..c0015dcf1c3 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-neutralization.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-security-supportive.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-security-supportive.png new file mode 100644 index 00000000000..4e756ad33d5 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-security-supportive.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json index 644a78b47d8..4b59ffb1828 100644 --- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json @@ -132,6 +132,18 @@ }, { "name": "syndicate" + }, + { + "name": "icon-lecter" + }, + { + "name": "icon-neutralization" + }, + { + "name": "icon-security-supportive" + }, + { + "name": "icon-neutralization-adv" } ] } diff --git a/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/meta.json new file mode 100644 index 00000000000..cbe7adbc0a3 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by ASTRALIX (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "security-lecter-module" + }, + { + "name": "security-neutralization-module" + }, + { + "name": "security-support-module" + }, + { + "name": "security-neutralization-adv-module" + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-lecter-module.png b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-lecter-module.png new file mode 100644 index 00000000000..1d48264d037 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-lecter-module.png differ diff --git a/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-neutralization-adv-module.png b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-neutralization-adv-module.png new file mode 100644 index 00000000000..ba2a1e7d023 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-neutralization-adv-module.png differ diff --git a/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-neutralization-module.png b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-neutralization-module.png new file mode 100644 index 00000000000..4fbb4b3b6a9 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-neutralization-module.png differ diff --git a/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-support-module.png b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-support-module.png new file mode 100644 index 00000000000..3bff97ca902 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Interface/Actions/actions_borg.rsi/security-support-module.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/icon.png b/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/icon.png new file mode 100644 index 00000000000..e8db956af6d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/icon.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/meta.json new file mode 100644 index 00000000000..b67eed785b1 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "created by ASTRALIX (discord)", + "states": [ + { + "name": "scanner", + "directions": 1, + "delays": [ + [ + 0.4, + 0.4 + ] + ] + }, + { + "name": "icon", + "directions": 1 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/scanner.png b/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/scanner.png new file mode 100644 index 00000000000..6b54e0bb9dc Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Tools/hand_held_criminal_records.rsi/scanner.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/double_stunbaton_off.png b/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/double_stunbaton_off.png new file mode 100644 index 00000000000..1dec1e747b2 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/double_stunbaton_off.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/double_stunbaton_on.png b/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/double_stunbaton_on.png new file mode 100644 index 00000000000..3ccbc330836 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/double_stunbaton_on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/meta.json new file mode 100644 index 00000000000..38bdcc211b9 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Weapons/Melee/double_stunbaton.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by ASTRALIX (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "double_stunbaton_off" + }, + { + "name": "double_stunbaton_on", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +}