From 21a1d099a934a26624242de5f9d50bd8fc256046 Mon Sep 17 00:00:00 2001 From: modern-nm <87994977+modern-nm@users.noreply.github.com> Date: Thu, 21 Dec 2023 08:39:28 +0300 Subject: [PATCH 1/5] IntrinsicRadioKeySystem --- .../Radio/IntrinsicRadioKeySystem.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Content.Server/SimpleStation14/Radio/IntrinsicRadioKeySystem.cs diff --git a/Content.Server/SimpleStation14/Radio/IntrinsicRadioKeySystem.cs b/Content.Server/SimpleStation14/Radio/IntrinsicRadioKeySystem.cs new file mode 100644 index 00000000000..32dad9f0785 --- /dev/null +++ b/Content.Server/SimpleStation14/Radio/IntrinsicRadioKeySystem.cs @@ -0,0 +1,32 @@ +using Content.Server.Radio.Components; +using Content.Shared.Radio; +using Content.Shared.Radio.Components; + +namespace Content.Server.SimpleStation14.Radio; + +public sealed class IntrinsicRadioKeySystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnTransmitterChannelsChanged); + SubscribeLocalEvent(OnReceiverChannelsChanged); + } + + private void OnTransmitterChannelsChanged(EntityUid uid, IntrinsicRadioTransmitterComponent component, EncryptionChannelsChangedEvent args) + { + UpdateChannels(uid, args.Component, ref component.Channels); + } + + private void OnReceiverChannelsChanged(EntityUid uid, ActiveRadioComponent component, EncryptionChannelsChangedEvent args) + { + UpdateChannels(uid, args.Component, ref component.Channels); + } + + private void UpdateChannels(EntityUid _, EncryptionKeyHolderComponent keyHolderComp, ref HashSet channels) + { + channels.Clear(); + channels.UnionWith(keyHolderComp.Channels); + } +} From 9beffb1d83bdcc3fc71396b2693ac35c4e6c2d78 Mon Sep 17 00:00:00 2001 From: modern-nm <87994977+modern-nm@users.noreply.github.com> Date: Fri, 22 Dec 2023 01:22:03 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20Sili?= =?UTF-8?q?conChargerIndustrial=20=D0=BF=D1=80=D0=B8=20=D1=83=D0=BD=D0=B8?= =?UTF-8?q?=D1=87=D1=82=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=20?= =?UTF-8?q?=D0=B2=D0=BD=D1=83=D1=82=D1=80=D0=B8=20=D1=81=D0=B5=D0=B1=D1=8F?= =?UTF-8?q?=20=D1=81=D1=83=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/Structures/Machines/silicon_chargers.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/SimpleStation14/Entities/Structures/Machines/silicon_chargers.yml b/Resources/Prototypes/SimpleStation14/Entities/Structures/Machines/silicon_chargers.yml index 13bd733aa4b..1349f86c3eb 100644 --- a/Resources/Prototypes/SimpleStation14/Entities/Structures/Machines/silicon_chargers.yml +++ b/Resources/Prototypes/SimpleStation14/Entities/Structures/Machines/silicon_chargers.yml @@ -79,6 +79,7 @@ !type:DamageTrigger damage: 350 behaviors: + - !type:EmptyAllContainersBehaviour - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior From d38437b74fc74ecb82ab88123180a361df579bd0 Mon Sep 17 00:00:00 2001 From: modern-nm <87994977+modern-nm@users.noreply.github.com> Date: Fri, 22 Dec 2023 02:30:49 +0300 Subject: [PATCH 3/5] ipc locale --- .../SimpleStation14/Content/Silicons/siliconChargers.ftl | 8 ++++---- .../prototypes/entities/mobs/Player/ipc.ftl | 3 +-- .../entities/structures/machines/silicon_chargers.ftl | 5 +++++ .../SimpleStation14/Entities/Mobs/Player/ipc.yml | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/structures/machines/silicon_chargers.ftl diff --git a/Resources/Locale/ru-RU/SimpleStation14/Content/Silicons/siliconChargers.ftl b/Resources/Locale/ru-RU/SimpleStation14/Content/Silicons/siliconChargers.ftl index df6c66346c4..5cabcf6e635 100644 --- a/Resources/Locale/ru-RU/SimpleStation14/Content/Silicons/siliconChargers.ftl +++ b/Resources/Locale/ru-RU/SimpleStation14/Content/Silicons/siliconChargers.ftl @@ -1,5 +1,5 @@ -silicon-charger-overheatwarning = You feel like you're in a microwave! -silicon-charger-chargerate-string = Charge rate -silicon-charger-efficiency-string = Efficiency +silicon-charger-overheatwarning = Вы чувствуете, будто вы в микроволновке! +silicon-charger-chargerate-string = Скорость зарядки +silicon-charger-efficiency-string = Эффективность -silicon-charger-list-full = {CAPITALIZE(THE($charger))} can only accommodate so many targets! +silicon-charger-list-full = {CAPITALIZE($charger)} может вместить только такое количество целей! diff --git a/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/mobs/Player/ipc.ftl b/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/mobs/Player/ipc.ftl index ecc104536e4..1cd41f8aa3c 100644 --- a/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/mobs/Player/ipc.ftl +++ b/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/mobs/Player/ipc.ftl @@ -1,5 +1,4 @@ -ent-MobIpc = Урист МакПозитроник - .desc = Позитронный мозг в металлическом теле. +ent-MobIPC = Урист МакПозитроник ent-MobIPCDummy = Урист МакПозитроник .desc = Манекен позитронного мозга в металлическом теле. diff --git a/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/structures/machines/silicon_chargers.ftl b/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/structures/machines/silicon_chargers.ftl new file mode 100644 index 00000000000..efbcd90c817 --- /dev/null +++ b/Resources/Locale/ru-RU/SimpleStation14/prototypes/entities/structures/machines/silicon_chargers.ftl @@ -0,0 +1,5 @@ +ent-SiliconChargerIndustrial = промышленное зарядное устройство + .desc = Мощная машина для индуктивной зарядки роботизированных существ. Она очень сильно нагревается! + +ent-IndustrialChargerCircuitboard = плата промышленного зарядного устройства + .desc = Машинная печатная плата для промышленного зарядного устройства diff --git a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml index cf5eceb810d..85e20ba66c6 100644 --- a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml +++ b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml @@ -2,13 +2,13 @@ id: MobIPC parent: PlayerSiliconHumanoidBase name: Urist McPositronic - description: A positronic brain in a metal body. + #description: [mob_ipc-desc] components: - type: SiliconEmitSoundOnDrained sound: "/Audio/Weapons/Guns/EmptyAlarm/smg_empty_alarm.ogg" interval: 15 playChance: 1 - popUp: "silicon-power-low" + popUp: silicon-power-low - type: MobState allowedStates: - Alive From 98755f020c1f0f5cb981801c55ea79a63881d6ae Mon Sep 17 00:00:00 2001 From: modern-nm <87994977+modern-nm@users.noreply.github.com> Date: Sat, 23 Dec 2023 08:33:10 +0300 Subject: [PATCH 4/5] IPC repair mechanics changed. some ipc-naming problems have fixed --- .../Entities/Objects/Tools/cable_coils.yml | 13 +++++ .../SimpleStation14/Damage/containers.yml | 2 +- .../Entities/Mobs/Player/ipc.yml | 12 ++--- .../Entities/Mobs/Player/silicon_base.yml | 50 +++++++++++-------- 4 files changed, 49 insertions(+), 28 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml index b090b384470..962714836fe 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml @@ -26,6 +26,19 @@ price: 0 - type: StackPrice price: 1 + - type: Healing # ADT ipc. cables can be used to heal IPC + damageContainers: + - ADTSiliconDamageContainer + damage: + types: + Heat: -5 + Cold: -5 + Shock: -5 + Caustic: -5 + # healingBeginSound: + # path: "/Audio/Items/Medical/ointment_begin.ogg" + # healingEndSound: + # path: "/Audio/Items/Medical/ointment_end.ogg" - type: entity id: CableHVStack diff --git a/Resources/Prototypes/SimpleStation14/Damage/containers.yml b/Resources/Prototypes/SimpleStation14/Damage/containers.yml index f384312eb96..64e5609bd65 100644 --- a/Resources/Prototypes/SimpleStation14/Damage/containers.yml +++ b/Resources/Prototypes/SimpleStation14/Damage/containers.yml @@ -10,7 +10,7 @@ # - Bloodloss - type: damageContainer - id: ADTSilicon + id: ADTSiliconDamageContainer supportedGroups: - Brute - Burn diff --git a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml index 85e20ba66c6..05fa1cd422f 100644 --- a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml +++ b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/ipc.yml @@ -27,12 +27,12 @@ proto: robot - type: Destructible thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Blunt - damage: 400 - behaviors: - - !type:GibBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 400 + behaviors: + - !type:GibBehavior { } - type: SlowOnDamage speedModifierThresholds: 60: 0.7 diff --git a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml index fd95401e891..8f448b5fab8 100644 --- a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml +++ b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml @@ -1,7 +1,7 @@ - type: entity save: false abstract: true - id: PlayerSiliconBase1 # For player controlled silicons + id: ADTPlayerSiliconBase # For player controlled silicons components: - type: Reactive groups: @@ -98,7 +98,7 @@ thermalRegulationTemperatureThreshold: 125 - type: entity - parent: PlayerSiliconBase1 + parent: ADTPlayerSiliconBase id: PlayerSiliconHumanoidBase abstract: true components: @@ -111,7 +111,7 @@ 0: Alive 165: Dead - type: Damageable - damageContainer: ADTSilicon # Not a wall. + damageContainer: ADTSiliconDamageContainer # Not a wall. - type: Stamina critThreshold: 200 - type: Destructible @@ -182,24 +182,32 @@ state: "creampie_human" visible: false - type: Repairable - fuelcost: 60 - doAfterDelay: 18 - # - type: Bloodstream ### Кровь отключена - # damageBleedModifiers: BloodlossIPC - # bloodReagent: Water - # bleedReductionAmount: 0 - # bloodMaxVolume: 500 - # chemicalMaxVolume: 0 - # bleedPuddleThreshold: 3 - # bleedRefreshAmount: 0 - # bloodLossThreshold: 0 - # maxBleedAmount: 14 - # bloodlossDamage: - # types: - # Burn: 1.5 - # bloodlossHealDamage: - # types: - # Burn: 0 + #fuelcost: 60 + doAfterDelay: 10 # was 18 + damage: + types: + Blunt: -20 + Slash: -20 + Piercing: -20 + #bloodlossModifier: -100 + - type: Bloodstream ### я добавил компонент Bloodstream как заглушку. Он нужен, +# чтобы хилиться с помощью CableStack. Дело в том, что HealingSystem использует проверку на наличие BloodstreamComponent. +# В любом случае Bloodstream здесь является костылём, чтобы не лезть в код. В будущем можно зделать для IPC нормальную bloodstream систему. + damageBleedModifiers: BloodlossIPC + bloodReagent: Water + bleedReductionAmount: 0 + bloodMaxVolume: 0 + chemicalMaxVolume: 0 + bleedPuddleThreshold: 3 + bleedRefreshAmount: 0 + bloodLossThreshold: 0 + maxBleedAmount: 0 + bloodlossDamage: + types: + Burn: 1.5 + bloodlossHealDamage: + types: + Burn: 0 - type: Flammable fireSpread: true canResistFire: true From 1b97fd88b12195cbf6525df5500d073bf7ffe6e2 Mon Sep 17 00:00:00 2001 From: modern-nm <87994977+modern-nm@users.noreply.github.com> Date: Sat, 23 Dec 2023 11:03:56 +0300 Subject: [PATCH 5/5] IPC density changed. Now IPCs can disarm other humanoids with correct chance. --- .../SimpleStation14/Entities/Mobs/Player/silicon_base.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml index 8f448b5fab8..6e96c866866 100644 --- a/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml +++ b/Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/silicon_base.yml @@ -37,7 +37,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 50 + density: 185 ### влияет на шанс Disarm. было 50 mask: - MobMask layer: