From a419b0c2f2bc41fa119fd4e7e80009c1cb971005 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Fri, 11 Oct 2024 06:54:12 +0300 Subject: [PATCH 01/10] =?UTF-8?q?[Tweak]=20Dwarf's=20Weight=20/=20=D0=92?= =?UTF-8?q?=D0=B5=D1=81=20=D0=94=D0=B2=D0=B0=D1=80=D1=84=D0=BE=D0=B2=20(#8?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: dwarf are heavier now --- Resources/Prototypes/Entities/Mobs/Species/dwarf.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml index 1de9f89ce8..a48809f1a7 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml @@ -35,8 +35,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - # they r smaller - density: 120 + density: 240 # WD EDIT restitution: 0.0 mask: - MobMask From 71db6a2ca159f590344deb87c2697b1cba17c974 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Fri, 11 Oct 2024 03:54:39 +0000 Subject: [PATCH 02/10] Automatic Changelog Update (#83) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 08e58360fa..9f939d84fb 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6502,3 +6502,10 @@ Entries: id: 6360 time: '2024-09-29T12:15:14.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/68 +- author: Spatison + changes: + - type: Tweak + message: Dwarf now weigh more / Дварфы теперь весят больше + id: 6361 + time: '2024-10-11T03:54:12.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/83 From d3be10ea18c6202bfdc0ae56f243f548dec5ac91 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Fri, 11 Oct 2024 06:55:38 +0300 Subject: [PATCH 03/10] =?UTF-8?q?[Fix]=20No=20Discounts=20In=20Uplink=20Im?= =?UTF-8?q?plant=20/=20=D0=9D=D0=B8=D0=BA=D0=B0=D0=BA=D0=B8=D1=85=20=D0=A1?= =?UTF-8?q?=D0=BA=D0=B8=D0=B4=D0=BE=D0=BA=20=D0=92=20=D0=98=D0=BC=D0=BF?= =?UTF-8?q?=D0=BB=D0=B0=D0=BD=D1=82=D0=B5=20=D0=90=D0=BF=D0=BB=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D0=B0=20(#81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: uplink-implant --- .../Objects/Misc/subdermal_implants.yml | 2 +- Resources/Prototypes/_White/Store/presets.yml | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/_White/Store/presets.yml diff --git a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml index 2336945f17..8434bf6484 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml @@ -155,7 +155,7 @@ components: - Hands # prevent mouse buying grenade penguin since its not telepathic - type: Store - preset: StorePresetUplink + preset: StorePresetUplinkNoDiscounts balance: Telecrystal: 0 - type: UserInterface diff --git a/Resources/Prototypes/_White/Store/presets.yml b/Resources/Prototypes/_White/Store/presets.yml new file mode 100644 index 0000000000..52f51076f9 --- /dev/null +++ b/Resources/Prototypes/_White/Store/presets.yml @@ -0,0 +1,17 @@ +- type: storePreset + id: StorePresetUplinkNoDiscounts + storeName: Uplink + categories: + - UplinkWeapons + - UplinkAmmo + - UplinkExplosives + - UplinkMisc + - UplinkBundles + - UplinkTools + - UplinkUtility + - UplinkImplants + - UplinkJob + - UplinkArmor + - UplinkPointless + currencyWhitelist: + - Telecrystal From dc5ff89a5b9d4f81d1211398f39ad3c9bab4481e Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Fri, 11 Oct 2024 03:56:04 +0000 Subject: [PATCH 04/10] Automatic Changelog Update (#81) --- Resources/Changelog/Changelog.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9f939d84fb..b02e9ac261 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6509,3 +6509,12 @@ Entries: id: 6361 time: '2024-10-11T03:54:12.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/83 +- author: Spatison + changes: + - type: Fix + message: >- + No more discounts in uplink implant / Больше никаких скидок в имплант + аплинка + id: 6362 + time: '2024-10-11T03:55:38.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/81 From 91a2f2a384194e636e959e43dcd65b200c23b491 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Fri, 11 Oct 2024 07:07:40 +0300 Subject: [PATCH 05/10] =?UTF-8?q?[Port]=20Smoke=20Implant=20/=20=D0=98?= =?UTF-8?q?=D0=BC=D0=BF=D0=BB=D0=B0=D0=BD=D1=82=20=D0=94=D1=8B=D0=BC=D0=B0?= =?UTF-8?q?=20(#79)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add: smoke implant --- .../Locale/en-US/_white/store/uplink-catalog.ftl | 3 +++ .../ru-RU/_white/prototypes/actions/types.ftl | 2 ++ .../entities/objects/misc/implanters.ftl | 2 ++ .../entities/objects/misc/subdermal_implants.ftl | 2 ++ .../Locale/ru-RU/_white/store/uplink-catalog.ftl | 3 +++ Resources/Prototypes/_White/Actions/types.yml | 14 ++++++++++++++ .../Prototypes/_White/Catalog/uplink_catalog.yml | 13 ++++++++++++- .../_White/Entities/Objects/Misc/implanters.yml | 7 +++++++ .../Entities/Objects/Misc/subdermal_implants.yml | 15 +++++++++++++++ 9 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 Resources/Locale/ru-RU/_white/prototypes/actions/types.ftl create mode 100644 Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl create mode 100644 Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl create mode 100644 Resources/Prototypes/_White/Actions/types.yml create mode 100644 Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml create mode 100644 Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml diff --git a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl index f80d022535..812ec6ac29 100644 --- a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl @@ -9,3 +9,6 @@ uplink-betrayal-knife-desc = Syndicate teleporter, when used, moves 3-8 meters f uplink-ebow-name = Small energy crossbow uplink-ebow-desc = A fairly quiet weapon that automatically reloads and stuns. It goes well with other types of weapons. + +uplink-smoke-implant-name = Smoke implant +uplink-smoke-implant-desc = Releases a cloud of smoke when activated. diff --git a/Resources/Locale/ru-RU/_white/prototypes/actions/types.ftl b/Resources/Locale/ru-RU/_white/prototypes/actions/types.ftl new file mode 100644 index 0000000000..144adc7844 --- /dev/null +++ b/Resources/Locale/ru-RU/_white/prototypes/actions/types.ftl @@ -0,0 +1,2 @@ +ent-ActivateSmokeImplant = Выпустить облако дыма + .desc = Выпускает облако дыма вокруг вас. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl new file mode 100644 index 0000000000..94e3a43ed8 --- /dev/null +++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl @@ -0,0 +1,2 @@ +ent-SmokeImplanter = { ent-BaseImplanter } + .desc = { ent-BaseImplanter.desc } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl new file mode 100644 index 0000000000..4ebb6a8da3 --- /dev/null +++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl @@ -0,0 +1,2 @@ +ent-SmokeImplant = имплант дыма + .desc = Этот имплант выпускает облако дыма при активации. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl index 8d58a4bc17..ca8bca26b4 100644 --- a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl @@ -9,3 +9,6 @@ uplink-experimental-syndicate-teleporter-desc = Телепортер синди uplink-ebow-name = Маленький энергетический арбалет uplink-ebow-desc = Довольно тихое оружие, которое автоматически перезаряжается и оглушает. Хорошо сочетается с другими видами оружия. + +uplink-smoke-implant-name = Имплант дыма +uplink-smoke-implant-desc = Выпускает облако дыма при активации. \ No newline at end of file diff --git a/Resources/Prototypes/_White/Actions/types.yml b/Resources/Prototypes/_White/Actions/types.yml new file mode 100644 index 0000000000..065c35a5ea --- /dev/null +++ b/Resources/Prototypes/_White/Actions/types.yml @@ -0,0 +1,14 @@ +- type: entity + id: ActivateSmokeImplant + name: Release a cloud of smoke + description: Releases a cloud of smoke around you. + noSpawn: true + components: + - type: InstantAction + useDelay: 20 + itemIconStyle: BigAction + priority: -20 + icon: + sprite: Objects/Weapons/Grenades/smoke.rsi + state: icon + event: !type:ActivateImplantEvent diff --git a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml index c58efd96c6..6909cf513f 100644 --- a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml @@ -50,4 +50,15 @@ blacklist: tags: - NukeOpsUplink - saleLimit: 1 \ No newline at end of file + saleLimit: 1 + +- type: listing + id: UplinkSmokeImplanter + name: uplink-smoke-implant-name + description: uplink-smoke-implant-desc + icon: { sprite: /Textures/Objects/Weapons/Grenades/smoke.rsi, state: icon } + productEntity: SmokeImplanter + cost: + Telecrystal: 2 + categories: + - UplinkImplants \ No newline at end of file diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml new file mode 100644 index 0000000000..79e66eaa3e --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml @@ -0,0 +1,7 @@ +- type: entity + parent: BaseImplantOnlyImplanterSyndi + id: SmokeImplanter + suffix: smoke + components: + - type: Implanter + implant: SmokeImplant \ No newline at end of file diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml new file mode 100644 index 0000000000..9813f190a4 --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml @@ -0,0 +1,15 @@ +- type: entity + parent: BaseSubdermalImplant + id: SmokeImplant + name: smoke implant + description: This implant releases smoke cloud on activation. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActivateSmokeImplant + - type: TriggerImplantAction + - type: SmokeOnTrigger + spreadAmount: 25 + duration: 15 + - type: SoundOnTrigger + sound: /Audio/Effects/smoke.ogg \ No newline at end of file From 574de10687d31ae732b31572991ca86d0beef7e4 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Fri, 11 Oct 2024 04:08:04 +0000 Subject: [PATCH 06/10] Automatic Changelog Update (#79) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index b02e9ac261..7bc901f6f5 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6518,3 +6518,10 @@ Entries: id: 6362 time: '2024-10-11T03:55:38.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/81 +- author: Spatison + changes: + - type: Add + message: Added smoke implant / Добавлен имплант дыма + id: 6363 + time: '2024-10-11T04:07:40.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/79 From c209391027b36719d900b8e2d03866bcd1ac334f Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Fri, 11 Oct 2024 07:26:13 +0300 Subject: [PATCH 07/10] =?UTF-8?q?[Port]=20Syndicate=20Implanter=20/=20?= =?UTF-8?q?=D0=98=D0=BC=D0=BF=D0=BB=D0=B0=D0=BD=D1=82=D0=B5=D1=80=20=D0=A1?= =?UTF-8?q?=D0=B8=D0=BD=D0=B4=D0=B8=D0=BA=D0=B0=D1=82=D0=B0=20(#78)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add: syndi implanter * fix: translation --------- Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com> --- .../Locale/en-US/_white/store/uplink-catalog.ftl | 3 +++ .../entities/objects/misc/implanters.ftl | 5 ++++- .../Locale/ru-RU/_white/store/uplink-catalog.ftl | 5 ++++- .../entities/objects/misc/implanters.ftl | 2 -- .../Prototypes/_White/Catalog/uplink_catalog.yml | 12 +++++++++++- .../_White/Entities/Objects/Misc/implanters.yml | 15 ++++++++++++++- 6 files changed, 36 insertions(+), 6 deletions(-) diff --git a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl index 812ec6ac29..ab0f38d679 100644 --- a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl @@ -10,5 +10,8 @@ uplink-betrayal-knife-desc = Syndicate teleporter, when used, moves 3-8 meters f uplink-ebow-name = Small energy crossbow uplink-ebow-desc = A fairly quiet weapon that automatically reloads and stuns. It goes well with other types of weapons. +uplink-implanter-name = Implanter +uplink-implanter-desc = An advanced implant that allows you to quickly insert and remove implants. + uplink-smoke-implant-name = Smoke implant uplink-smoke-implant-desc = Releases a cloud of smoke when activated. diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl index 94e3a43ed8..ce7482cff8 100644 --- a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl +++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl @@ -1,2 +1,5 @@ +ent-ImplanterSyndi = { ent-BaseImplanter } + .desc = Компактный одноразовый шприц, предназначенный исключительно для введения и извлечения подкожных имплантатов. + ent-SmokeImplanter = { ent-BaseImplanter } - .desc = { ent-BaseImplanter.desc } \ No newline at end of file + .desc = { ent-BaseImplanter.desc } diff --git a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl index ca8bca26b4..8fa3f7b5d1 100644 --- a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl @@ -10,5 +10,8 @@ uplink-experimental-syndicate-teleporter-desc = Телепортер синди uplink-ebow-name = Маленький энергетический арбалет uplink-ebow-desc = Довольно тихое оружие, которое автоматически перезаряжается и оглушает. Хорошо сочетается с другими видами оружия. +uplink-implanter-name = Имплантер +uplink-implanter-desc = Продвинутый имплантер, позволяющий быстро вкалывать и вытаскивать импланты. + uplink-smoke-implant-name = Имплант дыма -uplink-smoke-implant-desc = Выпускает облако дыма при активации. \ No newline at end of file +uplink-smoke-implant-desc = Выпускает облако дыма при активации. diff --git a/Resources/Locale/ru-RU/prototypes/entities/objects/misc/implanters.ftl b/Resources/Locale/ru-RU/prototypes/entities/objects/misc/implanters.ftl index eb02b08eac..07672cfe3b 100644 --- a/Resources/Locale/ru-RU/prototypes/entities/objects/misc/implanters.ftl +++ b/Resources/Locale/ru-RU/prototypes/entities/objects/misc/implanters.ftl @@ -52,5 +52,3 @@ ent-DeathAcidifierImplanter = { ent-BaseImplanter } ent-ImplanterAdmeme = { ent-BaseImplanter } .desc = {""} .suffix = адмемы -ent-ImplanterSyndi = { ent-BaseImplanter } - .desc = { ent-BaseImplanter.desc } diff --git a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml index 6909cf513f..e29cf97d5c 100644 --- a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml @@ -52,6 +52,16 @@ - NukeOpsUplink saleLimit: 1 +- type: listing + id: UplinkImplanterSyndi + name: uplink-implanter-name + description: uplink-implanter-desc + productEntity: ImplanterSyndi + cost: + Telecrystal: 1 + categories: + - UplinkImplants + - type: listing id: UplinkSmokeImplanter name: uplink-smoke-implant-name @@ -61,4 +71,4 @@ cost: Telecrystal: 2 categories: - - UplinkImplants \ No newline at end of file + - UplinkImplants diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml index 79e66eaa3e..99c0e1aa96 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml @@ -1,7 +1,20 @@ +- type: entity + parent: Implanter + id: ImplanterSyndi + description: A compact disposable syringe exclusively designed for the quick injection and extraction of subdermal implants. + components: + - type: Item + sprite: Objects/Specific/Medical/syndi_implanter.rsi + - type: Sprite + sprite: Objects/Specific/Medical/syndi_implanter.rsi + - type: Implanter + drawTime: 2 + implantTime: 2 + - type: entity parent: BaseImplantOnlyImplanterSyndi id: SmokeImplanter suffix: smoke components: - type: Implanter - implant: SmokeImplant \ No newline at end of file + implant: SmokeImplant From 6d5d0d9fd4e8a2f228daaf0f2f056f1d4fe40a16 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Fri, 11 Oct 2024 04:26:37 +0000 Subject: [PATCH 08/10] Automatic Changelog Update (#78) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 7bc901f6f5..47ce0c3ca2 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6525,3 +6525,10 @@ Entries: id: 6363 time: '2024-10-11T04:07:40.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/79 +- author: Spatison + changes: + - type: Add + message: Added syndicate implanter / Добавлен имплантер синдиката + id: 6364 + time: '2024-10-11T04:26:13.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/78 From 215997e2e26c7cb545f7b119428f0b16e7fc7ebe Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Fri, 11 Oct 2024 08:03:32 +0300 Subject: [PATCH 09/10] =?UTF-8?q?[Port=20|=20Tweak]=20Neuro=20Stabilizatio?= =?UTF-8?q?n=20Implant=20/=20=D0=98=D0=BC=D0=BF=D0=BB=D0=B0=D0=BD=D1=82=20?= =?UTF-8?q?=D0=9D=D0=B5=D0=B9=D1=80=D0=BE=20=D0=A1=D1=82=D0=B0=D0=B1=D0=B8?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20(#80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add: neuro stabilizer implant * Stabilization\ * AI rewiew * fix: translation --------- Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com> --- .../SubdermalBionicSyrinxImplantSystem.cs | 15 ++-- Content.Server/Mindshield/MindShieldSystem.cs | 64 ---------------- .../_White/Implants/ImplantsSystem.cs | 76 +++++++++++++++++++ .../Implants/SharedImplanterSystem.cs | 32 ++++++++ .../Implants/SharedSubdermalImplantSystem.cs | 25 +----- .../NeuroStabilizerComponent.cs | 14 ++++ .../NeuroStabilizerSystem.cs | 28 +++++++ .../en-US/_white/store/uplink-catalog.ftl | 3 + .../_white/implants/neurostabilization.ftl | 5 -- .../entities/objects/misc/implanters.ftl | 4 + .../objects/misc/subdermal_implants.ftl | 5 +- .../ru-RU/_white/store/uplink-catalog.ftl | 3 + .../Objects/Misc/subdermal_implants.yml | 1 - .../_White/Catalog/uplink_catalog.yml | 13 +++- .../Entities/Objects/Misc/implanters.yml | 8 ++ .../Objects/Misc/subdermal_implants.yml | 14 +++- Resources/Prototypes/_White/tags.yml | 5 +- 17 files changed, 210 insertions(+), 105 deletions(-) delete mode 100644 Content.Server/Mindshield/MindShieldSystem.cs create mode 100644 Content.Server/_White/Implants/ImplantsSystem.cs create mode 100644 Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerComponent.cs create mode 100644 Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerSystem.cs delete mode 100644 Resources/Locale/ru-RU/_white/implants/neurostabilization.ftl diff --git a/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs b/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs index 30a894a2d1..96adfc2ab2 100644 --- a/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs +++ b/Content.Server/DeltaV/Implants/SubdermalBionicSyrinxImplantSystem.cs @@ -29,7 +29,7 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnInsert); + SubscribeLocalEvent(OnInsert); // WD EDIT SubscribeLocalEvent(OnSpeakerNameTransform); SubscribeLocalEvent(OnChangeName); // We need to remove the SyrinxVoiceMaskComponent from the owner before the implant @@ -37,16 +37,17 @@ public override void Initialize() SubscribeLocalEvent(OnRemove, before: new[] { typeof(SubdermalImplantSystem) }); } - private void OnInsert(EntityUid uid, VoiceMaskerComponent component, ImplantImplantedEvent args) + // WD EDIT START + private void OnInsert(EntityUid uid, VoiceMaskerComponent component, SubdermalImplantInserted args) { - if (!args.Implanted.HasValue || - !_tag.HasTag(args.Implant, BionicSyrinxImplant)) + if (_tag.HasTag(uid, BionicSyrinxImplant)) return; - var voicemask = EnsureComp(args.Implanted.Value); - voicemask.VoiceName = MetaData(args.Implanted.Value).EntityName; - Dirty(args.Implanted.Value, voicemask); + var voicemask = EnsureComp(args.Target); + voicemask.VoiceName = MetaData(args.Target).EntityName; + Dirty(args.Target, voicemask); } + // WD EDIT END private void OnRemove(EntityUid uid, VoiceMaskerComponent component, EntGotRemovedFromContainerMessage args) { diff --git a/Content.Server/Mindshield/MindShieldSystem.cs b/Content.Server/Mindshield/MindShieldSystem.cs deleted file mode 100644 index bfca6c008e..0000000000 --- a/Content.Server/Mindshield/MindShieldSystem.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Content.Server.Administration.Logs; -using Content.Server.Mind; -using Content.Server.Popups; -using Content.Server.Roles; -using Content.Shared.Database; -using Content.Shared.Implants; -using Content.Shared.Implants.Components; -using Content.Shared.Mindshield.Components; -using Content.Shared.Revolutionary.Components; -using Content.Shared.Tag; - -namespace Content.Server.Mindshield; - -/// -/// System used for checking if the implanted is a Rev or Head Rev. -/// -public sealed class MindShieldSystem : EntitySystem -{ - [Dependency] private readonly IAdminLogManager _adminLogManager = default!; - [Dependency] private readonly RoleSystem _roleSystem = default!; - [Dependency] private readonly MindSystem _mindSystem = default!; - [Dependency] private readonly TagSystem _tag = default!; - [Dependency] private readonly PopupSystem _popupSystem = default!; - - [ValidatePrototypeId] - public const string MindShieldTag = "MindShield"; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(ImplantCheck); - } - - /// - /// Checks if the implant was a mindshield or not - /// - public void ImplantCheck(EntityUid uid, SubdermalImplantComponent comp, ref ImplantImplantedEvent ev) - { - if (_tag.HasTag(ev.Implant, MindShieldTag) && ev.Implanted != null) - { - EnsureComp(ev.Implanted.Value); - MindShieldRemovalCheck(ev.Implanted.Value, ev.Implant); - } - } - - /// - /// Checks if the implanted person was a Rev or Head Rev and remove role or destroy mindshield respectively. - /// - public void MindShieldRemovalCheck(EntityUid implanted, EntityUid implant) - { - if (HasComp(implanted)) - { - _popupSystem.PopupEntity(Loc.GetString("head-rev-break-mindshield"), implanted); - QueueDel(implant); - return; - } - - if (_mindSystem.TryGetMind(implanted, out var mindId, out _) && - _roleSystem.MindTryRemoveRole(mindId)) - { - _adminLogManager.Add(LogType.Mind, LogImpact.Medium, $"{ToPrettyString(implanted)} was deconverted due to being implanted with a Mindshield."); - } - } -} diff --git a/Content.Server/_White/Implants/ImplantsSystem.cs b/Content.Server/_White/Implants/ImplantsSystem.cs new file mode 100644 index 0000000000..81123097c4 --- /dev/null +++ b/Content.Server/_White/Implants/ImplantsSystem.cs @@ -0,0 +1,76 @@ +using Content.Server.Administration.Logs; +using Content.Server.Mind; +using Content.Server.Popups; +using Content.Server.Roles; +using Content.Shared._White.Implants.NeuroStabilization; +using Content.Shared.Database; +using Content.Shared.Implants; +using Content.Shared.Implants.Components; +using Content.Shared.Mindshield.Components; +using Content.Shared.Revolutionary.Components; +using Content.Shared.Tag; + +namespace Content.Server._White.Implants; + +public sealed class ImplantsSystem : EntitySystem +{ + [Dependency] private readonly IAdminLogManager _adminLogManager = default!; + [Dependency] private readonly RoleSystem _roleSystem = default!; + [Dependency] private readonly MindSystem _mindSystem = default!; + [Dependency] private readonly TagSystem _tag = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + + [ValidatePrototypeId] + private const string MindShieldTag = "MindShield"; + + [ValidatePrototypeId] + private const string NeuroStabilizationTag = "NeuroStabilization"; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnImplantInserted); + SubscribeLocalEvent(OnImplantRemoved); + } + + private void OnImplantInserted(EntityUid uid, SubdermalImplantComponent component, SubdermalImplantInserted args) + { + if (_tag.HasTag(uid, MindShieldTag) + && RevolutionCheck(uid, args.Target)) + EnsureComp(args.Target); + + if (_tag.HasTag(uid, NeuroStabilizationTag)) + EnsureComp(args.Target); + } + + private void OnImplantRemoved(EntityUid uid, SubdermalImplantComponent component, SubdermalImplantRemoved args) + { + if (_tag.HasTag(uid, MindShieldTag)) + RemComp(args.Target); + + if (_tag.HasTag(uid, NeuroStabilizationTag)) + RemComp(args.Target); + } + + /// + /// Checks if the implanted person was a Rev or Head Rev and remove role or destroy mindshield respectively. + /// + private bool RevolutionCheck(EntityUid uid, EntityUid target) + { + if (HasComp(target)) + { + _popupSystem.PopupEntity(Loc.GetString("head-rev-break-mindshield"), target); + QueueDel(uid); + return false; + } + + if (_mindSystem.TryGetMind(target, out var mindId, out _) + && _roleSystem.MindTryRemoveRole(mindId)) + { + _adminLogManager.Add(LogType.Mind, LogImpact.Medium, + $"{ToPrettyString(target)} was deconverted due to being implanted with a Mindshield."); + } + + return true; + } +} diff --git a/Content.Shared/Implants/SharedImplanterSystem.cs b/Content.Shared/Implants/SharedImplanterSystem.cs index 36a31bac1d..dce599ef15 100644 --- a/Content.Shared/Implants/SharedImplanterSystem.cs +++ b/Content.Shared/Implants/SharedImplanterSystem.cs @@ -69,6 +69,8 @@ public void Implant(EntityUid user, EntityUid target, EntityUid implanter, Impla implantContainer.OccludesLight = false; _container.Insert(implant.Value, implantContainer); + RaiseLocalEvent(implant.Value, new SubdermalImplantInserted(user, target)); // WD EDIT + if (component.CurrentMode == ImplanterToggleMode.Inject && !component.ImplantOnly) DrawMode(implanter, component); else @@ -146,6 +148,8 @@ public void Draw(EntityUid implanter, EntityUid user, EntityUid target, Implante _container.Insert(implant, implanterContainer); permanentFound = implantComp.Permanent; + RaiseLocalEvent(implant, new SubdermalImplantRemoved(user, target)); // WD EDIT + var ev = new TransferDnaEvent { Donor = target, Recipient = implanter }; RaiseLocalEvent(target, ref ev); @@ -225,3 +229,31 @@ public AddImplantAttemptEvent(EntityUid user, EntityUid target, EntityUid implan Implanter = implanter; } } + +// WD EDIT START +public sealed class SubdermalImplantInserted(EntityUid user, EntityUid target) +{ + /// + /// Entity who implants + /// + public EntityUid User = user; + + /// + /// Entity being implanted + /// + public EntityUid Target = target; +} + +public sealed class SubdermalImplantRemoved(EntityUid user, EntityUid target) +{ + /// + /// Entity who removes implant + /// + public EntityUid User = user; + + /// + /// Entity which implant is removing + /// + public EntityUid Target = target; +} +// WD EDIT END diff --git a/Content.Shared/Implants/SharedSubdermalImplantSystem.cs b/Content.Shared/Implants/SharedSubdermalImplantSystem.cs index 830d2270aa..0df552d8a6 100644 --- a/Content.Shared/Implants/SharedSubdermalImplantSystem.cs +++ b/Content.Shared/Implants/SharedSubdermalImplantSystem.cs @@ -53,9 +53,6 @@ private void OnInsert(EntityUid uid, SubdermalImplantComponent component, EntGot } } } - - var ev = new ImplantImplantedEvent(uid, component.ImplantedEntity.Value); - RaiseLocalEvent(uid, ref ev); } private void OnRemoveAttempt(EntityUid uid, SubdermalImplantComponent component, ContainerGettingRemovedAttemptEvent args) @@ -125,6 +122,8 @@ public void ForceImplant(EntityUid target, EntityUid implant, SubdermalImplantCo component.ImplantedEntity = target; _container.Insert(implant, implantContainer); + + RaiseLocalEvent(implant, new SubdermalImplantInserted(target, target)); // WD EDIT } /// @@ -185,23 +184,3 @@ public ImplantRelayEvent(T ev) Event = ev; } } - -/// -/// Event that is raised whenever someone is implanted with any given implant. -/// Raised on the the implant entity. -/// -/// -/// implant implant implant implant -/// -[ByRefEvent] -public readonly struct ImplantImplantedEvent -{ - public readonly EntityUid Implant; - public readonly EntityUid? Implanted; - - public ImplantImplantedEvent(EntityUid implant, EntityUid? implanted) - { - Implant = implant; - Implanted = implanted; - } -} diff --git a/Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerComponent.cs b/Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerComponent.cs new file mode 100644 index 0000000000..740f492946 --- /dev/null +++ b/Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared._White.Implants.NeuroStabilization; + +[RegisterComponent] +public sealed partial class NeuroStabilizationComponent : Component +{ + [DataField] + public bool Electrocution = true; + + [DataField] + public TimeSpan TimeElectrocution = TimeSpan.FromSeconds(1); + + [DataField] + public float DamageModifier = 0.66f; +} diff --git a/Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerSystem.cs b/Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerSystem.cs new file mode 100644 index 0000000000..c0234c71f3 --- /dev/null +++ b/Content.Shared/_White/Implants/NeuroStabilization/NeuroStabilizerSystem.cs @@ -0,0 +1,28 @@ +using Content.Shared.Electrocution; +using Content.Shared.Damage.Systems; + +namespace Content.Shared._White.Implants.NeuroStabilization; + +public sealed class NeuroStabilizationSystem : EntitySystem +{ + [Dependency] private readonly SharedElectrocutionSystem _electrocution = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(BeforeStaminaDamage); + } + + private void BeforeStaminaDamage(EntityUid uid, NeuroStabilizationComponent component, ref BeforeStaminaDamageEvent args) + { + args.Cancelled = true; + + if (!component.Electrocution) + return; + + var damage = (int) MathF.Round(args.Value * component.DamageModifier); + _electrocution.TryDoElectrocution(uid, null, damage, component.TimeElectrocution, + false, 0.5f, null, true); + } +} diff --git a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl index ab0f38d679..38e64879eb 100644 --- a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl @@ -10,6 +10,9 @@ uplink-betrayal-knife-desc = Syndicate teleporter, when used, moves 3-8 meters f uplink-ebow-name = Small energy crossbow uplink-ebow-desc = A fairly quiet weapon that automatically reloads and stuns. It goes well with other types of weapons. +uplink-neuro-control = Neuro stabilization implanter +uplink-neuro-control-desc = Blocks all of the incoming stamina damage while dealing shock damage instead. + uplink-implanter-name = Implanter uplink-implanter-desc = An advanced implant that allows you to quickly insert and remove implants. diff --git a/Resources/Locale/ru-RU/_white/implants/neurostabilization.ftl b/Resources/Locale/ru-RU/_white/implants/neurostabilization.ftl deleted file mode 100644 index d360d68476..0000000000 --- a/Resources/Locale/ru-RU/_white/implants/neurostabilization.ftl +++ /dev/null @@ -1,5 +0,0 @@ -uplink-neuro-stabilization = Имплант нейростабилизации -uplink-neuro-stabilization-desc = Блокирует весь входящий урон по выносливости, компенсируя его шоковым зарядом. - -ent-NeuroStabilizationImplant = Имплант нейростабилизации - .desc = Блокирует весь входящий урон по выносливости за счет шока. diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl index ce7482cff8..788abf0a8a 100644 --- a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl +++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/implanters.ftl @@ -1,3 +1,7 @@ +ent-NeuroStabilizationImplanter = { ent-BaseImplanter } + .desc = { ent-BaseImplanter.desc } + .suffix = нейро стабилизация + ent-ImplanterSyndi = { ent-BaseImplanter } .desc = Компактный одноразовый шприц, предназначенный исключительно для введения и извлечения подкожных имплантатов. diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl index 4ebb6a8da3..02d7d7bdf4 100644 --- a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl +++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/subdermal_implants.ftl @@ -1,2 +1,5 @@ +ent-NeuroStabilizationImplant = имплант нейро стабализации + .desc = Блокирует весь входящий урон по выносливости за счет шока. + ent-SmokeImplant = имплант дыма - .desc = Этот имплант выпускает облако дыма при активации. \ No newline at end of file + .desc = Этот имплант выпускает облако дыма при активации. diff --git a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl index 8fa3f7b5d1..0149d91986 100644 --- a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl @@ -10,6 +10,9 @@ uplink-experimental-syndicate-teleporter-desc = Телепортер синди uplink-ebow-name = Маленький энергетический арбалет uplink-ebow-desc = Довольно тихое оружие, которое автоматически перезаряжается и оглушает. Хорошо сочетается с другими видами оружия. +uplink-neuro-control = Имплант нейро стабилизации +uplink-neuro-control-desc = Блокирует весь входящий урон по выносливости, компенсируя его шоковым зарядом, наносящим урон, пропорциональный заблокированному. + uplink-implanter-name = Имплантер uplink-implanter-desc = Продвинутый имплантер, позволяющий быстро вкалывать и вытаскивать импланты. diff --git a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml index 8434bf6484..b6648b3bd4 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml @@ -322,7 +322,6 @@ noSpawn: true components: - type: SubdermalImplant - permanent: true - type: Tag tags: - MindShield diff --git a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml index e29cf97d5c..fd6b69be96 100644 --- a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml @@ -22,7 +22,6 @@ id: UplinkBetrayalKnife name: uplink-betrayal-knife-name description: uplink-betrayal-knife-desc - icon: { sprite: /Textures/_White/Objects/Weapons/Melee/Daggers/betrayal_knife.rsi, state: icon } productEntity: BetrayalKnife cost: Telecrystal: 10 @@ -39,7 +38,6 @@ id: UplinkMiniEbow name: uplink-ebow-name description: uplink-ebow-desc - icon: { sprite: /Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi, state: icon } productEntity: EnergyCrossbowMini cost: Telecrystal: 10 @@ -52,6 +50,17 @@ - NukeOpsUplink saleLimit: 1 +- type: listing + id: NeuroControlImplanter + name: uplink-neuro-control + description: uplink-neuro-control-desc + icon: { sprite: /Textures/Interface/Alerts/stamina.rsi, state: stamina5 } + productEntity: NeuroStabilizationImplanter + cost: + Telecrystal: 2 + categories: + - UplinkImplants + - type: listing id: UplinkImplanterSyndi name: uplink-implanter-name diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml index 99c0e1aa96..43d1bbd593 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/implanters.yml @@ -1,3 +1,11 @@ +- type: entity + parent: BaseImplantOnlyImplanterSyndi + id: NeuroStabilizationImplanter + suffix: neuro stabilization + components: + - type: Implanter + implant: NeuroStabilizationImplant + - type: entity parent: Implanter id: ImplanterSyndi diff --git a/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml index 9813f190a4..1a727e98ad 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Misc/subdermal_implants.yml @@ -1,3 +1,15 @@ +- type: entity + parent: BaseSubdermalImplant + id: NeuroStabilizationImplant + name: neuro stabilization implant + description: Blocks all of the incoming stamina damage at the cost of frying you nerve system a bit each time. + noSpawn: true + components: + - type: SubdermalImplant + - type: Tag + tags: + - NeuroStabilization + - type: entity parent: BaseSubdermalImplant id: SmokeImplant @@ -12,4 +24,4 @@ spreadAmount: 25 duration: 15 - type: SoundOnTrigger - sound: /Audio/Effects/smoke.ogg \ No newline at end of file + sound: /Audio/Effects/smoke.ogg diff --git a/Resources/Prototypes/_White/tags.yml b/Resources/Prototypes/_White/tags.yml index 62e70f42a9..fe2392f438 100644 --- a/Resources/Prototypes/_White/tags.yml +++ b/Resources/Prototypes/_White/tags.yml @@ -1,2 +1,5 @@ - type: Tag - id: EnergySword \ No newline at end of file + id: EnergySword + +- type: Tag + id: NeuroStabilization \ No newline at end of file From a8c9bbf3176eeede36d9c06efc358f7ae2f66089 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Fri, 11 Oct 2024 05:03:58 +0000 Subject: [PATCH 10/10] Automatic Changelog Update (#80) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 47ce0c3ca2..c311f3b3ab 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6532,3 +6532,10 @@ Entries: id: 6364 time: '2024-10-11T04:26:13.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/78 +- author: Spatison + changes: + - type: Add + message: Added neuro stabilization Implant / Добавлен имплант нейро стабильности + id: 6365 + time: '2024-10-11T05:03:33.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/80