From a1137bca8c24bc8133613cdf9d99dc3340ca1602 Mon Sep 17 00:00:00 2001 From: fenndragon Date: Thu, 9 Jan 2025 16:01:09 -0700 Subject: [PATCH 1/4] module update --- .../Entities/Structures/Machines/lathe.yml | 3 + .../Objects/Specific/Robotics/Borgmodules.yml | 36 +-------- .../Construction/Graphs/tools/BorgModules.yml | 75 ------------------- .../Prototypes/Recipes/Construction/tools.yml | 44 ----------- .../Prototypes/Recipes/Lathes/security.yml | 30 ++++++++ 5 files changed, 37 insertions(+), 151 deletions(-) delete mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/tools/BorgModules.yml diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 7af4a2b3137..dd6c27d6a56 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -817,6 +817,9 @@ - WeaponLaserCarbinePractice - Zipties - ShockCollar + - BorgModuleStun + - BorgModuleKill + - BorgModuleInvestigation - ShadowkinRestraints # DeltaV - .38 special ammo - Add various .38 special ammo to security techfab - MagazineBoxSpecial diff --git a/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml b/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml index dec5b4a3c96..269a31cbcd2 100644 --- a/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml +++ b/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml @@ -10,16 +10,14 @@ - type: entity id: BorgModuleStun parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] - name: A Module "incapable of causing harm if used correctly" + name: Disabler cyborg Module + description: A Module "incapable of causing harm if used correctly" components: - type: Sprite sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi layers: - state: security - state: icon-stun - - type: Construction - graph: BorgmoduleDisabler - node: icon - type: ItemBorgModule items: - WeaponBorgDisabler @@ -29,16 +27,13 @@ - type: entity id: BorgModuleKill parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] - name: combat cyborg module + name: Combat cyborg module components: - type: Sprite sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi layers: - state: security - state: icon-kill - - type: Construction - graph: BorgmoduleCombat - node: icon - type: ItemBorgModule items: - WeaponAdvancedLaser @@ -55,9 +50,6 @@ layers: - state: security - state: icon-investigation -# - type: Construction -# graph: BorgModuleInvestigation -# node: icon - type: ItemBorgModule items: - ForensicScanner @@ -76,26 +68,6 @@ - state: icon-Advmeasures - type: ItemBorgModule items: - - WeaponEnergyShotgun + - WeaponBorgEnergyShotgun - BorgWeaponXrayCannon -- type: entity - id: BaseSecModule - parent: BaseItem - name: blank security borg module - description: A piece of tech that gives cyborgs new abilities. - components: - - type: Item - storedRotation: -90 - - type: Sprite - sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi - layers: - - state: security - - type: StaticPrice - price: 100 - - type: Tag - tags: - - BorgModuleGeneric - - type: GuideHelp - guides: - - Cyborgs diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/tools/BorgModules.yml b/Resources/Prototypes/Recipes/Construction/Graphs/tools/BorgModules.yml deleted file mode 100644 index 8e57a58d358..00000000000 --- a/Resources/Prototypes/Recipes/Construction/Graphs/tools/BorgModules.yml +++ /dev/null @@ -1,75 +0,0 @@ -- type: constructionGraph - id: BorgmoduleDisabler - start: start - graph: - - node: start - entity: Stunbaton - edges: - - to: icon - steps: - - tag: BorgModuleGeneric - name: blank security borg module - icon: - sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi - state: security - doAfter: 1 - - tag: Taser - name: disabler - icon: - sprite: Objects/Weapons/Guns/Battery/disabler.rsi - state: base - doAfter: 1 - - node: icon - entity: BorgModuleStun - -- type: constructionGraph - id: BorgmoduleCombat - start: start - graph: - - node: start - entity: WeaponAdvancedLaser - edges: - - to: icon - steps: - - tag: BorgModuleGeneric - name: blank security borg module - icon: - sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi - state: security - doAfter: 1 - - tag: Knife - icon: - sprite: Objects/Weapons/Melee/combat_knife.rsi - state: icon - doAfter: 1 - - tag: Sidearm - icon: - sprite: Objects/Weapons/Guns/Pistols/mk58.rsi - state: base - doAfter: 1 - - node: icon - entity: BorgModuleKill - -#- type: constructionGraph - #id: BorgModuleInvestigation - #start: start - #graph: - #- node: start - #entity: ForensicScanner - #edges: - #- to: icon - #steps: - #- tag: BorgModuleGeneric - #name: blank security borg module - #icon: - #sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi - #state: security - #doAfter: 1 - #- tag: DoorBumpOpener - #name: SecurityPDA - #icon: - #sprite: Objects/Devices/pda.rsi - #state: pda-security - #doAfter: 1 - #- node: icon - #entity: BorgModuleInvestigation diff --git a/Resources/Prototypes/Recipes/Construction/tools.yml b/Resources/Prototypes/Recipes/Construction/tools.yml index bbcdd56d27f..9620d85e821 100644 --- a/Resources/Prototypes/Recipes/Construction/tools.yml +++ b/Resources/Prototypes/Recipes/Construction/tools.yml @@ -42,47 +42,3 @@ icon: { sprite: Objects/Devices/gates.rsi, state: power_sensor } objectType: Item -- type: construction - name: Disabler Module - id: BorgModuleStun - graph: BorgmoduleDisabler - startNode: start - targetNode: icon - category: construction-category-tools - description: A nonlethal module for security borg - icon: { sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi, state: icon-stun } - objectType: Item - -- type: construction - name: Combat Module - id: BorgModuleKill - graph: BorgmoduleCombat - startNode: start - targetNode: icon - category: construction-category-tools - description: A lethal module for security borg - icon: { sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi, state: icon-kill } - objectType: Item - -#- type: construction - #name: Investigation - #id: BorgModuleInvestigation - #graph: BorgModuleInvestigation - #startNode: start - #targetNode: icon - #category: construction-category-tools - #description: A lethal module for security borg - #icon: { sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi, state: icon-investigation } - #objectType: Item - - -# - type: construction - # name: Advanced Combat Module - # id: BorgModuleadvancedmeasures - # graph: BorgmoduleAdvMeasures - # startNode: start - # targetNode: power_sensor - # category: construction-category-tools - # description: A power network checking device for signals. - # icon: { sprite: Objects/Devices/gates.rsi, state: power_sensor } - # objectType: Item diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 90ba7a1c569..12dc96cd3cc 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -66,6 +66,36 @@ Steel: 1500 Glass: 1000 Gold: 850 + +- type: latheRecipe + id: BorgModuleStun + result: BorgModuleStun + category: Weapons + completetime: 5 + materials: + Steel: 700 + Glass: 500 + Plastic: 200 + +- type: latheRecipe + id: BorgModuleKill + result: BorgModuleKill + category: Weapons + completetime: 5 + materials: + Steel: 1500 + Glass: 1000 + Gold: 850 + +- type: latheRecipe + id: BorgModuleInvestigation + result: BorgModuleInvestigation + category: Weapons + completetime: 5 + materials: + Steel: 1500 + Glass: 1000 + Gold: 850 # - type: latheRecipe # id: WeaponEnergyShotgun From b9a70fe776b235e5613864a0437a6a477fe5f7bb Mon Sep 17 00:00:00 2001 From: fenndragon Date: Thu, 9 Jan 2025 18:19:13 -0700 Subject: [PATCH 2/4] Update robotics.yml --- Resources/Prototypes/Recipes/Lathes/robotics.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index 9e423fc9986..af9816e3187 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -16,17 +16,6 @@ Glass: 100 Plastic: 200 Steel: 100 - -- type: latheRecipe - id: BaseSecModule - result: BaseSecModule - category: Robotics - completetime: 3 - materials: - Steel: 500 - Glass: 500 - Plastic: 250 - Gold: 50 - type: latheRecipe id: CyborgEndoskeleton From 22b7ff99056d3844938a6b9dd79d09dd642c7997 Mon Sep 17 00:00:00 2001 From: fenndragon Date: Thu, 9 Jan 2025 23:32:11 -0700 Subject: [PATCH 3/4] Update lathe.yml --- Resources/Prototypes/Entities/Structures/Machines/lathe.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index dd6c27d6a56..0946679b2c2 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -646,7 +646,6 @@ - HeadBorgService - TorsoBorgService - Quadborgendoskeleton - - BaseSecModule dynamicRecipes: - ProximitySensor - BorgModuleLightReplacer From d8329d2a716920e90419188af56f64ff90f82c4d Mon Sep 17 00:00:00 2001 From: FoxxoTrystan Date: Fri, 10 Jan 2025 08:59:38 +0100 Subject: [PATCH 4/4] Zipties for borgs --- .../Cuffs/Components/HandcuffComponent.cs | 6 +++++ Content.Shared/Cuffs/SharedCuffableSystem.cs | 10 ++++++-- .../Floof/Entities/Mobs/Cyborgs/quadborg.yml | 7 ++---- .../Objects/Specific/Robotics/Borgmodules.yml | 9 ++++---- .../Entities/Objects/Weapons/borgmodules.yml | 23 +++++++++++++++++++ 5 files changed, 44 insertions(+), 11 deletions(-) diff --git a/Content.Shared/Cuffs/Components/HandcuffComponent.cs b/Content.Shared/Cuffs/Components/HandcuffComponent.cs index fa1ac07494f..a3eb01c3f43 100644 --- a/Content.Shared/Cuffs/Components/HandcuffComponent.cs +++ b/Content.Shared/Cuffs/Components/HandcuffComponent.cs @@ -15,6 +15,12 @@ public sealed partial class HandcuffComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public bool NoRot = false; + /// + /// Should the cuff be removed when used? (This will always give zipties to the target, i should do another system clone or move it to its own comp but so far, this works) + /// + [DataField] + public bool RemoveOnUse = true; + /// /// The time it takes to cuff an entity. /// diff --git a/Content.Shared/Cuffs/SharedCuffableSystem.cs b/Content.Shared/Cuffs/SharedCuffableSystem.cs index 9777b239884..47076bd98fb 100644 --- a/Content.Shared/Cuffs/SharedCuffableSystem.cs +++ b/Content.Shared/Cuffs/SharedCuffableSystem.cs @@ -453,7 +453,13 @@ public bool TryAddNewCuffs(EntityUid target, EntityUid user, EntityUid handcuff, return false; // Success! - _hands.TryDrop(user, handcuff); + if (cuff.RemoveOnUse) + _hands.TryDrop(user, handcuff); + else + { + handcuff = Spawn("Zipties", Transform(user).Coordinates); + EnsureComp(handcuff); + } _container.Insert(handcuff, component.Container); UpdateHeldItems(target, handcuff, component); @@ -739,4 +745,4 @@ private sealed partial class AddCuffDoAfterEvent : SimpleDoAfterEvent { } } -} \ No newline at end of file +} diff --git a/Resources/Prototypes/Floof/Entities/Mobs/Cyborgs/quadborg.yml b/Resources/Prototypes/Floof/Entities/Mobs/Cyborgs/quadborg.yml index ef4c6e77ac7..31282e8ed82 100644 --- a/Resources/Prototypes/Floof/Entities/Mobs/Cyborgs/quadborg.yml +++ b/Resources/Prototypes/Floof/Entities/Mobs/Cyborgs/quadborg.yml @@ -25,9 +25,6 @@ - Common - Science - type: ActiveRadio - - type: Body - prototype: Primate - requiredLegs: 1 # TODO: More than 1 leg - type: BorgChassis maxModules: 4 moduleWhitelist: @@ -48,10 +45,10 @@ - type: Speech speechVerb: Robotic - type: LayingDown - - type: SiliconLawProvider + - type: SiliconLawProvider laws: Qborg - type: LeashAnchor # Floofstation - + - type: entity id: BorgChassisQuadCC parent: BorgChassisQuad diff --git a/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml b/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml index 269a31cbcd2..876106f1f1b 100644 --- a/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml +++ b/Resources/Prototypes/Floof/Entities/Objects/Specific/Robotics/Borgmodules.yml @@ -10,7 +10,7 @@ - type: entity id: BorgModuleStun parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] - name: Disabler cyborg Module + name: Disabler cyborg Module description: A Module "incapable of causing harm if used correctly" components: - type: Sprite @@ -23,6 +23,7 @@ - WeaponBorgDisabler - BorgStunbaton - BorgFlash + - BorgZipties - type: entity id: BorgModuleKill @@ -39,7 +40,7 @@ - WeaponAdvancedLaser - WeaponborgPistolMk58 - CombatKnife - + - type: entity id: BorgModuleInvestigation parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] @@ -55,7 +56,7 @@ - ForensicScanner - DetectivePDA - SecurityWhistle - + - type: entity id: BorgModuleadvancedmeasures parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ] @@ -70,4 +71,4 @@ items: - WeaponBorgEnergyShotgun - BorgWeaponXrayCannon - + diff --git a/Resources/Prototypes/Floof/Entities/Objects/Weapons/borgmodules.yml b/Resources/Prototypes/Floof/Entities/Objects/Weapons/borgmodules.yml index 19ca7344e94..e6179d4ae91 100644 --- a/Resources/Prototypes/Floof/Entities/Objects/Weapons/borgmodules.yml +++ b/Resources/Prototypes/Floof/Entities/Objects/Weapons/borgmodules.yml @@ -15,3 +15,26 @@ path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg fireOnDropChance: 1 +- type: entity + id: BorgZipties + suffix: Robot + parent: Zipties + components: + - type: Handcuff + removeOnUse: false + breakoutTime: 3 + cuffedRSI: Objects/Misc/cablecuffs.rsi # cablecuffs will look fine + bodyIconState: body-overlay + breakOnRemove: true + brokenPrototype: ZiptiesBroken + startCuffSound: + path: /Audio/Items/Handcuffs/ziptie_start.ogg + endCuffSound: + path: /Audio/Items/Handcuffs/ziptie_end.ogg + startUncuffSound: + path: /Audio/Items/Handcuffs/rope_start.ogg + endUncuffSound: + path: /Audio/Items/Handcuffs/rope_breakout.ogg + startBreakoutSound: + path: /Audio/Items/Handcuffs/rope_takeoff.ogg + uncuffEasierWhenLarge: true