From 254a74ab57170475735f25ca3ca6b09fda47785d Mon Sep 17 00:00:00 2001 From: gordod3 Date: Wed, 15 Jul 2026 16:43:43 +0600 Subject: [PATCH 1/8] Fixed .ftl double id issue like suit-storage and hisses --- Resources/Locale/ru-RU/_NF/chat/emotes.ftl | 1 - Resources/Locale/ru-RU/recipes/recipes.ftl | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Resources/Locale/ru-RU/_NF/chat/emotes.ftl b/Resources/Locale/ru-RU/_NF/chat/emotes.ftl index 1db44935f51..e0a7bca7e81 100644 --- a/Resources/Locale/ru-RU/_NF/chat/emotes.ftl +++ b/Resources/Locale/ru-RU/_NF/chat/emotes.ftl @@ -59,5 +59,4 @@ chat-emote-msg-vulpkanin-whines = скулит chat-emote-msg-vulpkanin-howls = воет chat-emote-msg-vulpkanin-awoo = воет -chat-emote-name-hiss = Шипеть chat-emote-msg-hiss = шипит diff --git a/Resources/Locale/ru-RU/recipes/recipes.ftl b/Resources/Locale/ru-RU/recipes/recipes.ftl index b2362aca914..42a33374a5c 100644 --- a/Resources/Locale/ru-RU/recipes/recipes.ftl +++ b/Resources/Locale/ru-RU/recipes/recipes.ftl @@ -90,4 +90,4 @@ construction-recipe-suit-storage = { ent-SuitStorageBase } construction-recipe-suit-storage-desc = { ent-SuitStorageBase.desc } construction-recipe-suit-storage-wallmount = { ent-SuitStorageWallmount } -construction-recipe-suit-storage-desc = { ent-SuitStorageWallmount.desc } +construction-recipe-suit-storage-wallmount-desc = { ent-SuitStorageWallmount.desc } From 03bfbdda10bbb7c9bc7ee8108fde67dd5849f3f1 Mon Sep 17 00:00:00 2001 From: gordod3 Date: Wed, 15 Jul 2026 21:15:56 +0600 Subject: [PATCH 2/8] Fixed GoblinThruster miss-type: Machine from ThrusterCircuitboard to GoblinThrusterCircuitboard --- .../_Forge/Entities/Structures/Shuttles/thrusters.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/Prototypes/_Forge/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/_Forge/Entities/Structures/Shuttles/thrusters.yml index a037ebeeff8..8df42e2a98b 100644 --- a/Resources/Prototypes/_Forge/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/_Forge/Entities/Structures/Shuttles/thrusters.yml @@ -18,6 +18,8 @@ shader: unshaded visible: false offset: 0, 0.5 + - type: Machine + board: GoblinThrusterCircuitboard - type: Construction graph: goblin_machinery node: goblinThruster From 25b17e7c5a4efb6ca83caa9311fcddf613e238cb Mon Sep 17 00:00:00 2001 From: gordod3 Date: Thu, 16 Jul 2026 15:32:12 +0600 Subject: [PATCH 3/8] Fixes missing GravityAffected component for Gravity objects, Fixes moonboots unfresh owner weight status, Adjust binoculars maxOffset to 10 --- .../_NF/Clothing/EntitySystems/NFMoonBootsSystem.cs | 4 ++++ .../Prototypes/Entities/Objects/Tools/binoculars.yml | 2 +- .../Prototypes/Entities/Objects/Vehicles/buckleable.yml | 1 + .../Prototypes/Entities/Structures/Machines/frame.yml | 1 + .../SpaceArtillery/SpaceArtillery/base_launcher.yml | 8 ++++++++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Content.Shared/_NF/Clothing/EntitySystems/NFMoonBootsSystem.cs b/Content.Shared/_NF/Clothing/EntitySystems/NFMoonBootsSystem.cs index 0e63151f485..bc2b69aaea0 100644 --- a/Content.Shared/_NF/Clothing/EntitySystems/NFMoonBootsSystem.cs +++ b/Content.Shared/_NF/Clothing/EntitySystems/NFMoonBootsSystem.cs @@ -13,6 +13,7 @@ namespace Content.Shared._NF.Clothing.EntitySystems; public sealed partial class SharedNFMoonBootsSystem : EntitySystem { + [Dependency] private SharedGravitySystem _gravity = default!; /// Change-Forge [Dependency] private AlertsSystem _alerts = default!; [Dependency] private ClothingSystem _clothing = default!; [Dependency] private InventorySystem _inventory = default!; @@ -40,6 +41,7 @@ private void OnToggled(Entity ent, ref ItemToggledEvent ar && uid == worn) { UpdateMoonbootEffects(container.Owner, ent, args.Activated); + _gravity.RefreshWeightless(container.Owner); /// Change-Forge } var prefix = args.Activated ? "on" : null; @@ -50,11 +52,13 @@ private void OnToggled(Entity ent, ref ItemToggledEvent ar private void OnGotUnequipped(Entity ent, ref ClothingGotUnequippedEvent args) { UpdateMoonbootEffects(args.Wearer, ent, false); + _gravity.RefreshWeightless(args.Wearer); /// Change-Forge } private void OnGotEquipped(Entity ent, ref ClothingGotEquippedEvent args) { UpdateMoonbootEffects(args.Wearer, ent, _toggle.IsActivated(ent.Owner)); + _gravity.RefreshWeightless(args.Wearer); /// Change-Forge } public void UpdateMoonbootEffects(EntityUid user, Entity ent, bool state) diff --git a/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml b/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml index 669b6324b06..c9fbf4ba4a5 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml @@ -14,7 +14,7 @@ delay: 1.0 - type: CursorOffsetRequiresWield - type: EyeCursorOffset - maxOffset: 5 + maxOffset: 10 pvsIncrease: 0.5 - type: SpeedModifiedOnWield walkModifier: 0.95 diff --git a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml index 34240a8b5dd..ca6c738663c 100644 --- a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml +++ b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml @@ -38,6 +38,7 @@ sound: collection: MetalGlassBreak - !type:ExplodeBehavior + - type: GravityAffected # Forge-Change - type: entity parent: BaseVehicle diff --git a/Resources/Prototypes/Entities/Structures/Machines/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/frame.yml index 7d63037356a..9ffae322f0c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/frame.yml @@ -130,6 +130,7 @@ whitelist: components: - MachineBoard + - type: GravityAffected # Forge-Change - type: entity id: MachineFrameDestroyed diff --git a/Resources/Prototypes/_Mono/Entities/SpaceArtillery/SpaceArtillery/base_launcher.yml b/Resources/Prototypes/_Mono/Entities/SpaceArtillery/SpaceArtillery/base_launcher.yml index 431c22e5365..ad65abccf42 100644 --- a/Resources/Prototypes/_Mono/Entities/SpaceArtillery/SpaceArtillery/base_launcher.yml +++ b/Resources/Prototypes/_Mono/Entities/SpaceArtillery/SpaceArtillery/base_launcher.yml @@ -72,6 +72,7 @@ - type: Repairable qualities: - Applicating + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryUnanchorable @@ -172,6 +173,7 @@ - type: Repairable qualities: - Applicating + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryCartridge @@ -284,6 +286,7 @@ - type: Repairable qualities: - Applicating + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryMagazine @@ -341,6 +344,7 @@ - !type:PlaySoundBehavior sound: collection: MetalBreak + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryTier2HP # Normal weapons, slightly stronger than plastitanium. This is the baseline durability for your average sized anchorable weapon. @@ -361,6 +365,7 @@ - !type:PlaySoundBehavior sound: collection: MetalBreak + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryTier3HP # Medium weapons. Reinforced plastitanium level. Typical for medium-class weapons. In-between heavy artillery and standard anchorables. @@ -387,6 +392,7 @@ - !type:PlaySoundBehavior sound: collection: MetalBreak + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryTier4HP # Capital Weapons. Cyrexas, main cannons. Anything really big. @@ -413,6 +419,7 @@ - !type:PlaySoundBehavior sound: collection: MetalBreak + - type: GravityAffected # Forge-Change - type: entity id: BallisticArtilleryTier5HP # Supercapital class armament, station outpost weaponry and capital pre-fracture weaponry, around 4x Reinforced Plastitanium Health. @@ -439,3 +446,4 @@ - !type:PlaySoundBehavior sound: collection: MetalBreak + - type: GravityAffected # Forge-Change From 9131bb4aa30a425cf9c1bd0920cfb267a50394e9 Mon Sep 17 00:00:00 2001 From: gordod3 Date: Thu, 16 Jul 2026 15:48:46 +0600 Subject: [PATCH 4/8] Added missing # Forge-Change --- Resources/Prototypes/Entities/Objects/Tools/binoculars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml b/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml index c9fbf4ba4a5..100ce398664 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/binoculars.yml @@ -14,7 +14,7 @@ delay: 1.0 - type: CursorOffsetRequiresWield - type: EyeCursorOffset - maxOffset: 10 + maxOffset: 10 # Forge-Change pvsIncrease: 0.5 - type: SpeedModifiedOnWield walkModifier: 0.95 From 0b678711c2a6b15881ce10d9b2e6e05b2b3ce849 Mon Sep 17 00:00:00 2001 From: gordod3 Date: Thu, 16 Jul 2026 17:07:41 +0600 Subject: [PATCH 5/8] Commented unnecessary TrashOnSolution, Changed Salvage TrashCart to had actual trash and adjust varios trash to there. --- Resources/Prototypes/Catalog/Fills/Boxes/general.yml | 2 +- Resources/Prototypes/Catalog/Fills/Crates/service.yml | 11 +++++++++++ .../Prototypes/Entities/Objects/Materials/scrap.yml | 3 +++ .../Entities/Objects/Specific/chemistry.yml | 4 ++-- .../Prototypes/Entities/Objects/Tools/bucket.yml | 4 ++-- .../Devices/Circuitboards/Machine/production.yml | 8 ++++++++ .../Prototypes/_NF/Catalog/Fills/Crates/salvage.yml | 2 +- 7 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 217ead101ab..57381aef96e 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -34,7 +34,7 @@ - type: Tag tags: - BoxCardboard - - Trash # Frontier + # - Trash # Frontier #Forge-Change-Del - type: entity name: mousetrap box diff --git a/Resources/Prototypes/Catalog/Fills/Crates/service.yml b/Resources/Prototypes/Catalog/Fills/Crates/service.yml index 1c54c329467..f3f2242bd20 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/service.yml @@ -361,6 +361,17 @@ prob: 0.1 - id: ShardGlassPlasma prob: 0.1 + # Forge-Change-Start + # Goblin + - id: FireExtinguisher + prob: 0.05 + - id: TrashBag + prob: 0.2 + - id: Beaker + prob: 0.05 + - id: DrinkColaCanEmpty + prob: 0.15 + # Forge-Change-End - type: entity id: CrateCandles diff --git a/Resources/Prototypes/Entities/Objects/Materials/scrap.yml b/Resources/Prototypes/Entities/Objects/Materials/scrap.yml index 38c63130f56..629980464c7 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/scrap.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/scrap.yml @@ -26,6 +26,7 @@ tags: - Recyclable - GoblinPreciousTrash # Forge-Change + - Trash # Forge-Change - type: entity parent: BaseStructure @@ -125,6 +126,8 @@ - type: Tag tags: - MachineBoard + - Trash + - Recyclable # Forge-Change-End - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml index 8704ef98360..3e01142ed7e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml @@ -93,8 +93,8 @@ - type: StaticPrice price: 30 - type: DnaSubstanceTrace - - type: TrashOnSolutionEmpty # Frontier - solution: beaker # Frontier + # - type: TrashOnSolutionEmpty # Frontier # Forge-Change-Del + # solution: beaker # Frontier # Forge-Change-Del - type: entity parent: BaseItem diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml index b3b3c4fb7c0..e363f945a0b 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml @@ -68,5 +68,5 @@ # materialComposition: # Plastic: 50 - type: DnaSubstanceTrace - - type: TrashOnSolutionEmpty # Frontier - solution: bucket # Frontier + # - type: TrashOnSolutionEmpty # Frontier # Forge-Change-Del + # solution: bucket # Frontier # Forge-Change-Del diff --git a/Resources/Prototypes/_Forge/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/_Forge/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 3b0ed4ba6eb..38a1d5feaaf 100644 --- a/Resources/Prototypes/_Forge/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/_Forge/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -62,6 +62,7 @@ - type: Tag tags: - PortableGeneratorClunkerCircuitboard + - Trash - type: entity id: GoblinThrusterCircuitboard @@ -89,6 +90,7 @@ - type: Tag tags: - GoblinThrusterCircuitboard + - Trash - type: entity id: GoblinComputerShuttleCircuitboard @@ -110,6 +112,9 @@ - type: Construction graph: goblin_makeshift_circuit node: goblinComputerShuttleCircuitboard + - type: Tag + tags: + - Trash - type: entity parent: BaseItem @@ -127,3 +132,6 @@ - type: Construction graph: goblin_makeshift_circuit node: incompleteCircuitboard + - type: Tag + tags: + - Trash diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/_NF/Catalog/Fills/Crates/salvage.yml index 2fc1bd2b33f..65f31d534c5 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Crates/salvage.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Crates/salvage.yml @@ -58,4 +58,4 @@ - type: entity id: NFCrateSalvageAssortedGoodiesTrashCart categories: [ HideSpawnMenu ] - parent: [ CrateTrashCart, NFCrateSalvageAssortedGoodies ] + parent: [ CrateTrashCartFilled ] # Forge-Change From 67a4e8105eabb52dd1a6db164bc18c89cd1a305f Mon Sep 17 00:00:00 2001 From: gordod3 Date: Thu, 16 Jul 2026 17:20:17 +0600 Subject: [PATCH 6/8] Now TrashCrates, TrashBox are RatKingRummageble and have new food loot --- .../Entities/Markers/Spawners/Random/trash.yml | 3 +++ Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml | 10 ++++++---- .../Entities/Structures/Storage/Crates/crates.yml | 1 + .../_NF/Entities/Structures/Storage/trash_box.yml | 1 + 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/trash.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/trash.yml index 559738d4e05..c5769e6c50c 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/trash.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/trash.yml @@ -27,6 +27,7 @@ - id: FoodTinMRETrash # Frontier - id: MysteryFigureBoxTrash # Frontier - id: FoodPSBTrash # Frontier + - id: DrinkColaCanEmpty # Forge-Change - !type:GroupSelector weight: 5 children: @@ -35,6 +36,8 @@ - id: TrashBananaPeel # Frontier - id: FoodCornTrash # Frontier - id: TrashNapkin # Frontier + - id: Beaker # Forge-Change + - id: DrinkGlass # Forge-Change - type: entity name: Trash Spawner diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index 44f928c0b37..9f792198420 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -345,10 +345,12 @@ - type: weightedRandomEntity id: RatKingLoot weights: # DeltaV: Rebalanced for Rodentia rummaging because we don't have Rat King - RandomSpawner100: 100 #garbage -# FoodCheeseSlice: 15 #food -# RandomSnacks: 10 -# RandomFoodSingle: 5 + # Forge-Change-Start + RandomSpawner100: 85 #garbage + FoodCheeseSlice: 5 #food + RandomSnacks: 5 + RandomFoodSingle: 5 + # Forge-Change-End - type: entity id: ActionRatKingRaiseArmy diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index 8ac3b3780a9..67b4afe2987 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -633,6 +633,7 @@ sprite: Structures/Storage/Crates/labels.rsi offset: "0.0,0.03125" map: ["enum.PaperLabelVisuals.Layer"] + - type: RatKingRummageable # Forge-Change - type: entity parent: CrateBaseSecure diff --git a/Resources/Prototypes/_NF/Entities/Structures/Storage/trash_box.yml b/Resources/Prototypes/_NF/Entities/Structures/Storage/trash_box.yml index 35cad273064..a4e8f9304c2 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Storage/trash_box.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Storage/trash_box.yml @@ -115,4 +115,5 @@ - Recyclable - Trash maxItemSize: Huge # so you can pick up scrap chunks + - type: RatKingRummageable # Forge-Change-End From 81017b2fba40576645d113be9e05a34f2f513f53 Mon Sep 17 00:00:00 2001 From: gordod3 Date: Fri, 24 Jul 2026 04:41:06 +0600 Subject: [PATCH 7/8] Fix SharedSealableClothingSystem - NonWearer now can Seal\UnSeal Modsuits --- .../Systems/SharedSealableClothingSystem.cs | 58 ++++++++++++------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs b/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs index d71923a846c..e4c5c0cb7f6 100644 --- a/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs +++ b/Content.Shared/_Goobstation/Clothing/Systems/SharedSealableClothingSystem.cs @@ -15,6 +15,7 @@ using Robust.Shared.Network; using Robust.Shared.Serialization; using Robust.Shared.Utility; +using Robust.Shared.Timing; /// Forge-Change namespace Content.Shared._Goobstation.Clothing.Systems; @@ -51,7 +52,7 @@ public override void Initialize() SubscribeLocalEvent(OnControlMapInit); SubscribeLocalEvent(OnSealClothingDoAfter); SubscribeLocalEvent(OnControlSealEvent); - //SubscribeLocalEvent(OnStartSealingDoAfter); + SubscribeLocalEvent(OnStartSealingDoAfter); /// Forge-Change SubscribeLocalEvent(OnToggleClothingAttempt); } @@ -140,8 +141,7 @@ private void OnEquipmentVerb(Entity control, r if (!_interactionSystem.InRangeUnobstructed(user, uid)) return; - if (comp.WearerEntity == null || - comp.WearerEntity != user && _actionBlockerSystem.CanInteract(comp.WearerEntity.Value, null)) + if (comp.WearerEntity == null) /// Forge-Change return; var verbIcon = comp.IsCurrentlySealed ? @@ -153,28 +153,44 @@ private void OnEquipmentVerb(Entity control, r Icon = verbIcon, Priority = 5, Text = Loc.GetString(comp.VerbText), - Act = () => TryStartSealToggleProcess(control, user) + // Act = () => TryStartSealToggleProcess(control, user) /// Forge-Change-Del }; - - /* This should make as do after to start unsealing of suit with verb, but, for some reason i couldn't figure out, it ends with doAfter enumerator change exception - * Would be nice if some can fix this, yet unsealing will be possible only on incapacitated wearers + /// Forge-Change-Start if (args.User == comp.WearerEntity) { verb.Act = () => TryStartSealToggleProcess(control); } else { - var doAfterArgs = new DoAfterArgs(EntityManager, args.User, comp.NonWearerSealingTime, new StartSealingProcessDoAfterEvent(), uid) - { - RequireCanInteract = true, - BreakOnMove = true, - BlockDuplicate = true - }; - verb.Act = () => _doAfterSystem.TryStartDoAfter(doAfterArgs); - }*/ + verb.Act = () => StartSealDoAfter(user, control, comp.WearerEntity.Value); + } + /// Forge-Change-End args.Verbs.Add(verb); } + /// Forge-Change-Start + /// Take from Goobstation codebase + + private void StartSealDoAfter(EntityUid user, Entity control, EntityUid wearer) + { + _popupSystem.PopupClient("You start the suits' sealing process", wearer, user); + var args = new DoAfterArgs(EntityManager, user, control.Comp.NonWearerSealingTime, new StartSealingProcessDoAfterEvent(), control, wearer, control) + { + BreakOnDamage = true, + BreakOnMove = true, + DistanceThreshold = 2, + }; + + if (!_doAfterSystem.TryStartDoAfter(args)) + { + return; + } + + var popup = Loc.GetString("strippable-component-alert-owner-interact", ("user", Identity.Entity(user, EntityManager)), ("item", control)); + _popupSystem.PopupEntity(popup, wearer, wearer, PopupType.Large); + + } + /// Forge-Change-End /// /// Ensure actionEntity on map init @@ -185,15 +201,17 @@ private void OnControlMapInit(Entity control, _actionContainerSystem.EnsureAction(uid, ref comp.SealActionEntity, comp.SealAction); } - /* This should make as do after to start unsealing of suit with verb, but, for some reason i couldn't figure out, it ends with doAfter enumerator change exception - * Would be nice if some can fix this, yet unsealing will be possible only on incapacitated wearers + /// Forge-Change-Start + /// Take from Goobstation codebase private void OnStartSealingDoAfter(Entity control, ref StartSealingProcessDoAfterEvent args) { if (args.Cancelled) return; - - TryStartSealToggleProcess(control); - }*/ + var user = args.User; + // unless you have another way to do doafters inside doafters then yeah + Timer.Spawn(0, () => TryStartSealToggleProcess(control, user)); + } + /// Forge-Change-End /// /// Trying to start sealing on action. It'll notify wearer if process already started From 42e718559c274e498b13b245ea259a3942cdd28c Mon Sep 17 00:00:00 2001 From: gordod3 Date: Fri, 24 Jul 2026 05:41:31 +0600 Subject: [PATCH 8/8] Fix missing SurgeryInsertPump for IPC --- Resources/Locale/ru-RU/_Forge/surgery.ftl | 1 + .../_Shitmed/Entities/Surgery/surgeries.yml | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/Resources/Locale/ru-RU/_Forge/surgery.ftl b/Resources/Locale/ru-RU/_Forge/surgery.ftl index 439a226f028..7d1b0408b5b 100644 --- a/Resources/Locale/ru-RU/_Forge/surgery.ftl +++ b/Resources/Locale/ru-RU/_Forge/surgery.ftl @@ -23,6 +23,7 @@ ent-SurgeryRemoveBorgBrain = Вынуть позитронный мозг ent-SurgeryInsertBrain = Вставить мозг ent-SurgeryInsertBorgBrain = Вставить позитронный мозг ent-SurgeryInsertHeart = Вставить сердце +ent-SurgeryInsertPump = Вставить помпу КПБ ent-SurgeryRemoveLiver = Удалить печень ent-SurgeryInsertLiver = Вставить печень ent-SurgeryRemoveLungs = Удалить лёгкие diff --git a/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml b/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml index 016fe2bc45d..760870b40ac 100644 --- a/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml +++ b/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml @@ -432,6 +432,30 @@ - type: Heart inverse: true reattaching: true +# Forge-Change-Start + +- type: entity + parent: SurgeryBase + id: SurgeryInsertPump + name: Insert Pump + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepInsertHeart + - SurgeryStepSealOrganWound + - type: SurgeryOrganSlotCondition + organSlot: pump + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Heart + inverse: true + reattaching: true +# Forge-Change-End - type: entity parent: SurgeryBase