From 5da72df6ad23ef7ebe57c37b0a687b2ef4f28355 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 27 Jun 2026 09:50:31 -0500 Subject: [PATCH 01/28] Add damage examinable to base structure. --- Resources/Locale/en-US/_DV/damage-examine/structures.ftl | 7 +++++++ .../Prototypes/Entities/Structures/base_structure.yml | 4 ++++ Resources/Prototypes/_DV/Damage/examine_messages.yml | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 Resources/Locale/en-US/_DV/damage-examine/structures.ftl create mode 100644 Resources/Prototypes/_DV/Damage/examine_messages.yml diff --git a/Resources/Locale/en-US/_DV/damage-examine/structures.ftl b/Resources/Locale/en-US/_DV/damage-examine/structures.ftl new file mode 100644 index 00000000000..1d01a5eb7d1 --- /dev/null +++ b/Resources/Locale/en-US/_DV/damage-examine/structures.ftl @@ -0,0 +1,7 @@ +# Base structure damage examine values +comp-structure-damaged-1 = It looks fully intact. +comp-structure-damaged-2 = It has a few scratches. +comp-structure-damaged-3 = It has a few large dents. +comp-structure-damaged-4 = [color=yellow]It has several big cracks running along its surface.[/color] +comp-structure-damaged-5 = [color=orange]It has deep cracks across multiple layers.[/color] +comp-structure-damaged-6 = [color=red]It's extremely damaged and on the verge of falling apart.[/color] \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml index 99c5c62b4ea..69207334af2 100644 --- a/Resources/Prototypes/Entities/Structures/base_structure.yml +++ b/Resources/Prototypes/Entities/Structures/base_structure.yml @@ -26,6 +26,10 @@ - type: Tag tags: - Structure + # BEGIN DeltaV + - type: ExaminableDamage + messages: BaseStructureMessages + # END DeltaV - type: entity # This means that it's not anchored on spawn. diff --git a/Resources/Prototypes/_DV/Damage/examine_messages.yml b/Resources/Prototypes/_DV/Damage/examine_messages.yml new file mode 100644 index 00000000000..de155c7b353 --- /dev/null +++ b/Resources/Prototypes/_DV/Damage/examine_messages.yml @@ -0,0 +1,5 @@ +- type: localizedDataset + id: BaseStructureMessages + values: + prefix: comp-structure-damaged- + count: 6 \ No newline at end of file From cc39ded995a6838bce69b9a2a022151c475d0b57 Mon Sep 17 00:00:00 2001 From: ScyronX <166930367+ScyronX@users.noreply.github.com> Date: Wed, 24 Sep 2025 13:02:12 +0300 Subject: [PATCH 02/28] Nanite Applicator (#2314) * tool added * comments and fixes * final fix * chore: automatically update REUSE headers * final fix * chore: automatically update REUSE headers * fix localization * fix * chore: automatically update REUSE headers * fixed the comment location * test fix * fix * chore: automatically update REUSE headers * not syndicate anymore * Update Content.Server/Repairable/RepairableSystem.cs sure Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> * nesting fixed --------- Co-authored-by: Vanessa Louwagie Co-authored-by: monolith8319 <195513600+monolith8319@users.noreply.github.com> Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> --- .../Tools/UI/WelderStatusControl.cs | 15 ++- .../Repairable/RepairableComponent.cs | 2 +- Content.Shared/Repairable/RepairableSystem.cs | 13 ++- .../Tools/Components/WelderComponent.cs | 6 ++ .../Tools/Systems/SharedToolSystem.Welder.cs | 26 ++++-- .../en-US/_Mono/reagents/technological.ftl | 2 + .../_Mono/store/pirate-uplink-catalog.ftl | 4 + .../tools/components/welder-component.ftl | 1 + .../en-US/_Mono/tools/tool-qualities.ftl | 2 + .../VendingMachines/Inventories/engivend.yml | 2 + .../Specific/Robotics/borg_modules.yml | 2 + .../Guns/Turrets/turrets_ballistic.yml | 3 +- .../Entities/Structures/Walls/walls.yml | 3 + .../Recipes/Lathes/Packs/engineering.yml | 1 + Resources/Prototypes/Research/industrial.yml | 1 + .../_Mono/Catalogs/uplink_catalog.yml | 9 ++ .../Objects/Specific/chemical-containers.yml | 13 +++ .../Objects/Tools/nanite_applicator.yml | 87 ++++++++++++++++++ .../_Mono/Reagents/technological.yml | 22 +++++ .../Prototypes/_Mono/Recipes/Lathes/tools.yml | 13 +++ Resources/Prototypes/_Mono/tool_qualities.yml | 6 ++ .../Objects/Tools/naninte-injector-auto.gif | Bin 0 -> 1571 bytes .../Objects/Tools/naninte-injector-syndie.gif | Bin 0 -> 1367 bytes .../Tools/nanite_applicator.rsi/base.png | Bin 0 -> 570 bytes .../Tools/nanite_applicator.rsi/icon.png | Bin 0 -> 891 bytes .../nanite_applicator.rsi/inhand-left.png | Bin 0 -> 460 bytes .../nanite_applicator.rsi/inhand-right.png | Bin 0 -> 467 bytes .../Tools/nanite_applicator.rsi/meta.json | 33 +++++++ .../base.png | Bin 0 -> 570 bytes .../icon.png | Bin 0 -> 891 bytes .../inhand-left.png | Bin 0 -> 460 bytes .../inhand-right.png | Bin 0 -> 467 bytes .../meta.json | 33 +++++++ .../nanite_applicator_syndicate.rsi/base.png | Bin 0 -> 551 bytes .../nanite_applicator_syndicate.rsi/icon.png | Bin 0 -> 796 bytes .../inhand-left.png | Bin 0 -> 477 bytes .../inhand-right.png | Bin 0 -> 466 bytes .../nanite_applicator_syndicate.rsi/meta.json | 33 +++++++ 38 files changed, 321 insertions(+), 11 deletions(-) create mode 100644 Resources/Locale/en-US/_Mono/reagents/technological.ftl create mode 100644 Resources/Locale/en-US/_Mono/store/pirate-uplink-catalog.ftl create mode 100644 Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl create mode 100644 Resources/Locale/en-US/_Mono/tools/tool-qualities.ftl create mode 100644 Resources/Prototypes/_Mono/Catalogs/uplink_catalog.yml create mode 100644 Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml create mode 100644 Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml create mode 100644 Resources/Prototypes/_Mono/Reagents/technological.yml create mode 100644 Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml create mode 100644 Resources/Prototypes/_Mono/tool_qualities.yml create mode 100644 Resources/Textures/_Mono/Objects/Tools/naninte-injector-auto.gif create mode 100644 Resources/Textures/_Mono/Objects/Tools/naninte-injector-syndie.gif create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/base.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/icon.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-left.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-right.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/meta.json create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/base.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/icon.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/inhand-left.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/inhand-right.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/meta.json create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/base.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/icon.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/inhand-left.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/inhand-right.png create mode 100644 Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/meta.json diff --git a/Content.Client/Tools/UI/WelderStatusControl.cs b/Content.Client/Tools/UI/WelderStatusControl.cs index de56286641b..f3b6b3d62cc 100644 --- a/Content.Client/Tools/UI/WelderStatusControl.cs +++ b/Content.Client/Tools/UI/WelderStatusControl.cs @@ -29,11 +29,22 @@ public sealed class WelderStatusControl : PollingItemStatusControl [DataField, AutoNetworkedField] - public ProtoId QualityNeeded = "Welding"; + public List> QualityNeeded = ["Welding", "Applicating"]; // Monolith - Nanite Applicator /// /// The base tool use delay (seconds). This will be modified by the tool's quality diff --git a/Content.Shared/Repairable/RepairableSystem.cs b/Content.Shared/Repairable/RepairableSystem.cs index bbb4b40b2fc..05bd2ac54e9 100644 --- a/Content.Shared/Repairable/RepairableSystem.cs +++ b/Content.Shared/Repairable/RepairableSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Database; using Content.Shared.DoAfter; using Content.Shared.Interaction; using Content.Shared.Popups; +using Content.Shared.Tools.Components; // Monolith - Nanite Applicators using Content.Shared.Tools.Systems; using Robust.Shared.Serialization; @@ -115,8 +116,18 @@ public sealed partial class RepairableSystem : EntitySystem delay *= ent.Comp.SelfRepairPenalty; } + // BEGIN Monolith - Nanite Applicators + if (!TryComp(args.Used, out var tool)) + return; + // Run the repairing doafter - args.Handled = _toolSystem.UseTool(args.Used, args.User, ent.Owner, delay, ent.Comp.QualityNeeded, new RepairDoAfterEvent(), ent.Comp.FuelCost); + foreach (var quality in ent.Comp.QualityNeeded) + { + if (_toolSystem.HasQuality(args.Used, quality, tool)) + args.Handled = _toolSystem.UseTool(args.Used, args.User, ent.Owner, delay, quality, new RepairDoAfterEvent(), ent.Comp.FuelCost); + } + // END Monolith + } } diff --git a/Content.Shared/Tools/Components/WelderComponent.cs b/Content.Shared/Tools/Components/WelderComponent.cs index a9111c7f534..aa22fb36a1b 100644 --- a/Content.Shared/Tools/Components/WelderComponent.cs +++ b/Content.Shared/Tools/Components/WelderComponent.cs @@ -73,4 +73,10 @@ public sealed partial class WelderComponent : Component /// [DataField] public bool TankSafe; + + /// + /// Monolith - This variable gets rid of the status display. + /// + [DataField] + public bool OnlyDisplayFuel = false; } diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs b/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs index 3d28979fd3a..3486675feef 100644 --- a/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs +++ b/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs @@ -84,19 +84,33 @@ public abstract partial class SharedToolSystem { using (args.PushGroup(nameof(WelderComponent))) { - if (ItemToggle.IsActivated(entity.Owner)) + // BEGIN Monolith - Nanite Applicators + if (!entity.Comp.OnlyDisplayFuel) { - args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-lit-message")); - } - else - { - args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-not-lit-message")); + var lit = Loc.GetString("welder-component-on-examine-welder-not-lit-message"); + + if (ItemToggle.IsActivated(entity.Owner)) + lit = Loc.GetString("welder-component-on-examine-welder-lit-message"); + + args.PushMarkup(lit); } + // END Monolith if (args.IsInDetailsRange) { var (fuel, capacity) = GetWelderFuelAndCapacity(entity.Owner, entity.Comp); + // BEGIN Monolith - Nanite Applicator + if (entity.Comp.OnlyDisplayFuel) + { + args.PushMarkup(Loc.GetString("welder-component-on-examine-less-detailed-message", + ("colorName", fuel < capacity / FixedPoint2.New(4f) ? "darkorange" : "orange"), + ("fuelLeft", fuel), + ("fuelCapacity", capacity))); + return; + } + // END Monolith + args.PushMarkup(Loc.GetString("welder-component-on-examine-detailed-message", ("colorName", fuel < capacity / FixedPoint2.New(4f) ? "darkorange" : "orange"), ("fuelLeft", fuel), diff --git a/Resources/Locale/en-US/_Mono/reagents/technological.ftl b/Resources/Locale/en-US/_Mono/reagents/technological.ftl new file mode 100644 index 00000000000..cc41197ebc7 --- /dev/null +++ b/Resources/Locale/en-US/_Mono/reagents/technological.ftl @@ -0,0 +1,2 @@ +reagent-name-nanite-fuel = Nanites +reagent-desc-nanite-fuel = Nanobots used for repairing. diff --git a/Resources/Locale/en-US/_Mono/store/pirate-uplink-catalog.ftl b/Resources/Locale/en-US/_Mono/store/pirate-uplink-catalog.ftl new file mode 100644 index 00000000000..cb2806011d9 --- /dev/null +++ b/Resources/Locale/en-US/_Mono/store/pirate-uplink-catalog.ftl @@ -0,0 +1,4 @@ +# MARK: Utility + +uplink-syndicate-applicator-name = Advanced Nanite Applicator +uplink-syndicate-applicator-desc = Advanced nanite applicator with a heavily upgraded nanite capacity capable of self-nanite generation. diff --git a/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl b/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl new file mode 100644 index 00000000000..5a340dc428a --- /dev/null +++ b/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl @@ -0,0 +1 @@ +welder-component-on-examine-less-detailed-message = Fuel: [color={$colorName}]{$fuelLeft}/{$fuelCapacity}[/color] \ No newline at end of file diff --git a/Resources/Locale/en-US/_Mono/tools/tool-qualities.ftl b/Resources/Locale/en-US/_Mono/tools/tool-qualities.ftl new file mode 100644 index 00000000000..43b1efe77bd --- /dev/null +++ b/Resources/Locale/en-US/_Mono/tools/tool-qualities.ftl @@ -0,0 +1,2 @@ +tool-quality-nanite-applicator-name = Nanite Applicator +tool-quality-applicating-name = Nanite Applicating diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml index 33bcea0ab24..426700db366 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml @@ -8,6 +8,8 @@ CrowbarYellow: 8 Multitool: 4 NetworkConfigurator: 5 + NaniteApplicator: 4 # Monolith - Nanite Applicator + JerryCanNaniteFuel: 2 # Monolith - Nanite Applicator PowerCellMedium: 5 ClothingHandsGlovesColorYellow: 6 MetalFoamGrenade: 3 # DeltaV - added diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index f725e329cd6..088b3da7c2e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -583,6 +583,7 @@ - item: Screwdriver - item: Wirecutter - item: WelderIndustrial + - item: NaniteApplicator # Monolith - item: Multitool - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: tool-module } @@ -711,6 +712,7 @@ - item: PowerDrill - item: WelderExperimental - item: Multitool + - item: NaniteApplicatorExperimental # Monolith - item: RemoteSignallerAdvanced - item: NFWeaponHoloflareGun # DeltaV - type: BorgModuleIcon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml index f2cdbab4962..8953587ae36 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml @@ -45,7 +45,8 @@ graph: WeaponTurretSyndicateDisposable node: disposableTurret - type: Repairable - qualityNeeded: "Anchoring" + qualities: # Monolith - Converted to Array + - Anchoring doAfterDelay: 3 - type: TriggerOnEmptyGunshot - type: ExplodeOnTrigger diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index b62fdc75717..6499253d08b 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -55,6 +55,9 @@ resistance: 2 - type: BlockWeather - type: SunShadowCast + - type: Repairable # Monolith - Nanite Applicator + qualities: + - Applicating - type: entity abstract: true diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml b/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml index e9eb17ad16f..b0bd3954445 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml @@ -63,6 +63,7 @@ - WelderExperimental - JawsOfLife - TrayGoggles # DeltaV + - ExperimentalNaniteApplicator # Monolith #- Fulton # DeltaV - moved to MiningDeltaV #- FultonBeacon # DeltaV - moved to MiningDeltaV diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index f1cea326102..5ef9738b8f7 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -184,6 +184,7 @@ - JawsOfLife - BorgModuleAdvancedTool - TrayGoggles # DeltaV + - ExperimentalNaniteApplicator # Monolith #- Fulton # DeltaV - seperate tech Aerial Extraction #- FultonBeacon # DeltaV - seperate tech Aerial Extraction diff --git a/Resources/Prototypes/_Mono/Catalogs/uplink_catalog.yml b/Resources/Prototypes/_Mono/Catalogs/uplink_catalog.yml new file mode 100644 index 00000000000..154aa75017a --- /dev/null +++ b/Resources/Prototypes/_Mono/Catalogs/uplink_catalog.yml @@ -0,0 +1,9 @@ +- type: listing + id: UplinkSyndicateApplicator + name: uplink-syndicate-applicator-name + description: uplink-syndicate-applicator-desc + productEntity: NaniteApplicatorSyndicate + cost: + Telecrystal: 2 + categories: + - UplinkDisruption diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml new file mode 100644 index 00000000000..21a9d3686ce --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml @@ -0,0 +1,13 @@ +- type: entity + parent: JerryCan + suffix: nanite fuel + id: JerryCanNaniteFuel + components: + - type: Label + currentLabel: reagent-name-nanite-fuel + - type: SolutionContainerManager + solutions: + beaker: + reagents: + - ReagentId: NaniteFuel + Quantity: 200 \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml new file mode 100644 index 00000000000..cf7ed3ab360 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml @@ -0,0 +1,87 @@ +- type: entity + name: nanite applicator + parent: BaseItem + id: NaniteApplicator + description: "Advanced tool that uses nanotechnology to repair structures." + components: + - type: EmitSoundOnLand + sound: + path: /Audio/Items/welder_drop.ogg + - type: Sprite + sprite: _Mono/Objects/Tools/nanite_applicator.rsi + layers: + - state: icon + - type: MeleeWeapon + wideAnimationRotation: 135 + attackRate: 1.5 + damage: + types: + Blunt: 5 + soundHit: + collection: MetalThud + - type: Tool + qualities: + - Applicating + useSound: + collection: Welder + - type: Welder + fuelReagent: NaniteFuel + onlyDisplayFuel: true + - type: RefillableSolution + solution: Welder + - type: SolutionContainerManager + solutions: + Welder: + reagents: + - ReagentId: NaniteFuel + Quantity: 50 + maxVol: 50 + - type: PhysicalComposition + materialComposition: + Steel: 100 + - type: StaticPrice + price: 11 + - type: GuideHelp + guides: + - Construction + +- type: entity + name: experimental nanite applicator + parent: NaniteApplicator + id: NaniteApplicatorExperimental + description: "An experimental nanite applicator with a heavily upgraded nanite capacity capable of self-nanite generation." + components: + - type: Sprite + sprite: _Mono/Objects/Tools/nanite_applicator_experimental.rsi + layers: + - state: icon + - type: SolutionRegeneration + solution: Welder + generated: + reagents: + - ReagentId: NaniteFuel + Quantity: 1 + +- type: entity + name: advanced nanite applicator + parent: NaniteApplicatorExperimental + id: NaniteApplicatorSyndicate + description: "Advanced nanite applicator with a heavily upgraded nanite capacity capable of self-nanite generation." + components: + - type: Sprite + sprite: _Mono/Objects/Tools/nanite_applicator_syndicate.rsi + layers: + - state: icon + - type: SolutionContainerManager + solutions: + Welder: + reagents: + - ReagentId: NaniteFuel + Quantity: 200 + maxVol: 200 + - type: SolutionRegeneration + solution: Welder + generated: + reagents: + - ReagentId: NaniteFuel + Quantity: 3 diff --git a/Resources/Prototypes/_Mono/Reagents/technological.yml b/Resources/Prototypes/_Mono/Reagents/technological.yml new file mode 100644 index 00000000000..459b6714dcf --- /dev/null +++ b/Resources/Prototypes/_Mono/Reagents/technological.yml @@ -0,0 +1,22 @@ +- type: reagent + id: NaniteFuel + name: reagent-name-nanite-fuel + desc: reagent-desc-nanite-fuel + physicalDesc: reagent-physical-desc-oily + slipData: + requiredSlipSpeed: 3.5 + flavor: bitter + flavorMinimum: 0.01 + color: "#0000FF" + recognizable: true + boilingPoint: 8000.6 + meltingPoint: 659.7 + friction: 0.4 + flammability: 2 + metabolisms: + Poison: + effects: + - !type:HealthChange + damage: + types: + Poison: 1 diff --git a/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml b/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml new file mode 100644 index 00000000000..d8b73045a56 --- /dev/null +++ b/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml @@ -0,0 +1,13 @@ +- type: latheRecipe + parent: BaseToolRecipe + id: ExperimentalNaniteApplicator + result: NaniteApplicatorExperimental + materials: + Steel: 500 + +- type: latheRecipe + parent: BaseToolRecipe + id: NaniteApplicatorSyndicate + result: NaniteApplicatorSyndicate + materials: + Steel: 500 diff --git a/Resources/Prototypes/_Mono/tool_qualities.yml b/Resources/Prototypes/_Mono/tool_qualities.yml new file mode 100644 index 00000000000..8a88878e883 --- /dev/null +++ b/Resources/Prototypes/_Mono/tool_qualities.yml @@ -0,0 +1,6 @@ +- type: tool + id: Applicating + name: tool-quality-applicating-name + toolName: tool-quality-nanite-applicator-name + spawn: NaniteApplicator + icon: { sprite: _Mono/Objects/Tools/nanite_applicator.rsi, state: icon } diff --git a/Resources/Textures/_Mono/Objects/Tools/naninte-injector-auto.gif b/Resources/Textures/_Mono/Objects/Tools/naninte-injector-auto.gif new file mode 100644 index 0000000000000000000000000000000000000000..f19fb948503afe98817543e5d0dec48403a837fc GIT binary patch literal 1571 zcmbu8doM^fsOSKi0wAR(IGcxwKKX%&t$G!i2?>+Z(zUPZLRpVajW-=TFm7G7e~f%lPWsBwBn&a zDwSp}YKDi0)oS(f^74OYHg7Nu#P`$%{}adjPPsTbX=|;kU@IUU{q_`7QV2K2DT(Wl+^9FS=WeliDVj z9(QE+&eY<1JhnbgtjGJ_kajILOVmjwYsLwQNyOw75;>KK(n`;urhgMhpybeV$!VEP zT5!Bh9*dpBU{VXW6dQ4QD7`8Hv_=4_tAXk_h_*GODz7)_*R?|=+zgPsqr2TcONS>l z5L64R+C^TYq%l@P2bFFbp>avqFbwL34eNZvm#enmCY z4TWX6jEO@i2xuUiwvWBc%JlH~qAc6p@mO%UtEG&U^~3R5lpz6zROK@ZQf+qMWaO9U z`(-~>F>ekusH|>uu3TnD?H7b0?*99Ot;J<=Y|y!aRDU& zo3oo~S6GVnB2@}gvPD_3jV%&sYulstj>nx{GP$B#+4H2guYch8!J*-i(Whh2p1&BM zcscp%^_wZx^vvwrxq0=w_X~e~`12@iGc?6#piQOVKBB3nnBm~@IN9`aBWY@~Q;YHNx7udXc!Hv8nlgJLd)i G4*d(VIU2

KfYkii?Jb2qg>i+u8ZKxCBK+Wb`vItYcu9rYyTxTV>j`#Xo-h04iqrFL1(h^da~ZxP*L;M@8pY;o8Me_-2bqn#&7-g)mygJo_~M-qj6PTb4z_lWl$+&H*0Sn z_k=#?$rHGFrcY&=HMOssv1nfWqQ&v5O$&PZdgt^`W}Z5oXXfmQz4KNuF4+~dtg~d^ zs?}Rr*KL?FVHV38*6oE0cQ4tS5I%47sR`@)58pgEw>#o2M=0A9zGu8IG~yq0Uz>V| z_4J3k^WMzQd;IkIOZC@R-k!+NZBWk-GS6pxv-f2BfjP`2yjMIG-8U{e+AU$6wML?E z;qrck|4VaaJU6NA>`-cDz_@u}i> z+1e1frVSdt2f`cU1fXM3XBN2}w*&tD-9OYmtY-LdWOqw#r*Y2YP2L9+ zjIECymn>m8uOil-_h-kl%qz+vv-bwx=!y~ERDGq*#`8z-6eC?l|xsUcePCDKw^P=qZt;WY&&qXKwcwxHhzMh}0?awD~53XNtSM|B{ z%NF<`o2)Swa!6C^=4~LrIKWns8s92 zR;jcfA?>cUI}%frtXNy@BLki-iVqD~c8pPIQ=wb8{wa^vzRW8>9*9|fI-x9OcW=X_ zPR)5UrU|+$NhUGn8*&Ow3Ro2JbW%Xd%BRy}%3eO5p3tWGY(~no%x5z*maTj?D`(rw zXR`~Ay>wy0OwmoiL<&jBkdzDLLICqZj$L>D8Jr?5^%A_P)Px$^hrcPR9J=WmCtL_U>L_g9cB2Vt91WBp%6USpdna<<`A(UOhhP*dXd439S&CX z?q%S`F__?a2XE#d$kmGn$#xLxtzbk-M{N-dtw<=m9waqs)2`i$^^ngcJb7Q<@ArA~ zJb57^B4WYB{DG`!;>qK!xe9D=KZ;FSkNd^1UCpw&xjt6|fY?9S3%vMTuMJGahj;gS zJpc^DfF-|pv)QE8YGD{A?{4S0_`OXonV|lu27r{6v79cZb%f<~ zsoG6+T@4l2b(Nd9baHAQfaL2#KHR@crS0H}gRcid! z7$J@kg+g)a*m{FFT_H%QTkoLqD-D3dr|+32K6myJ5fO{vH}+`;K1BKn1ONa407*qo IM6N<$f&1BCpEP)Px&HAzH4RCt{2n(s>!aU92AibR$zjHC$3A2525M~$%~aKs`ZSVSO*K}euvB_stw z5D^3s6hc8gh`-+h9zq{MGHwc0t2twV`;M`F{QS-{hOEndYjSV$ye3XCwCa3)Hp&o{Z2WmP1z?^vW zFz=1e=~Tg>{PH)sk6v3_10az|@*sQ!05#BpW@Kqy&60Y2830C?4F(6}Ogwr>cSn$wOBZa%Q7}Iaob{ZUQvT-EWt7e?`&iA$a`VF{ z+yA^RKwOQG)Mg6&>f}=ZlG;q3ztJhrWHKx*Es;nhd2^zd=GA4?Knv-)6ac{<1+}$tLRp&*l+S%Vsf5j_ct5Nq2DEgbc9+p4I3MgCw-9g2^ zmAtV@jA(0=<-LQ%7?uirFhG0j=bzP|pl_q7+88yo&Fzh}3s6OBBM z0x)^)9p&s--TnW>F9?Dl2!bF8f*@>lBp=|EOFn?o&*!b}V)=mQZ2{p#yVK|a7;e6f5$ z`_y#V`GD31-7_CBF_%I!vUU!@tN2p+1gm)PAs=9c7&bc};LIn))rj2$$p?51q7oz@ z;6U;Lk`MUzNIsy({VYs@c;R|-+n<51VN}1egPEF59{*0 RX0reQ002ovPDHLkV1iZ0s0;uA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-left.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4d013965ecb578c95602f316eeb744c60a48e85a GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z+dN$yLn`LH zy=9np$UuVif&0;E3(jm%m>{7nvT>7P(~%R0S|cQD8hbp}#4M<0SJ9tpRmd>m#2dZR z+1nbI9IFqx^}Tmu?wk955`P$!pn%b9soSQ%x^gP)@A;D!Z#8Rwx#ZKLDPCt2ts1Z0 z`og}kLeYg=phYn4GwZaQg0JJ2Z{hG-ns)bf!c1Ai+4=%46Q6ux;1Fl{p>b&2?PFOc zdm>nt25pw&-S~D}cC?K`K!b(ke)+q9FDEk}I3|{OJxgpJ%kIy+!;JU;I2&Dm z`5zogZ#$69ST~Ek;GwnigTGaKvg8i5x`4!1J!6cSlFAYDPQf+yH1m!Lrvy6g?v6jj zyrZYIT(T*=wa}5^>bP0l+XkK19!{8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-right.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..21c91177108af1291380b17f3db3f165db44b4e2 GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zdp%toLn`LH zy|uUNkb?;8gT*&oJ=gYXERj*Uv21h5hAkgkb96s3X|hJgC;ZlJG2xE>$-uR2o^F}C z^=`M%^Cc|fl{=1A`>UCKXL5l8hM4Pl|I8E zyTkkbsV|xow7%3dfMqZLUzZh=3%+-+zp&@hlK=WjaIi>iMbi8QYwqv3$?u_j^3Pt5 z)OR{hxD-zQv0cBZT&#$d;mG;>pI0QME0!|+x?}M1k8Sggxvf!4XYNn`nvuTHW9DTa zoBH#GZ&%E1T|TMupWNen=bY|Uc?Vwo^LM4Qf|63!GW`V=a&}2Fr`>?D#Ng@b=d#Wz Gp$PyssMQw$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/meta.json b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/meta.json new file mode 100644 index 00000000000..61426e5d4be --- /dev/null +++ b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "made by avalon2855 on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/base.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ad586e2af3724c4d15d78dcd14118455e31020 GIT binary patch literal 570 zcmV-A0>%A_P)Px$^hrcPR9J=WmCtL_U>L_g9cB2Vt91WBp%6USpdna<<`A(UOhhP*dXd439S&CX z?q%S`F__?a2XE#d$kmGn$#xLxtzbk-M{N-dtw<=m9waqs)2`i$^^ngcJb7Q<@ArA~ zJb57^B4WYB{DG`!;>qK!xe9D=KZ;FSkNd^1UCpw&xjt6|fY?9S3%vMTuMJGahj;gS zJpc^DfF-|pv)QE8YGD{A?{4S0_`OXonV|lu27r{6v79cZb%f<~ zsoG6+T@4l2b(Nd9baHAQfaL2#KHR@crS0H}gRcid! z7$J@kg+g)a*m{FFT_H%QTkoLqD-D3dr|+32K6myJ5fO{vH}+`;K1BKn1ONa407*qo IM6N<$f&1BCpEP)Px&HAzH4RCt{2n(s>!aU92AibR$zjHC$3A2525M~$%~aKs`ZSVSO*K}euvB_stw z5D^3s6hc8gh`-+h9zq{MGHwc0t2twV`;M`F{QS-{hOEndYjSV$ye3XCwCa3)Hp&o{Z2WmP1z?^vW zFz=1e=~Tg>{PH)sk6v3_10az|@*sQ!05#BpW@Kqy&60Y2830C?4F(6}Ogwr>cSn$wOBZa%Q7}Iaob{ZUQvT-EWt7e?`&iA$a`VF{ z+yA^RKwOQG)Mg6&>f}=ZlG;q3ztJhrWHKx*Es;nhd2^zd=GA4?Knv-)6ac{<1+}$tLRp&*l+S%Vsf5j_ct5Nq2DEgbc9+p4I3MgCw-9g2^ zmAtV@jA(0=<-LQ%7?uirFhG0j=bzP|pl_q7+88yo&Fzh}3s6OBBM z0x)^)9p&s--TnW>F9?Dl2!bF8f*@>lBp=|EOFn?o&*!b}V)=mQZ2{p#yVK|a7;e6f5$ z`_y#V`GD31-7_CBF_%I!vUU!@tN2p+1gm)PAs=9c7&bc};LIn))rj2$$p?51q7oz@ z;6U;Lk`MUzNIsy({VYs@c;R|-+n<51VN}1egPEF59{*0 RX0reQ002ovPDHLkV1iZ0s0;uA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/inhand-left.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4d013965ecb578c95602f316eeb744c60a48e85a GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z+dN$yLn`LH zy=9np$UuVif&0;E3(jm%m>{7nvT>7P(~%R0S|cQD8hbp}#4M<0SJ9tpRmd>m#2dZR z+1nbI9IFqx^}Tmu?wk955`P$!pn%b9soSQ%x^gP)@A;D!Z#8Rwx#ZKLDPCt2ts1Z0 z`og}kLeYg=phYn4GwZaQg0JJ2Z{hG-ns)bf!c1Ai+4=%46Q6ux;1Fl{p>b&2?PFOc zdm>nt25pw&-S~D}cC?K`K!b(ke)+q9FDEk}I3|{OJxgpJ%kIy+!;JU;I2&Dm z`5zogZ#$69ST~Ek;GwnigTGaKvg8i5x`4!1J!6cSlFAYDPQf+yH1m!Lrvy6g?v6jj zyrZYIT(T*=wa}5^>bP0l+XkK19!{8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/inhand-right.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..21c91177108af1291380b17f3db3f165db44b4e2 GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zdp%toLn`LH zy|uUNkb?;8gT*&oJ=gYXERj*Uv21h5hAkgkb96s3X|hJgC;ZlJG2xE>$-uR2o^F}C z^=`M%^Cc|fl{=1A`>UCKXL5l8hM4Pl|I8E zyTkkbsV|xow7%3dfMqZLUzZh=3%+-+zp&@hlK=WjaIi>iMbi8QYwqv3$?u_j^3Pt5 z)OR{hxD-zQv0cBZT&#$d;mG;>pI0QME0!|+x?}M1k8Sggxvf!4XYNn`nvuTHW9DTa zoBH#GZ&%E1T|TMupWNen=bY|Uc?Vwo^LM4Qf|63!GW`V=a&}2Fr`>?D#Ng@b=d#Wz Gp$PyssMQw$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/meta.json b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/meta.json new file mode 100644 index 00000000000..61426e5d4be --- /dev/null +++ b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_experimental.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "made by avalon2855 on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/base.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..76a8f8204f74233ff3a1898e135429266f75d0bd GIT binary patch literal 551 zcmV+?0@(eDP)Px$;Ymb6R9J=WmcdFJQ51$h)1WCyjESHKC1N0Cp|c2qY!ZZun{M+Mh3xtOK7de) z;7urOR7!Ot1cfQIWgub^0%5S3bS5N{I$cOEI+@IL5>XfPuP*n@J^z3H!?|<8 zhYuf5j48WKDO)rb=NBeUUaeMa^E(QVvPE+>voxwLRZChYH;1yQ#yM$KQ z22yFse6_SP7WwZ#S7L4Gnj`s00Rs`^2na`F#G?t<$_E%Z1>s1H)yx{I+5`}GmKB+0 zpyY6eco7`%@-g5@J`P4!VOPDIrGp9jU;AMU2Ob(vE@0%p;4$onXW+ol7|N$dQ--b$ zjnaD%dpl`~vLdsSmPFjpH4I&wTmanO0e9a6Z>trt-rX#*U9GUYSt4a~wtk^_65x6h pmK9m-*;PIyz(fCi`0(*8@DD4()`;Hp&maH*002ovPDHLkV1h7U^nm~X literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/icon.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca64bdd630ed3da27c9e322ed387f065790fce8 GIT binary patch literal 796 zcmV+%1LOROP)Px%)=5M`RCt{2nonyQK^Vp#jUI1D257>L$U`EyeNSNFS&Z`vCvDwTcOAH z0~AULu4>qo6s-F>6l!(s1;a?hlK_CyNfCT3 z)#+|iINZN>P+0nsV+!kjPJgCQtLtS(^{2WE7ee9ZP5_ODg0J5`<4L=QBdvvGz>6JO z1=s$CHQ&Wx->WUu8x6S8L0Q$X7Yrk^6xHh{;z>9GOuJ_A@xwM;&RM*9{c7OgS^8yF zLpoW@?QND9GbZ;c_v-7H+R%FTW;LX3AaOJJ z+xmT@$cp~3DRub;A9wnjsc(1&Od7TiK;M4>J4}CoW-uP6j|!oN?rnb-e#0X zwkTjT%IoEdEJ2Z_u{&h8KJy&FdHlHgKmItM)6-k&3|{1O*h*&*Vbm?16b*O6O8ucH z!E8~`^H`DZ>A)E4|6kH42!bF8f*=TjASM~|2e8D+A8-ZM{rqLxYJWg_wvGHxCw62N z8y@$~`vVHKI-Z6+P+b>dg4{q^)$lCD;jMUnWB!0Itq#_FT#rBCKyIR}YIrmsB!9rD z`s5E_Ws*Mte2Dymy>vSkCUf%Q5qONHwe?o#IkAkAB$HY?y4t24tc^7oq z#6uuv|B5Z&d(=29&zte=V-SRZi41Ftl`H@H@A0s+@tbmT)0ro?T^}#na?W>Otiov{ zVRf%Pf{S=L4spybYWMVCxO>*U+@@wBKY?}slg1BwYrGOg#$n8jXDsPFush>eru zDRaYZpm>mEQ<#y{Rhx$H<);PioMPTlv5KehbzIGr^*Zx9I$rFoVOViY-tO>z{X}4V OF?hQAxvXBo*pAxIh5QfkK;~_p394;^x)en!fij+q&0Yhee{q4;i$U#D-TL z_e~QNVl9yI@7u1eqt5jELCe8{D`)+pjU@Uu@cTvhu^hV{nkBf1X@zzD{B!q|_AKfu zn160Unb0o>iMqNt`+Gl+zWcqJy~W)#Vw+fh^M*GW>-YbTKjMGr&mKP!MXn#2buJG> z3$`ZY80s#08yT@}Ppp1`CI7*7>7|Kzi7VVQuUYm#F7)CVr(iAJFc9+$SQel?wtpG!>C4**KB_MUMiPUktDnm{r-UW|F2KwQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/meta.json b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/meta.json new file mode 100644 index 00000000000..61426e5d4be --- /dev/null +++ b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator_syndicate.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "made by avalon2855 on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} From c07219f92cb6a4f478a16f684556aa5429b04da5 Mon Sep 17 00:00:00 2001 From: Whatstone <166147148+whatston3@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:34:21 -0400 Subject: [PATCH 03/28] Jerry Cans (#1759) * Welding fuel jerry cans * Move jerry can inhand-left sprites up a pixel * increase jerry can drink delays * Yes * cove.yml: sub console out until doubloon contrabnd --------- Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com> Co-authored-by: Dvir --- .../Objects/Specific/chemical-containers.yml | 83 ++++++++++++++++++ .../jerrycan.rsi/inhand-left-fill-1.png | Bin 0 -> 127 bytes .../jerrycan.rsi/inhand-left-fill-2.png | Bin 0 -> 176 bytes .../jerrycan.rsi/inhand-left-fill-3.png | Bin 0 -> 184 bytes .../jerrycan.rsi/inhand-left-fill-4.png | Bin 0 -> 190 bytes .../jerrycan.rsi/inhand-left-fill-5.png | Bin 0 -> 223 bytes .../Chemistry/jerrycan.rsi/inhand-left.png | Bin 0 -> 412 bytes .../jerrycan.rsi/inhand-right-fill-1.png | Bin 0 -> 134 bytes .../jerrycan.rsi/inhand-right-fill-2.png | Bin 0 -> 177 bytes .../jerrycan.rsi/inhand-right-fill-3.png | Bin 0 -> 181 bytes .../jerrycan.rsi/inhand-right-fill-4.png | Bin 0 -> 195 bytes .../jerrycan.rsi/inhand-right-fill-5.png | Bin 0 -> 223 bytes .../Chemistry/jerrycan.rsi/inhand-right.png | Bin 0 -> 417 bytes .../Chemistry/jerrycan.rsi/jerrycan.png | Bin 0 -> 307 bytes .../Chemistry/jerrycan.rsi/jerrycan1.png | Bin 0 -> 118 bytes .../Chemistry/jerrycan.rsi/jerrycan2.png | Bin 0 -> 145 bytes .../Chemistry/jerrycan.rsi/jerrycan3.png | Bin 0 -> 150 bytes .../Chemistry/jerrycan.rsi/jerrycan4.png | Bin 0 -> 166 bytes .../Chemistry/jerrycan.rsi/jerrycan5.png | Bin 0 -> 183 bytes .../Specific/Chemistry/jerrycan.rsi/meta.json | 77 ++++++++++++++++ 20 files changed, 160 insertions(+) create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-1.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-2.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-3.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-4.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-5.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-1.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-2.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-3.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-4.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-5.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan1.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan2.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan3.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan4.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan5.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/meta.json diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml new file mode 100644 index 00000000000..60691197a7d --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml @@ -0,0 +1,83 @@ +- type: entity + name: jerry can + parent: BaseItem + id: JerryCan + description: A plastic jerry can with a spill-proof nozzle. + components: + - type: SolutionContainerManager + solutions: + beaker: + maxVol: 200 + - type: Sprite + sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi + layers: + - state: jerrycan + - state: jerrycan1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - type: Item + size: Normal + sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi + - type: MixableSolution + solution: beaker + - type: RefillableSolution + solution: beaker + - type: DrainableSolution + solution: beaker + - type: ExaminableSolution + solution: beaker + - type: DrawableSolution + solution: beaker + - type: InjectableSolution + solution: beaker + - type: SolutionTransfer + canChangeTransferAmount: true + - type: SolutionItemStatus + solution: beaker + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + - type: Drink + solution: beaker + delay: 1.5 + forceFeedDelay: 5 + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: jerrycan + inHandsMaxFillLevels: 5 + inHandsFillBaseName: -fill- + - type: StaticPrice + price: 10 + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -4 + - !type:SpillBehavior { } + - !type:SpawnEntitiesBehavior + spawn: + SheetPlastic1: + min: 0 + max: 1 + transferForensics: true + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Label + - type: TrashOnSolutionEmpty + solution: beaker \ No newline at end of file diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-1.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ccf92b2de9c061a92cdb5e96c9924bed4df9da8 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Zk{fVAr*7p-rC6NpeW$t_ R&8C1PJzf1=);T3K0RWNbB=P_N literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-2.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-2.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0c35abe8d2c14fec807310cb2191f7e83255a1 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=<(@8%Ar*7p-rC5^WXQvMp+UpA z>HB<5<_ebY3l}|@;Pm(Q8H`T0I2 z6XW~$>YsyU85j;6of~E)k$k2jA}r;`s#QDR^2*%&Z}ECT$B)d3ipJ3{HGddu9&<9w VsipoEc`pFc?U@L$&|_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-3.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-3.png new file mode 100644 index 0000000000000000000000000000000000000000..837a5767596662e2e7f586b1065c6832b0cdb05a GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=^`0({Ar*7p-g4w(GUQ>spru#c za_7H~twaBW+F0HmjzbyNO8d5Fo_Mr8WiH4728M?E!brhcGm}?mugyO{W9sKqrLHgZ zBR4hN`+fNLTN$tt28J0+wwiro=Utup>_*zV*NZK;i_W*cynH+JWibK4<#I+}?s>b| dd}Zj{!TiVA`qRtPcAr7|JYD@<);T3K0RVYlMxg)z literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-4.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-4.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a6cb92ecf2b1f3849509375651299e46b091b7 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=t)4E9Ar*7p-ZJDntiZz>5b{-G z-~X8w4DKKNmV0Cxt2P>ZvE`IBlsNrapB1Q_fnmquYq!3CU3KQoZAs&s7pvVacW4;5 z%e~xM)o^v0&VsGqLc_l^f)z3(Oo@7ZMd9#zpwjujf8VsLpU*#Il0fC9yKfF`V0AgN j*s<+eRAwAT(cxZ4_1+nL1Znhi^>bP0l+XkK;{QwW literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-5.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left-fill-5.png new file mode 100644 index 0000000000000000000000000000000000000000..7d2b63563b214ff95c86e586bca3161717c1ce50 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=%RF5iLn`LHz2(StSV4f{z?LsF z)ZhHS|Ae{b(7m@SFI>7X$wk^J-QmlU)4S%~$z%fRV0cg;)5rH<@|m3euQunMllJ!A z*fQnPyyt7P*6M%eaNcz5^)tU{#&jbU#=TzO#r;7#fFNP&nVjn1jMp@lZaGsU8GUa5 zSFRP;tXy5zzuni>u|58=?(_Nk>=l&CRQE-*%B1GMci7INGxdpwx4)k<>xOHxzfJ_l Trr*@u4Km8p)z4*}Q$iB}!lYeq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2be34dd925502d40a1cd2070b4b69763808b35 GIT binary patch literal 412 zcmV;N0b~A&P)&01IDI*s#Jij$0ssI200000uoEk7=0)GcN*mjp{pG4Q?{>wSdC@l_QoHzA zX*2jJzAs-*X!;19E>{u;nM{`}tDL0M`f>NcO9Rrpl)*EhgzjuMSltT?dzFTXm;$i?0000wt*w0{;DCXY50#pSAlT<=Y@7ji%`fq>pBT644#_+)@yP;tJ<>Z#D1)tPE Z_=|^$8?Rp_QFjs~?dj_0vd$@?2>^jXD8>K) literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-2.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c33997c1a24e6c813c7a61aea0ba227478ee9e71 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=6`n4RAr*7p-m>O%QWRhfFqx*4 zDE8so{$-JezMOw0S|`+`w&LR)HYdG@-+Z!x>VcsCkqKAG)w(y;?+^c3e)gMfKhw<0 z&2_uuUvop`8MuA;ZGZ~?f0q;VZddQ)yS;7i-)E`coYJ;+R9Hm6jAU;Jk73;LTQl|Q R2MZsN9#2<4mvv4FO#pqaLAd|` literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-3.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/inhand-right-fill-3.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc4c2a11c39af0a797b670fcee3827caabbf614 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=HJ&bxAr*7p-gM+*GUQ>spru#c za__%Saf6KF?_EM7?5B8Mh1BL>7P$23MG6gTrJ6ruKwxc6@ z;hf^{|1NHOX1m|~+>c$nE4JQSyZHCEJz(Vw49Tn7k8B(xEjiR;Z~6Q@2z`4dKefEcrKl?Ea+6yo7(b(a~B>* z_g@oNN-F&%C1|^;W=i7fv)`GOlD_xWI~TK`Sy%M$UQENB&#%tEkL@X!WY|{06zv@x Tdt{34B#=p-u6{1-oD!M5uaDwM*W%ZNYT8lF(0Ox?I(hvSD%HZQO0F1xT_&`lDQutT-&$k(4=i&1)^d ze`hU#>nC+;u6bLw1=WLOGVEH{pW3D61poj500000061UO&dbxw`$qfutBu~6CiZt~ zj+Q@uFkYC!cws8f%slUz&`%p}MTLIas(V)9+VzFkXMf##e!Rc=e5ka9ez%T1R-vCt zq_lJ%Ze>!#e$E9*vSPdQ+P)G|S|-Ehix4R-oz9)afhTV@?6>!PK#~;~Gc@rR=P#gi zDf0q0&IO1AZ|k3r15akNyE6h-frDIAVXFBuMjB%}s8$(PLGm+&)u0;VBI1P-?;hQnc*83}1{Pm+(gp_6L6|j2V{(-3eULRUMihnb zSsfz!qA`)`wK#&%HD~`B#j(ACq-eP&WX!QBMZhzW6zz8mObMz?4=6;iHLEtDI`wJ; zp=(a&%{v#NbPahTq8qZAfw>8nZeX+5kY(z1)Mzw6$s6U`UMjlh(v$!I002ovPDHLk FV1hF6g0TPq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan1.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan1.png new file mode 100644 index 0000000000000000000000000000000000000000..732f7c9d76bffd6049f46fddd8efb2a52473d911 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzTTd6qkcif|=Qi>(7;rEhj(X@RkAUavpSH>{0#*IV^G&)P9TakP^Um*Qa{kKkzu0z{k)eQLnie1Psw+a) PKqU;Gu6{1-oD!MqMJ;d2G`a#lE-!ig+sE;!zKRl1?T_8b&kJ3i1nvI)_}-bUwX3}Am(OLp^}#Hs s%&w?TRIkW?f%(jd*R^Lv#xgR*JpV4v+4_e)8mN!K)78&qol`;+03O#jIRF3v literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan3.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan3.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ac4e2610437d25b8a5627bd1f2c197f82162de GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJSWg$nkcif|mkjwD3^-a7P5NXW z-u<5<(-^BRE_^#ES?16FmAPKt48{x$4f~_DrW+UAUl&ZA^d|59JLmlMQ(5k9u;uLQ x$QRl%ZFl*-pghOd!k$l8`S2&6e<8qhfbpY(%x+l$UM8SL44$rjF6*2UngEKqGgbfq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan4.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan4.png new file mode 100644 index 0000000000000000000000000000000000000000..23edf15373c91b1ed8dca76bc83bd0af9f38e0b9 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJTu&Frkcif|m%aHK6nI!JT-@5nXd+KXLgZG4Ee>C<{Dypcj_no3gN%3E-vh!cB>u8R#~+c PXfcDQtDnm{r-UW|HP}5u literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan5.png b/Resources/Textures/_NF/Objects/Specific/Chemistry/jerrycan.rsi/jerrycan5.png new file mode 100644 index 0000000000000000000000000000000000000000..380b60cb92d91049c56afa89dbb88b345527a47c GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJI!_nJkcif|Qw;eIC~&ye&+e0J z{5`)%dB^Rwp0m3e-ae_HZ0I5 Date: Sat, 27 Jun 2026 11:18:07 -0500 Subject: [PATCH 04/28] Unchain Nanite Applicator#3104 --- .../Tools/Systems/SharedToolSystem.Welder.cs | 13 ++++++ .../tools/components/welder-component.ftl | 3 +- .../VendingMachines/Inventories/engivend.yml | 1 + .../Entities/Structures/Windows/window.yml | 3 ++ .../Entities/Structures/base_structure.yml | 3 ++ .../Objects/Specific/chemical-containers.yml | 2 +- .../Objects/Specific/chemical-containers.yml | 44 ++++++++++++++----- 7 files changed, 55 insertions(+), 14 deletions(-) diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs b/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs index 3486675feef..31434127b81 100644 --- a/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs +++ b/Content.Shared/Tools/Systems/SharedToolSystem.Welder.cs @@ -134,6 +134,19 @@ public abstract partial class SharedToolSystem && _whitelist.IsWhitelistPass(tank.FuelWhitelist, entity.Owner) //imp && SolutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.FuelSolutionName, out var solutionComp, out var welderSolution)) { + // BEGIN Monolith - Nanite Applicators + foreach (var reagent in targetSolution.Contents) + { + if (reagent.Reagent.Prototype != entity.Comp.FuelReagent.Id) + { + _popup.PopupClient( + Loc.GetString("welder-component-incompatible-fuel", ("owner", args.Target)), entity, args.User); + + return; + } + } + // END Monolith + var trans = FixedPoint2.Min(welderSolution.AvailableVolume, targetSolution.Volume); if (trans > 0) { diff --git a/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl b/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl index 5a340dc428a..f44db8d965f 100644 --- a/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl +++ b/Resources/Locale/en-US/_Mono/tools/components/welder-component.ftl @@ -1 +1,2 @@ -welder-component-on-examine-less-detailed-message = Fuel: [color={$colorName}]{$fuelLeft}/{$fuelCapacity}[/color] \ No newline at end of file +welder-component-on-examine-less-detailed-message = Fuel: [color={$colorName}]{$fuelLeft}/{$fuelCapacity}[/color] +welder-component-incompatible-fuel = { $owner } contains incorrect or contaminated fuel! \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml index 426700db366..4b7ee44819b 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/engivend.yml @@ -9,6 +9,7 @@ Multitool: 4 NetworkConfigurator: 5 NaniteApplicator: 4 # Monolith - Nanite Applicator + JerryCanWeldingFuel: 2 # New Frontier - Jerry Cans JerryCanNaniteFuel: 2 # Monolith - Nanite Applicator PowerCellMedium: 5 ClothingHandsGlovesColorYellow: 6 diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 00ff39d766e..f5ce21f8aa6 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -171,6 +171,9 @@ layer: - GlassLayer - type: Repairable + qualities: # Monolith - Added qualities to override base + - Welding + - Applicating - type: Damageable damageContainer: StructuralInorganic damageModifierSet: Glass diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml index 69207334af2..1c2a6ad0ed1 100644 --- a/Resources/Prototypes/Entities/Structures/base_structure.yml +++ b/Resources/Prototypes/Entities/Structures/base_structure.yml @@ -30,6 +30,9 @@ - type: ExaminableDamage messages: BaseStructureMessages # END DeltaV + - type: Repairable # Monolith - Nanite Applicator + qualities: + - Applicating - type: entity # This means that it's not anchored on spawn. diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml index 21a9d3686ce..c2888e57f73 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Specific/chemical-containers.yml @@ -7,7 +7,7 @@ currentLabel: reagent-name-nanite-fuel - type: SolutionContainerManager solutions: - beaker: + tank: reagents: - ReagentId: NaniteFuel Quantity: 200 \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml index 60691197a7d..482f5ccebba 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml @@ -2,11 +2,12 @@ name: jerry can parent: BaseItem id: JerryCan + suffix: empty description: A plastic jerry can with a spill-proof nozzle. components: - type: SolutionContainerManager solutions: - beaker: + tank: maxVol: 200 - type: Sprite sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi @@ -19,28 +20,31 @@ size: Normal sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi - type: MixableSolution - solution: beaker + solution: tank - type: RefillableSolution - solution: beaker + solution: tank - type: DrainableSolution - solution: beaker + solution: tank - type: ExaminableSolution - solution: beaker + solution: tank - type: DrawableSolution - solution: beaker + solution: tank - type: InjectableSolution - solution: beaker + solution: tank - type: SolutionTransfer canChangeTransferAmount: true - type: SolutionItemStatus - solution: beaker + solution: tank + - type: ReagentTank + tankType: Fuel - type: UserInterface interfaces: enum.TransferAmountUiKey.Key: type: TransferAmountBoundUserInterface - - type: Drink - solution: beaker + - type: Edible + solution: tank delay: 1.5 + destroyOnEmpty: false forceFeedDelay: 5 - type: Appearance - type: SolutionContainerVisuals @@ -69,7 +73,8 @@ collection: MetalBreak params: volume: -4 - - !type:SpillBehavior { } + - !type:SpillBehavior + solution: tank - !type:SpawnEntitiesBehavior spawn: SheetPlastic1: @@ -80,4 +85,19 @@ acts: [ "Destruction" ] - type: Label - type: TrashOnSolutionEmpty - solution: beaker \ No newline at end of file + solution: tank + +- type: entity + parent: JerryCan + suffix: welding fuel + id: JerryCanWeldingFuel +# categories: [ HideSpawnMenu ] # Frontier + components: + - type: Label + currentLabel: reagent-name-welding-fuel + - type: SolutionContainerManager + solutions: + tank: + reagents: + - ReagentId: WeldingFuel + Quantity: 200 \ No newline at end of file From c8d9eac1058e0bf944a8faf7e4b4fb818b4cb9e0 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 27 Jun 2026 11:21:12 -0500 Subject: [PATCH 05/28] Directional Window Fix --- Resources/Prototypes/Entities/Structures/Windows/window.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index f5ce21f8aa6..1f11dc16100 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -45,6 +45,9 @@ - type: ExaminableDamage messages: WindowMessages - type: Repairable + qualities: # Monolith - Nanite Applicators + - Welding + - Applicating - type: RCDDeconstructable cost: 6 delay: 4 From 41d0fd7b5307cc4f1ec7636eaf08eeb6f5beb9ae Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 27 Jun 2026 12:17:25 -0500 Subject: [PATCH 06/28] Sandbox and yaml fixes. --- Content.Shared/Repairable/RepairableComponent.cs | 2 +- Resources/Prototypes/Catalog/Fills/Items/belt.yml | 1 + .../Objects/Weapons/Guns/Turrets/turrets_ballistic.yml | 2 +- Resources/Prototypes/Entities/Structures/Walls/walls.yml | 2 +- Resources/Prototypes/Entities/Structures/Windows/window.yml | 4 ++-- Resources/Prototypes/Entities/Structures/base_structure.yml | 2 +- Resources/Prototypes/_Mono/Reagents/technological.yml | 1 - 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Content.Shared/Repairable/RepairableComponent.cs b/Content.Shared/Repairable/RepairableComponent.cs index 28e2cf4fe3c..dbb4daa9dc5 100644 --- a/Content.Shared/Repairable/RepairableComponent.cs +++ b/Content.Shared/Repairable/RepairableComponent.cs @@ -42,7 +42,7 @@ public sealed partial class RepairableComponent : Component /// Tool quality necessary to repair this device. /// [DataField, AutoNetworkedField] - public List> QualityNeeded = ["Welding", "Applicating"]; // Monolith - Nanite Applicator + public ProtoId[] QualityNeeded = ["Welding", "Applicating"]; // Monolith - Nanite Applicator ///

/// The base tool use delay (seconds). This will be modified by the tool's quality diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index cc52531d243..7802d50ae02 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -46,6 +46,7 @@ - id: HolofanProjector - id: GasAnalyzer - id: trayScanner + - id: NaniteApplicatorExperimental # DeltaV - Nanite Applicators - type: entityTable id: BeltSecurityEntityTable diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml index 8953587ae36..9024e7d5646 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml @@ -45,7 +45,7 @@ graph: WeaponTurretSyndicateDisposable node: disposableTurret - type: Repairable - qualities: # Monolith - Converted to Array + qualityNeeded: # Monolith - Converted to Array - Anchoring doAfterDelay: 3 - type: TriggerOnEmptyGunshot diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 6499253d08b..245bbb4726b 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -56,7 +56,7 @@ - type: BlockWeather - type: SunShadowCast - type: Repairable # Monolith - Nanite Applicator - qualities: + qualityNeeded: - Applicating - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 1f11dc16100..68a089a8a9e 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -45,7 +45,7 @@ - type: ExaminableDamage messages: WindowMessages - type: Repairable - qualities: # Monolith - Nanite Applicators + qualityNeeded: # Monolith - Nanite Applicators - Welding - Applicating - type: RCDDeconstructable @@ -174,7 +174,7 @@ layer: - GlassLayer - type: Repairable - qualities: # Monolith - Added qualities to override base + qualityNeeded: # Monolith - Added qualities to override base - Welding - Applicating - type: Damageable diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml index 1c2a6ad0ed1..4b4dff15141 100644 --- a/Resources/Prototypes/Entities/Structures/base_structure.yml +++ b/Resources/Prototypes/Entities/Structures/base_structure.yml @@ -31,7 +31,7 @@ messages: BaseStructureMessages # END DeltaV - type: Repairable # Monolith - Nanite Applicator - qualities: + qualityNeeded: - Applicating - type: entity diff --git a/Resources/Prototypes/_Mono/Reagents/technological.yml b/Resources/Prototypes/_Mono/Reagents/technological.yml index 459b6714dcf..6636172b8be 100644 --- a/Resources/Prototypes/_Mono/Reagents/technological.yml +++ b/Resources/Prototypes/_Mono/Reagents/technological.yml @@ -12,7 +12,6 @@ boilingPoint: 8000.6 meltingPoint: 659.7 friction: 0.4 - flammability: 2 metabolisms: Poison: effects: From e0f4a497d08880bd1b4f215db0fd6408ce2e4bc4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 17:20:25 +0000 Subject: [PATCH 07/28] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- Resources/Locale/en-US/_DV/damage-examine/structures.ftl | 2 +- Resources/Prototypes/_DV/Damage/examine_messages.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Locale/en-US/_DV/damage-examine/structures.ftl b/Resources/Locale/en-US/_DV/damage-examine/structures.ftl index 1d01a5eb7d1..6a0ff954327 100644 --- a/Resources/Locale/en-US/_DV/damage-examine/structures.ftl +++ b/Resources/Locale/en-US/_DV/damage-examine/structures.ftl @@ -4,4 +4,4 @@ comp-structure-damaged-2 = It has a few scratches. comp-structure-damaged-3 = It has a few large dents. comp-structure-damaged-4 = [color=yellow]It has several big cracks running along its surface.[/color] comp-structure-damaged-5 = [color=orange]It has deep cracks across multiple layers.[/color] -comp-structure-damaged-6 = [color=red]It's extremely damaged and on the verge of falling apart.[/color] \ No newline at end of file +comp-structure-damaged-6 = [color=red]It's extremely damaged and on the verge of falling apart.[/color] diff --git a/Resources/Prototypes/_DV/Damage/examine_messages.yml b/Resources/Prototypes/_DV/Damage/examine_messages.yml index de155c7b353..49c55e5a37b 100644 --- a/Resources/Prototypes/_DV/Damage/examine_messages.yml +++ b/Resources/Prototypes/_DV/Damage/examine_messages.yml @@ -2,4 +2,4 @@ id: BaseStructureMessages values: prefix: comp-structure-damaged- - count: 6 \ No newline at end of file + count: 6 From e309d3ea3ae4e1fe241a4899a60a9f2b4ab76611 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 27 Jun 2026 15:12:26 -0500 Subject: [PATCH 08/28] Add repairable scaling based on the damage the repair target has. --- Content.Shared/Repairable/RepairableSystem.cs | 12 ++++++++++++ .../Prototypes/Entities/Structures/Walls/walls.yml | 3 --- .../Entities/Structures/Windows/window.yml | 2 ++ .../Entities/Structures/base_structure.yml | 6 +++--- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Content.Shared/Repairable/RepairableSystem.cs b/Content.Shared/Repairable/RepairableSystem.cs index 05bd2ac54e9..a7e377d7239 100644 --- a/Content.Shared/Repairable/RepairableSystem.cs +++ b/Content.Shared/Repairable/RepairableSystem.cs @@ -116,6 +116,18 @@ public sealed partial class RepairableSystem : EntitySystem delay *= ent.Comp.SelfRepairPenalty; } + // BEGIN DeltaV - Scale Repair Time with Damage + // If its a self-repair, ignore it since they've already been penalized. + if (args.User != args.Target && TryComp(args.Target, out var damageComp)) + { + var totalDamage = damageComp.Damage.GetTotal(); + // TODO: Scale with the destructible threshold if DestructibleSystem ever gets more prediction added. + // For now, just scale up the delay per 100 damage, or reduce the delay if its less. + delay *= Math.Clamp((float)totalDamage / 100.0f, 0.5f, 3.0f); + } + + // END DeltaV + // BEGIN Monolith - Nanite Applicators if (!TryComp(args.Used, out var tool)) return; diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 245bbb4726b..b62fdc75717 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -55,9 +55,6 @@ resistance: 2 - type: BlockWeather - type: SunShadowCast - - type: Repairable # Monolith - Nanite Applicator - qualityNeeded: - - Applicating - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 68a089a8a9e..01a9f5a2849 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -45,6 +45,7 @@ - type: ExaminableDamage messages: WindowMessages - type: Repairable + doAfterDelay: 2 # DeltaV qualityNeeded: # Monolith - Nanite Applicators - Welding - Applicating @@ -174,6 +175,7 @@ layer: - GlassLayer - type: Repairable + doAfterDelay: 2 # DeltaV qualityNeeded: # Monolith - Added qualities to override base - Welding - Applicating diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml index 4b4dff15141..3e9f7cbabb7 100644 --- a/Resources/Prototypes/Entities/Structures/base_structure.yml +++ b/Resources/Prototypes/Entities/Structures/base_structure.yml @@ -26,11 +26,11 @@ - type: Tag tags: - Structure - # BEGIN DeltaV - - type: ExaminableDamage + + - type: ExaminableDamage # DeltaV messages: BaseStructureMessages - # END DeltaV - type: Repairable # Monolith - Nanite Applicator + doAfterDelay: 3 qualityNeeded: - Applicating From 03ca4ec3e12fdc53be47069dc31ff613d274abec Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 28 Jun 2026 09:41:13 -0500 Subject: [PATCH 09/28] Fixed material arbitrage --- .../_Mono/Entities/Objects/Tools/nanite_applicator.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml index cf7ed3ab360..abff55be626 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml @@ -40,7 +40,7 @@ materialComposition: Steel: 100 - type: StaticPrice - price: 11 + price: 100 - type: GuideHelp guides: - Construction @@ -61,6 +61,8 @@ reagents: - ReagentId: NaniteFuel Quantity: 1 + - type: StaticPrice + price: 200 - type: entity name: advanced nanite applicator @@ -85,3 +87,5 @@ reagents: - ReagentId: NaniteFuel Quantity: 3 + - type: StaticPrice + price: 400 \ No newline at end of file From 49d6ced9d3e97efa525cf1563ae8b3ce8a0384d4 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 28 Jun 2026 09:56:56 -0500 Subject: [PATCH 10/28] Fixed arbitrage --- .../_Mono/Entities/Objects/Tools/nanite_applicator.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml index abff55be626..339f87a1b85 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml @@ -44,6 +44,8 @@ - type: GuideHelp guides: - Construction + - type: ESSparkOnItemToggle # Add some flare~ + - type: entity name: experimental nanite applicator From c5026279d2ded064131fee3dbb098e9cf322625d Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 28 Jun 2026 09:57:18 -0500 Subject: [PATCH 11/28] Added to SRN lathe. Increased material cost to be on part with experimental welder. --- .../Prototypes/_DV/Entities/Structures/Machines/lathe.yml | 1 + Resources/Prototypes/_DV/Recipes/Lathes/Packs/robotics.yml | 5 ----- Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml | 5 +++++ Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml | 6 ++++-- 4 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml diff --git a/Resources/Prototypes/_DV/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/_DV/Entities/Structures/Machines/lathe.yml index 38a01ce0713..3c8f40273e8 100644 --- a/Resources/Prototypes/_DV/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/_DV/Entities/Structures/Machines/lathe.yml @@ -13,6 +13,7 @@ - BorgModulesStatic - BorgLimbsStatic - BorgModulesResearched + - RoboticsEmagStatic - type: Machine board: SyndieExosuitFabricatorMachineCircuitboard diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/robotics.yml b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/robotics.yml index fed599a1565..79b6a0d30d0 100644 --- a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/robotics.yml +++ b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/robotics.yml @@ -1,10 +1,5 @@ ## Static -- type: latheRecipePack - id: RoboticsEmagStatic - recipes: - - IdChipSyndie - - type: latheRecipePack id: BorgModulesSyndicateStatic recipes: diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml new file mode 100644 index 00000000000..53a9911e4f5 --- /dev/null +++ b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml @@ -0,0 +1,5 @@ +- type: latheRecipePack + id: RoboticsEmagStatic + recipes: + - IdChipSyndie + - NaniteApplicatorSyndicate \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml b/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml index d8b73045a56..d923576cd10 100644 --- a/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml +++ b/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml @@ -3,11 +3,13 @@ id: ExperimentalNaniteApplicator result: NaniteApplicatorExperimental materials: - Steel: 500 + Steel: 800 + Plasma: 200 - type: latheRecipe parent: BaseToolRecipe id: NaniteApplicatorSyndicate result: NaniteApplicatorSyndicate materials: - Steel: 500 + Steel: 800 + Plasma: 200 From 8d2668c12ac4202da47eee0002d3b4d9613fb89d Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 28 Jun 2026 10:05:15 -0500 Subject: [PATCH 12/28] Added regular version to engi lathe. --- .../Prototypes/_DV/Recipes/Lathes/Packs/engineering.yml | 1 + Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/engineering.yml b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/engineering.yml index 8b86cefae7c..cece03e392d 100644 --- a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/engineering.yml +++ b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/engineering.yml @@ -5,6 +5,7 @@ recipes: - HolotapeProjector - SheetPlasteel1Engineering + - NaniteApplicator ## Dynamic diff --git a/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml b/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml index d923576cd10..cef72e463ec 100644 --- a/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml +++ b/Resources/Prototypes/_Mono/Recipes/Lathes/tools.yml @@ -1,3 +1,10 @@ +- type: latheRecipe + parent: BaseToolRecipe + id: NaniteApplicator + result: NaniteApplicator + materials: + Steel: 400 + - type: latheRecipe parent: BaseToolRecipe id: ExperimentalNaniteApplicator From e45565fb8130e792cf89f9d27c19a6059ea5c3a3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 28 Jun 2026 15:05:59 +0000 Subject: [PATCH 13/28] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml index 53a9911e4f5..38f202f1926 100644 --- a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml +++ b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/syndicate.yml @@ -2,4 +2,4 @@ id: RoboticsEmagStatic recipes: - IdChipSyndie - - NaniteApplicatorSyndicate \ No newline at end of file + - NaniteApplicatorSyndicate From aa22ff3a5aca78613421c4e2ab59b040fb4f5670 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 28 Jun 2026 10:20:06 -0500 Subject: [PATCH 14/28] Slight sprite color edit to the base one so it doesn't look like the experimental --- .../Tools/nanite_applicator.rsi/base.png | Bin 570 -> 570 bytes .../Tools/nanite_applicator.rsi/icon.png | Bin 891 -> 899 bytes .../Tools/nanite_applicator.rsi/inhand-left.png | Bin 460 -> 468 bytes .../nanite_applicator.rsi/inhand-right.png | Bin 467 -> 466 bytes .../Tools/nanite_applicator.rsi/meta.json | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/base.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/base.png index d5ad586e2af3724c4d15d78dcd14118455e31020..b7f5bbacac64512d2d5209458dd1b11acb3a9ac4 100644 GIT binary patch delta 523 zcmV+m0`&d51iA!}I)6cH(_k3Ke;s4!>?$2)*Fqt9ut7s1mxeL1ASfaW$h^o7!wm-; zegKbN9D@m-JnXQW`vSdsQIKqcP;UhzQZiV>WU&(of!BkiBxzc*wO9}NUBZ(mdH?_C zdEY02l$4Y)lL-d0qKT(Z)o<*WCYz?k($Zb__v^Io-KK6F08n_d zN1-ss_RbciqJ+J++|{@V;`74?8GwnPxMf+mu7|EK^6plZ%O`ErT$bjS1^`l7#&9~+ zjROp)!=`DmuzyhL5npXPxUPrs=>uw|3PA4lE+6mTVYThxixb^~{LCyrex3~7c7U_a zDQcyPZ6D*h9?r%}DDRu-G0-|PM`EBBR8R(gU{LJjRgr=q@ab2(PwRL2M z1f%p#$ciS;I;ZC{b0vF~Xcq^G6E_7x{5>Sl%8h1&B7dOAn3okzBo+3VNbpREe&QD; zb|L?x6s>+xRl!4?w0bVmfl)Jd1F;9`U$vkAvI8Ya?vB#i=YRhJk6y@$V|97R36T{| z)M~mAhX`?qsMYkuv9X6pAQ2+gt-sL9D-D3%XYWZ84_$pqO3FC+17)fR39eezsQ>@~ N07*qoLaAczN=I!G46R5gydESqY16LViuI7sB|Ldw-tYH$ z@;rGVA|hhJ#QcG*XyVD^t+@(pZ$FAnT95n1uU*Zuxw$@91Al|ui6@S-tm7BM8a%vucFd!7$J@kg+g)a*m{FFT_H%QTkoLqD-D3dr|+32K6myJ5fO{vH}+`;K1BKn1ONa4 N07*qoLN`+ ztTU%uiz*J#(Gg^LWGLsmg=oYURJrtR1xO^;00@V#@T~1D0IIJR%`mB3*73J0_zxZ+ z`s+85MV-5PjBD4rnV6Vi<>Gl}v^fC!;|7zHQ!Fe+X=(D480gIj;_KDRw(k3%e$9Fu z`O4O{YV`sw5& zi#j)sA4NIUjAocb7WGW>Y5n}<^Yv$YZt?h7y-h!-1Apoc*Yo4&x@$WX!lt=_+7={{ zSRDmhYx3pNui9!deGieIz%dXDsV8R##Wp^H_V0;_wr7eU{s5;S3PJnmMx5=2+1EXdXPtru_JKAA|Y5r zAc#RopkyT^1wjxI1Q8TMK|P4T2N6O01KcwSq6cvr6!Y1j6OolELdT34!u6o;y4`Mb zW6KNoc|FHPC`)WNBT{3HB%icWfv9 z<0q+kopC+G;9#6YBFWf}=ZlG;q3ztJhrWHKx*Es;nhd2^zd=GA4? zKnv-)6ac{<1PX(_?k4aNg!`%ywsv#+n;G-ol*StL>{s3W|HLl{f`1?gf*=TjAZ&FcAK;WrK7i8C=dJBx z`GDtb0RZA^g!ZXv&wRk2N7z;61CAf;;_ZS?dM;(>0Gxg(olm%>M$G#i2g=U}XhxPB zJ&L{k>g!5DKEPdkv3x-L)O6YTfYt@wGaoQ9mqIhLb`HR+_)_@VYs@c;R| h-+n<51VN}1egPEF59{*0X0reQ002ovPDHLkV1m>`qyhi{ diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-left.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-left.png index 4d013965ecb578c95602f316eeb744c60a48e85a..eccfd87ab307ac993693b792726b3ba4f1168474 100644 GIT binary patch delta 429 zcmV;e0aE_V1JnbMF@KIpL_t(|obB4Jj>13`1>nObCcs*F{4O{H$t=loo*jxk$>YbUtl*JTy28Zso4z& zILsF)iyWP9U-I$*=?1`QLVLZzb~66930kLSI~k+B-ZWM`BpTo@-Sg?#0C-%obM`IbNR6@869gW$bvT+y8W4b*_*^ z9)a`e*eZ)0)qlI@7HL;WwRo3pnpE-P>|4Noy5m`v834$#?8Cpkdwdgb0ddvh>v)*r ziHL}Zh=_=Yh=_>(fhP9%L;Xh3tudcGfRB(Ff}jn!H4oq;bcP`K=4jnKfDefbLC^-& z%>($jmLc%jgM?H*09Wz=KBO`Pjbwz}Jb;h8%MkpO2PW`wR~Z7|XYp2lvUnmQqWkg+ XJv$`+pJUef00000NkvXXu0mjftXj&a delta 421 zcmV;W0b2gl1Iz=EF@J_hL_t(|obB2%Zo)7a1>i@;mY~eAAdna%6tS`~g2c$eg;*JU zfs9D3T%dagBrlaZaR89W>@Ibiwt=L^e^lD{jgf8a-%c3(03sqHA|fIpA^}RJMzZ}a z9wZ0v4`QRWHizk?@}iVV&0#u$*4p$3v3Maw3lM}6X7dG>*?$r1UZ=DON~LDq>tLB3 zF`F+CgpuU*002`Gl9}eSgEYv(Ev1>SNnU%~O=!(XTsecO1aCuYJCK9sdI2ijH-eKeKouA|fIp zA|fIpBBFnwj{ALIzv1mFVFm5V1LBDycHnp+`0A;9(G P00000NkvXXu0mjf$nnM{ diff --git a/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-right.png b/Resources/Textures/_Mono/Objects/Tools/nanite_applicator.rsi/inhand-right.png index 21c91177108af1291380b17f3db3f165db44b4e2..b027c8445a5b31fc454174385645961a8dbde471 100644 GIT binary patch delta 427 zcmV;c0aX6e1JVPKF@KCnL_t(|obB2@u7W@m1>h@*6-0VFNhl|V*wR_rSh)t{5^St( zE!Y61rCYFng$d0|UgZWzpq|$_WJEw1eiU-P8pk=;VJz+?0ssI200000AR^E6`KR~L zq@p}p*2DMJl9=Oi%VxbUgk>|%9GBl$%iJP76~Oa+ewt0`vVY!C9EGGCW@npigKn4< zMLVnMFtn;CVhjF6K1e9|jR#5Jed84|H72Uy7iS^vh4SJ30LM_H!MPbd)}n zp%Uh}$zC7(KZ_zvw!4>;kOUMD>4qsjm@FtQ)(csCW{%56zBmf$@Aoz$BGS^~(+kB> z*sJjL2p&fvrGHPYoHM!LgCKai?Zxdsq%1w}IpUq!k9{zl%+LL?J=Zd_OW_pdGj002Ng{R5z+ VB>tb5Xd(ar002ovPDHLkV1mYI!aM)~ delta 428 zcmV;d0aO0c1JeVLF@KFoL_t(|obB4Zio!q?1>mFDMM~08u0&rbVZbt*GgMTv?%N2~SSxu!SF}fxe z%N5qa8QakyGK4Sy*Y)IPI>CO}e~IQ56~cbl$7VXY384-A-uXkXqc^`hzQ47A@1rDa zrxA~Xu${2hpZa$yghQ_reG=5O64j`F!KR3+S=f%$`&93@#+Hyq*Fk{wJc6Qm=J2Pz1dX{Y0pfaQBO^(7e*5|1TmUA|fIp zA|fIpq9&+fpP;PYxY-X#Bgy=|2xaapn&vEUjorR~8dHx>b-X+dL-g-+>)%^XbLm(m|YNjus Wcpg4t9Lq)k0000 Date: Mon, 29 Jun 2026 11:39:32 -0500 Subject: [PATCH 15/28] Fixed some yaml that wasn't inheriting right. --- .../Entities/Structures/Machines/vending_machines.yml | 3 +++ .../Prototypes/Entities/Structures/Windows/plastitanium.yml | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index 83887f3e13e..fcd18bca5d0 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -56,6 +56,9 @@ - !type:EjectVendorItems - type: Repairable doAfterDelay: 8 + qualityNeeded: # DeltaV - Nanite Applicators + - Welding + - Applicating - type: ActivatableUI key: enum.VendingMachineUiKey.Key - type: ActivatableUIRequiresPower diff --git a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml index 295e9d59cea..8b96e4a1e14 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml @@ -120,6 +120,9 @@ - type: Repairable fuelCost: 15 doAfterDelay: 3 + qualityNeeded: # DeltaV - Nanite Applicators + - Welding + - Applicating - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass @@ -215,6 +218,9 @@ - type: Repairable fuelCost: 15 doAfterDelay: 3 + qualityNeeded: # DeltaV - Nanite Applicators + - Welding + - Applicating - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass From dffb1917d03563b1e72c3a2d0a07c3bbe9326727 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 29 Jun 2026 11:42:17 -0500 Subject: [PATCH 16/28] Long overdue experimental nerf --- Resources/Prototypes/Entities/Objects/Tools/welders.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml index 4c0c550c5e9..07c4136e0c5 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml @@ -162,8 +162,8 @@ Welder: reagents: - ReagentId: WeldingFuel - Quantity: 1000 - maxVol: 1000 + Quantity: 100 # DeltaV - Experimental Welder Nerf + maxVol: 100 # DeltaV - Experimental Welder Nerf - type: PointLight enabled: false radius: 1.5 From 25dad0fb63e98528d10d97f4550272917289f305 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 29 Jun 2026 11:45:51 -0500 Subject: [PATCH 17/28] Regen nerf --- Resources/Prototypes/Entities/Objects/Tools/welders.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml index 07c4136e0c5..21238b06e0c 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml @@ -174,6 +174,7 @@ reagents: - ReagentId: WeldingFuel Quantity: 1 + duration: 2 # DeltaV - Experimental Welder Nerf - Loses fuel while active - type: RequiresEyeProtection statusEffectTime: 5 # less harmful; sunglasses can block it From ca0b124f2b8dcaa771e655767c253406916b6627 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Tue, 30 Jun 2026 09:41:53 -0500 Subject: [PATCH 18/28] Type change and increased exp welder's capacity a bit --- Content.Shared/Repairable/RepairableComponent.cs | 2 +- Resources/Prototypes/Entities/Objects/Tools/welders.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Content.Shared/Repairable/RepairableComponent.cs b/Content.Shared/Repairable/RepairableComponent.cs index dbb4daa9dc5..c16da0c7360 100644 --- a/Content.Shared/Repairable/RepairableComponent.cs +++ b/Content.Shared/Repairable/RepairableComponent.cs @@ -42,7 +42,7 @@ public sealed partial class RepairableComponent : Component /// Tool quality necessary to repair this device. /// [DataField, AutoNetworkedField] - public ProtoId[] QualityNeeded = ["Welding", "Applicating"]; // Monolith - Nanite Applicator + public List> QualityNeeded = new() { "Welding", "Applicating" }; // Monolith - Nanite Applicator /// /// The base tool use delay (seconds). This will be modified by the tool's quality diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml index 21238b06e0c..707cd34597e 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml @@ -162,8 +162,8 @@ Welder: reagents: - ReagentId: WeldingFuel - Quantity: 100 # DeltaV - Experimental Welder Nerf - maxVol: 100 # DeltaV - Experimental Welder Nerf + Quantity: 200 # DeltaV - Experimental Welder Nerf + maxVol: 200 # DeltaV - Experimental Welder Nerf - type: PointLight enabled: false radius: 1.5 From 0f09e24ccd606ea35e22747cafc19ec2e6fdf846 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 3 Jul 2026 11:24:51 -0500 Subject: [PATCH 19/28] Fixed damage comp access. --- Content.Shared/Repairable/RepairableSystem.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Content.Shared/Repairable/RepairableSystem.cs b/Content.Shared/Repairable/RepairableSystem.cs index a7e377d7239..45f126f7f98 100644 --- a/Content.Shared/Repairable/RepairableSystem.cs +++ b/Content.Shared/Repairable/RepairableSystem.cs @@ -120,10 +120,9 @@ public sealed partial class RepairableSystem : EntitySystem // If its a self-repair, ignore it since they've already been penalized. if (args.User != args.Target && TryComp(args.Target, out var damageComp)) { - var totalDamage = damageComp.Damage.GetTotal(); // TODO: Scale with the destructible threshold if DestructibleSystem ever gets more prediction added. // For now, just scale up the delay per 100 damage, or reduce the delay if its less. - delay *= Math.Clamp((float)totalDamage / 100.0f, 0.5f, 3.0f); + delay *= Math.Clamp((float)damageComp.TotalDamage / 100.0f, 0.5f, 3.0f); } // END DeltaV From 6e97947aa812b339e1f61c7b3f688f1f6ab18a75 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 4 Jul 2026 10:06:03 -0500 Subject: [PATCH 20/28] Actually fix damage access. --- Content.Shared/Repairable/RepairableSystem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Repairable/RepairableSystem.cs b/Content.Shared/Repairable/RepairableSystem.cs index 45f126f7f98..a0ba9c8c6c7 100644 --- a/Content.Shared/Repairable/RepairableSystem.cs +++ b/Content.Shared/Repairable/RepairableSystem.cs @@ -122,9 +122,9 @@ public sealed partial class RepairableSystem : EntitySystem { // TODO: Scale with the destructible threshold if DestructibleSystem ever gets more prediction added. // For now, just scale up the delay per 100 damage, or reduce the delay if its less. - delay *= Math.Clamp((float)damageComp.TotalDamage / 100.0f, 0.5f, 3.0f); + var totalDamage = _damageableSystem.GetDamage((args.Target, damageComp)).GetTotal(); + delay *= Math.Clamp((float)totalDamage / 100.0f, 0.5f, 3.0f); } - // END DeltaV // BEGIN Monolith - Nanite Applicators From 818fe4aa013eba53fcab3f9db34e93c9ae7dbcd7 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 5 Jul 2026 10:13:45 -0500 Subject: [PATCH 21/28] Fix error after rebase --- Content.Shared/Repairable/RepairableSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/Repairable/RepairableSystem.cs b/Content.Shared/Repairable/RepairableSystem.cs index a0ba9c8c6c7..939450e43c3 100644 --- a/Content.Shared/Repairable/RepairableSystem.cs +++ b/Content.Shared/Repairable/RepairableSystem.cs @@ -122,7 +122,7 @@ public sealed partial class RepairableSystem : EntitySystem { // TODO: Scale with the destructible threshold if DestructibleSystem ever gets more prediction added. // For now, just scale up the delay per 100 damage, or reduce the delay if its less. - var totalDamage = _damageableSystem.GetDamage((args.Target, damageComp)).GetTotal(); + var totalDamage = _damageableSystem.GetPositiveDamage((args.Target, damageComp)).GetTotal(); delay *= Math.Clamp((float)totalDamage / 100.0f, 0.5f, 3.0f); } // END DeltaV From d210720f207f7136f385ce5ab4f41d6eb09467de Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 5 Jul 2026 10:42:32 -0500 Subject: [PATCH 22/28] SRT has too much shit --- .../_DV/Roles/Jobs/CentComm/EmergencyResponseTeam.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Resources/Prototypes/_DV/Roles/Jobs/CentComm/EmergencyResponseTeam.yml b/Resources/Prototypes/_DV/Roles/Jobs/CentComm/EmergencyResponseTeam.yml index 16f183684db..119144b2abf 100644 --- a/Resources/Prototypes/_DV/Roles/Jobs/CentComm/EmergencyResponseTeam.yml +++ b/Resources/Prototypes/_DV/Roles/Jobs/CentComm/EmergencyResponseTeam.yml @@ -130,7 +130,6 @@ - CableApcStack - SheetPlasteel - SheetSteel - belt: - RCDRecharging - type: startingGear @@ -164,7 +163,6 @@ - SheetPlasteel - SheetSteel - WeaponAdvancedLaser - belt: - RCDCombat # Security From e7f1fe4a026134bc9c37fb516eda4c474675eb40 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 5 Jul 2026 10:56:19 -0500 Subject: [PATCH 23/28] Stuff --- Resources/Prototypes/_Mono/Reagents/technological.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/_Mono/Reagents/technological.yml b/Resources/Prototypes/_Mono/Reagents/technological.yml index 6636172b8be..81e694bae03 100644 --- a/Resources/Prototypes/_Mono/Reagents/technological.yml +++ b/Resources/Prototypes/_Mono/Reagents/technological.yml @@ -13,9 +13,11 @@ meltingPoint: 659.7 friction: 0.4 metabolisms: - Poison: + Bloodstream: effects: - !type:HealthChange damage: types: - Poison: 1 + Poison: 0.4 + Slash: 0.3 + Pierce: 0.3 From 229444d0dc1466f0c7ea43f08b4a264281501bc9 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 5 Jul 2026 11:06:43 -0500 Subject: [PATCH 24/28] lol --- Resources/Prototypes/_Mono/Reagents/technological.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_Mono/Reagents/technological.yml b/Resources/Prototypes/_Mono/Reagents/technological.yml index 81e694bae03..1683f995479 100644 --- a/Resources/Prototypes/_Mono/Reagents/technological.yml +++ b/Resources/Prototypes/_Mono/Reagents/technological.yml @@ -20,4 +20,4 @@ types: Poison: 0.4 Slash: 0.3 - Pierce: 0.3 + Piercing: 0.3 From e586c25e532abdcee270788caf03ea5e996bf485 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 5 Jul 2026 13:55:38 -0500 Subject: [PATCH 25/28] PR feedback --- .../_Mono/Entities/Objects/Tools/nanite_applicator.yml | 2 -- Resources/Prototypes/_Mono/Reagents/technological.yml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml index 339f87a1b85..abff55be626 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Tools/nanite_applicator.yml @@ -44,8 +44,6 @@ - type: GuideHelp guides: - Construction - - type: ESSparkOnItemToggle # Add some flare~ - - type: entity name: experimental nanite applicator diff --git a/Resources/Prototypes/_Mono/Reagents/technological.yml b/Resources/Prototypes/_Mono/Reagents/technological.yml index 1683f995479..5f71c09c1ef 100644 --- a/Resources/Prototypes/_Mono/Reagents/technological.yml +++ b/Resources/Prototypes/_Mono/Reagents/technological.yml @@ -7,7 +7,7 @@ requiredSlipSpeed: 3.5 flavor: bitter flavorMinimum: 0.01 - color: "#0000FF" + color: "#5775f4" recognizable: true boilingPoint: 8000.6 meltingPoint: 659.7 From 33b12db03183ecb502f5a36c78748e95225d9d0f Mon Sep 17 00:00:00 2001 From: Vanessa <908648+ShepardToTheStars@users.noreply.github.com> Date: Sun, 5 Jul 2026 13:56:25 -0500 Subject: [PATCH 26/28] Update Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml Co-authored-by: pathetic meowmeow Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com> --- .../Objects/Specific/chemical-containers.yml | 158 +++++++++--------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml index 482f5ccebba..610695ee4d9 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml @@ -5,87 +5,87 @@ suffix: empty description: A plastic jerry can with a spill-proof nozzle. components: - - type: SolutionContainerManager - solutions: - tank: - maxVol: 200 - - type: Sprite - sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi - layers: - - state: jerrycan - - state: jerrycan1 - map: [ "enum.SolutionContainerLayers.Fill" ] - visible: false - - type: Item - size: Normal - sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi - - type: MixableSolution - solution: tank - - type: RefillableSolution - solution: tank - - type: DrainableSolution - solution: tank - - type: ExaminableSolution - solution: tank - - type: DrawableSolution - solution: tank - - type: InjectableSolution - solution: tank - - type: SolutionTransfer - canChangeTransferAmount: true - - type: SolutionItemStatus - solution: tank - - type: ReagentTank - tankType: Fuel - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - - type: Edible - solution: tank - delay: 1.5 - destroyOnEmpty: false - forceFeedDelay: 5 - - type: Appearance - - type: SolutionContainerVisuals - maxFillLevels: 5 - fillBaseName: jerrycan - inHandsMaxFillLevels: 5 - inHandsFillBaseName: -fill- - - type: StaticPrice - price: 10 - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 200 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 20 - behaviors: - - !type:PlaySoundBehavior - sound: - collection: MetalBreak - params: - volume: -4 - - !type:SpillBehavior - solution: tank - - !type:SpawnEntitiesBehavior - spawn: - SheetPlastic1: - min: 0 - max: 1 - transferForensics: true + - type: SolutionContainerManager + solutions: + tank: + maxVol: 200 + - type: Sprite + sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi + layers: + - state: jerrycan + - state: jerrycan1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - type: Item + size: Normal + sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi + - type: MixableSolution + solution: tank + - type: RefillableSolution + solution: tank + - type: DrainableSolution + solution: tank + - type: ExaminableSolution + solution: tank + - type: DrawableSolution + solution: tank + - type: InjectableSolution + solution: tank + - type: SolutionTransfer + canChangeTransferAmount: true + - type: SolutionItemStatus + solution: tank + - type: ReagentTank + tankType: Fuel + - type: UserInterface + interfaces: + enum.TransferAmountUiKey.Key: + type: TransferAmountBoundUserInterface + - type: Edible + solution: tank + delay: 1.5 + destroyOnEmpty: false + forceFeedDelay: 5 + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: jerrycan + inHandsMaxFillLevels: 5 + inHandsFillBaseName: -fill- + - type: StaticPrice + price: 10 + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - - type: Label - - type: TrashOnSolutionEmpty - solution: tank + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -4 + - !type:SpillBehavior + solution: tank + - !type:SpawnEntitiesBehavior + spawn: + SheetPlastic1: + min: 0 + max: 1 + transferForensics: true + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Label + - type: TrashOnSolutionEmpty + solution: tank - type: entity parent: JerryCan From fceafff79ffb83f8d1e1f5efe12184b85bfd2a4f Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 5 Jul 2026 14:26:55 -0500 Subject: [PATCH 27/28] Removed mutliple qualities repairing. Applicator now replaces welding for most objects. --- Content.Shared/Repairable/RepairableComponent.cs | 2 +- Content.Shared/Repairable/RepairableSystem.cs | 11 ++++------- .../Entities/Mobs/Cyborgs/base_borg_chassis.yml | 1 + Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml | 1 + .../Entities/Mobs/Player/mothershipcore.yml | 1 + .../Prototypes/Entities/Objects/Shields/shields.yml | 2 +- .../Weapons/Guns/Turrets/turrets_ballistic.yml | 3 +-- .../Entities/Structures/Machines/vending_machines.yml | 3 --- .../Structures/Power/Generation/Tesla/coil.yml | 2 ++ .../Entities/Structures/Storage/glass_box.yml | 1 + .../Entities/Structures/Windows/clockwork.yml | 1 + .../Prototypes/Entities/Structures/Windows/mining.yml | 1 + .../Entities/Structures/Windows/plastitanium.yml | 8 ++------ .../Entities/Structures/Windows/reinforced.yml | 1 + .../Entities/Structures/Windows/shuttle.yml | 1 + .../Prototypes/Entities/Structures/Windows/window.yml | 8 ++------ .../Prototypes/Entities/Structures/base_structure.yml | 4 +--- 17 files changed, 22 insertions(+), 29 deletions(-) diff --git a/Content.Shared/Repairable/RepairableComponent.cs b/Content.Shared/Repairable/RepairableComponent.cs index c16da0c7360..796fe6dd1e6 100644 --- a/Content.Shared/Repairable/RepairableComponent.cs +++ b/Content.Shared/Repairable/RepairableComponent.cs @@ -42,7 +42,7 @@ public sealed partial class RepairableComponent : Component /// Tool quality necessary to repair this device. /// [DataField, AutoNetworkedField] - public List> QualityNeeded = new() { "Welding", "Applicating" }; // Monolith - Nanite Applicator + public ProtoId QualityNeeded = "Applicating"; // Monolith - Nanite Applicator /// /// The base tool use delay (seconds). This will be modified by the tool's quality diff --git a/Content.Shared/Repairable/RepairableSystem.cs b/Content.Shared/Repairable/RepairableSystem.cs index 939450e43c3..feec9edad21 100644 --- a/Content.Shared/Repairable/RepairableSystem.cs +++ b/Content.Shared/Repairable/RepairableSystem.cs @@ -130,14 +130,11 @@ public sealed partial class RepairableSystem : EntitySystem // BEGIN Monolith - Nanite Applicators if (!TryComp(args.Used, out var tool)) return; - - // Run the repairing doafter - foreach (var quality in ent.Comp.QualityNeeded) - { - if (_toolSystem.HasQuality(args.Used, quality, tool)) - args.Handled = _toolSystem.UseTool(args.Used, args.User, ent.Owner, delay, quality, new RepairDoAfterEvent(), ent.Comp.FuelCost); - } // END Monolith + + // Run the repairing doafter + args.Handled = _toolSystem.UseTool(args.Used, args.User, ent.Owner, delay, ent.Comp.QualityNeeded, new RepairDoAfterEvent(), ent.Comp.FuelCost); + } } diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 29ec9338ca6..f090d307aa1 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -118,6 +118,7 @@ damageValue: -10 # 10 seconds to repair from crit doAfterDelay: 1 fuelCost: 0.5 + qualityNeeded: Welding # DeltaV - for now allowSelfRepair: true # DeltaV - was false - type: BorgChassis - type: LockingWhitelist diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 23d8cef58ab..9ef377d681a 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -20,6 +20,7 @@ damageValue: -15 # 8 seconds to repair from dead doAfterDelay: 1 fuelCost: 0.5 + qualityNeeded: Welding # DeltaV - for now - type: Pullable - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml b/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml index f5897fd2c9d..2419f2b9454 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml @@ -82,6 +82,7 @@ temperature: 373.15 - type: Repairable doAfterDelay: 30 # you can heal the mothership core, but it takes a while + qualityNeeded: Welding # DeltaV - type: DamagedSiliconAccent enableChargeCorruption: false # TODO: make it explosive again once until issue https://github.com/space-wizards/space-station-14/issues/40606 is fixed diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml index 4e7698ecca8..3a9c85f7357 100644 --- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -89,7 +89,7 @@ fuelCost: 10 # 1/2 of a Welder for a full repair doAfterDelay: 5 allowSelfRepair: false - + qualityNeeded: Welding # DeltaV #Security Shields - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml index 9024e7d5646..3af5219c472 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml @@ -45,8 +45,7 @@ graph: WeaponTurretSyndicateDisposable node: disposableTurret - type: Repairable - qualityNeeded: # Monolith - Converted to Array - - Anchoring + qualityNeeded: Anchoring doAfterDelay: 3 - type: TriggerOnEmptyGunshot - type: ExplodeOnTrigger diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index fcd18bca5d0..83887f3e13e 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -56,9 +56,6 @@ - !type:EjectVendorItems - type: Repairable doAfterDelay: 8 - qualityNeeded: # DeltaV - Nanite Applicators - - Welding - - Applicating - type: ActivatableUI key: enum.VendingMachineUiKey.Key - type: ActivatableUIRequiresPower diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml index e7f6082734e..14a92e30265 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml @@ -84,6 +84,7 @@ - type: ExaminableDamage messages: WindowMessages - type: Repairable + qualityNeeded: Welding # DeltaV - type: DamageVisuals thresholds: [8, 16, 25] damageDivisor: 3.333 @@ -177,6 +178,7 @@ - type: ExaminableDamage messages: WindowMessages - type: Repairable + qualityNeeded: Welding # DeltaV - type: Damageable damageContainer: StructuralInorganic - type: DamageVisuals diff --git a/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml b/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml index f1ce706847f..717bbc11d52 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/glass_box.yml @@ -61,6 +61,7 @@ - type: Repairable fuelCost: 15 doAfterDelay: 5 + qualityNeeded: Welding # DeltaV - type: Lock - type: LockVisuals - type: DamageVisuals diff --git a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml index 3eb6239efb8..f82c9122eaf 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml @@ -12,6 +12,7 @@ - type: Repairable fuelCost: 10 doAfterDelay: 2 + qualityNeeded: Welding # DeltaV - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass diff --git a/Resources/Prototypes/Entities/Structures/Windows/mining.yml b/Resources/Prototypes/Entities/Structures/Windows/mining.yml index 583a376e2fc..88dc5026726 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/mining.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/mining.yml @@ -11,6 +11,7 @@ - type: Repairable fuelCost: 15 doAfterDelay: 3 + qualityNeeded: Welding # DeltaV - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass diff --git a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml index 8b96e4a1e14..c31b78a7153 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml @@ -120,9 +120,7 @@ - type: Repairable fuelCost: 15 doAfterDelay: 3 - qualityNeeded: # DeltaV - Nanite Applicators - - Welding - - Applicating + qualityNeeded: Welding - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass @@ -218,9 +216,7 @@ - type: Repairable fuelCost: 15 doAfterDelay: 3 - qualityNeeded: # DeltaV - Nanite Applicators - - Welding - - Applicating + qualityNeeded: Welding - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml index 6fc24e80048..7c83487c491 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml @@ -11,6 +11,7 @@ - type: Repairable fuelCost: 10 doAfterDelay: 2 + qualityNeeded: Welding # DeltaV - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 6c0293a5bc0..ac461353ab4 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -11,6 +11,7 @@ - type: Repairable fuelCost: 15 doAfterDelay: 3 + qualityNeeded: Welding # DeltaV - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 01a9f5a2849..1099a7985c2 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -46,9 +46,7 @@ messages: WindowMessages - type: Repairable doAfterDelay: 2 # DeltaV - qualityNeeded: # Monolith - Nanite Applicators - - Welding - - Applicating + qualityNeeded: Welding - type: RCDDeconstructable cost: 6 delay: 4 @@ -176,9 +174,7 @@ - GlassLayer - type: Repairable doAfterDelay: 2 # DeltaV - qualityNeeded: # Monolith - Added qualities to override base - - Welding - - Applicating + qualityNeeded: Welding - type: Damageable damageContainer: StructuralInorganic damageModifierSet: Glass diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml index 3e9f7cbabb7..8d90847aa6b 100644 --- a/Resources/Prototypes/Entities/Structures/base_structure.yml +++ b/Resources/Prototypes/Entities/Structures/base_structure.yml @@ -26,13 +26,11 @@ - type: Tag tags: - Structure - - type: ExaminableDamage # DeltaV messages: BaseStructureMessages - type: Repairable # Monolith - Nanite Applicator doAfterDelay: 3 - qualityNeeded: - - Applicating + qualityNeeded: Applicating - type: entity # This means that it's not anchored on spawn. From a9574aa940c7fd4d896bc6e90bb2837c1a08fbe5 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 6 Jul 2026 09:59:16 -0500 Subject: [PATCH 28/28] Tests --- .../Tests/Interaction/InteractionTest.Constants.cs | 1 + .../Tests/Vending/VendingInteractionTest.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs b/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs index 1aac18f3a4f..0f04766762f 100644 --- a/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs +++ b/Content.IntegrationTests/Tests/Interaction/InteractionTest.Constants.cs @@ -22,6 +22,7 @@ public abstract partial class InteractionTest protected const string Wrench = "Wrench"; protected const string Screw = "Screwdriver"; protected const string Weld = "WelderExperimental"; + protected const string Applicator = "NaniteApplicatorSyndicate"; // DeltaV protected const string Pry = "Crowbar"; protected const string Cut = "Wirecutter"; diff --git a/Content.IntegrationTests/Tests/Vending/VendingInteractionTest.cs b/Content.IntegrationTests/Tests/Vending/VendingInteractionTest.cs index f7e5bc2a33a..61cd0954211 100644 --- a/Content.IntegrationTests/Tests/Vending/VendingInteractionTest.cs +++ b/Content.IntegrationTests/Tests/Vending/VendingInteractionTest.cs @@ -186,7 +186,7 @@ public sealed class VendingInteractionTest : InteractionTest Assert.That(IsUiOpen(VendingMachineUiKey.Key), Is.False, "Opened BUI of broken vending machine."); // Repair the vending machine - await InteractUsing(Weld); + await InteractUsing(Applicator); // DeltaV // Make sure the BUI can open now that the machine has been repaired await Activate();