diff --git a/Content.Client/DamageState/DamageStateVisualsComponent.cs b/Content.Client/DamageState/DamageStateVisualsComponent.cs
index 27a97018b5..f21e60e4c8 100644
--- a/Content.Client/DamageState/DamageStateVisualsComponent.cs
+++ b/Content.Client/DamageState/DamageStateVisualsComponent.cs
@@ -15,4 +15,5 @@ public enum DamageStateVisualLayers : byte
Base,
BaseUnshaded,
BaseUnshadedAccessory, // DeltaV - Pet clothing
+ Tail, // DeltaV - Pet tails wagging
}
diff --git a/Content.Shared/_DV/Clothing/Components/SpecialisedClothingComponent.cs b/Content.Shared/_DV/Clothing/Components/SpecialisedClothingComponent.cs
new file mode 100644
index 0000000000..d35a2592ce
--- /dev/null
+++ b/Content.Shared/_DV/Clothing/Components/SpecialisedClothingComponent.cs
@@ -0,0 +1,24 @@
+using Content.Shared.Whitelist;
+
+namespace Content.Shared._DV.Clothing.Components;
+
+///
+/// Marks that this piece of clothing can only be worn by an entity
+/// with a matching tag.
+///
+[RegisterComponent]
+public sealed partial class SpecialisedClothingComponent : Component
+{
+ ///
+ /// Valid tags which must exist on the entity attempting to wear
+ /// this piece of clothing.
+ ///
+ [DataField]
+ public EntityWhitelist Whitelist = new();
+
+ ///
+ /// The specific text to show, if any, for why this equipment cannot be worn.
+ ///
+ [DataField]
+ public LocId? FailureReason;
+}
diff --git a/Content.Shared/_DV/Clothing/EntitySystems/SpecialisedClothingSystem.cs b/Content.Shared/_DV/Clothing/EntitySystems/SpecialisedClothingSystem.cs
new file mode 100644
index 0000000000..3eed849f69
--- /dev/null
+++ b/Content.Shared/_DV/Clothing/EntitySystems/SpecialisedClothingSystem.cs
@@ -0,0 +1,34 @@
+using Content.Shared._DV.Clothing.Components;
+using Content.Shared.Inventory.Events;
+using Content.Shared.Whitelist;
+
+namespace Content.Shared._DV.Clothing.EntitySystems;
+
+public sealed class SpecialisedClothingSystem : EntitySystem
+{
+ [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
+
+ private readonly LocId _defaultReason = "specialized-clothing-default-failure";
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnBeingEquipped);
+ }
+
+ ///
+ /// Handles when a piece of specialized equipment attempts to be equipped, blocking it
+ /// in the case where the equipee is an invalid user.
+ ///
+ /// Clothing being equipped.
+ /// Args for the event, notably the entity equipping the clothing.
+ private void OnBeingEquipped(Entity ent, ref BeingEquippedAttemptEvent args)
+ {
+ if (_whitelistSystem.IsWhitelistPass(ent.Comp.Whitelist, args.EquipTarget))
+ return;
+
+ args.Reason = ent.Comp.FailureReason ?? _defaultReason;
+ args.Cancel();
+ }
+}
diff --git a/Resources/Locale/en-US/_DV/clothing/specialized.ftl b/Resources/Locale/en-US/_DV/clothing/specialized.ftl
new file mode 100644
index 0000000000..b691fe219b
--- /dev/null
+++ b/Resources/Locale/en-US/_DV/clothing/specialized.ftl
@@ -0,0 +1 @@
+specialized-clothing-default-failure = You can't quite fit into this
diff --git a/Resources/Prototypes/_DV/Entities/Clothing/OuterClothing/k9.yml b/Resources/Prototypes/_DV/Entities/Clothing/OuterClothing/k9.yml
new file mode 100644
index 0000000000..cba7dfabd1
--- /dev/null
+++ b/Resources/Prototypes/_DV/Entities/Clothing/OuterClothing/k9.yml
@@ -0,0 +1,110 @@
+- type: entity
+ abstract: true
+ id: K9ClothingBase
+ components:
+ - type: SpecialisedClothing
+ whitelist:
+ tags:
+ - K9
+
+# K9 Combat suit
+- type: entity
+ parent: [ K9ClothingBase, ClothingOuterHardsuitBase ]
+ id: ClothingOuterHardsuitCombatK9
+ name: k9 combat hardsuit
+ description: A canine-built combat suit designed to protect its against all manner of enemy combatants in low pressure environments. This one has station security markings.
+ components:
+ - type: Sprite
+ sprite: _DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi
+ - type: Clothing
+ sprite: _DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi
+ - type: PressureProtection
+ highPressureMultiplier: 0.50
+ lowPressureMultiplier: 1000
+ - type: ExplosionResistance
+ damageCoefficient: 0.50
+ - type: Armor
+ modifiers:
+ coefficients:
+ Blunt: 0.60
+ Slash: 0.60
+ Piercing: 0.60
+ Radiation: 0.75
+ Caustic: 0.75
+ Heat: 0.75
+ - type: StaminaResistance
+ damageCoefficient: 0.3
+ - type: ClothingSpeedModifier
+ walkModifier: 0.85
+ sprintModifier: 0.85
+ - type: ToggleableClothing
+ clothingPrototype: ClothingHeadHelmetHardsuitCombatK9
+ - type: AllowSuitStorage
+ - type: Insulated
+ - type: Tag
+ tags:
+ - K9Armor
+
+- type: entity
+ parent: [ K9ClothingBase, ClothingHeadHardsuitBase, ClothingHeadSuitWithLightBase ]
+ id: ClothingHeadHelmetHardsuitCombatK9
+ name: k9 combat hardsuit helmet
+ components:
+ - type: Sprite
+ sprite: _DV/Clothing/Head/Hardsuits/Combat/k9.rsi
+ - type: Clothing
+ sprite: _DV/Clothing/Head/Hardsuits/Combat/k9.rsi
+ - type: Tag
+ tags:
+ - K9Armor
+
+# K9 Riot suit
+- type: entity
+ parent: ClothingOuterHardsuitCombatK9
+ id: ClothingOuterHardsuitCombatRiotK9
+ name: k9 riot hardsuit
+ description: A canine-built combat suit designed for crowd control against armed combatants in low pressure environments.
+ components:
+ - type: Sprite
+ sprite: _DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi
+ - type: Clothing
+ sprite: _DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi
+ - type: Armor
+ modifiers:
+ coefficients:
+ Blunt: 0.65
+ Slash: 0.65
+ Piercing: 0.65
+ Radiation: 0.80
+ Caustic: 0.80
+ Heat: 0.80
+ - type: ToggleableClothing
+ clothingPrototype: ClothingOuterHardsuitCombatRiotK9Helmet
+
+- type: entity
+ parent: [ K9ClothingBase, ClothingHeadHardsuitBase, ClothingHeadSuitWithLightBase ]
+ id: ClothingOuterHardsuitCombatRiotK9Helmet
+ name: K9 riot helmet
+ components:
+ - type: Sprite
+ sprite: _DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi
+ - type: Clothing
+ sprite: _DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi
+ - type: Tag
+ tags:
+ - K9Armor
+
+# K9 Durathread
+
+- type: entity
+ parent: [ K9ClothingBase, ClothingOuterArmorDuraVest ]
+ id: ClothingOuterArmorDuraVestK9
+ name: K9 durathread vest
+ description: A tight-fitting and sturdy armor vest for canines, reinforced with durathread weave to protect against sharp objects and blunt force trauma.
+ components:
+ - type: Sprite
+ sprite: _DV/Clothing/OuterClothing/Armor/duravest.rsi
+ states: icon-secdog
+ - type: Tag
+ tags:
+ - K9Armor
diff --git a/Resources/Prototypes/_DV/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/_DV/Entities/Mobs/NPCs/animals.yml
index 128d89fecb..ff8aedae30 100644
--- a/Resources/Prototypes/_DV/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/_DV/Entities/Mobs/NPCs/animals.yml
@@ -91,7 +91,21 @@
sprite: _DV/Mobs/Pets/secdog.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
- state: secdog
+ state: base
+ - map: [ "outerClothing" ]
+ - map: ["enum.DamageStateVisualLayers.Tail"]
+ state: tail_animated
+ - type: DamageStateVisuals
+ states:
+ Alive:
+ Base: base
+ Tail: tail_animated
+ Critical:
+ Base: base
+ Tail: tail_static
+ Dead:
+ Base: base
+ Tail: tail_static
- type: HTN
rootTask:
task: SimpleHostileCompound
@@ -141,14 +155,6 @@
interfaces:
enum.StrippingUiKey.Key:
type: StrippableBoundUserInterface
- - type: DamageStateVisuals
- states:
- Alive:
- Base: secdog
- Critical:
- Base: secdog_crit
- Dead:
- Base: secdog_dead
- type: Butcherable
spawned:
- id: FoodMeat
@@ -178,6 +184,10 @@
- type: Vocal
sounds:
Unsexed: MobDog
+ - type: LayingDown
+ - type: RotationVisuals
+ defaultRotation: 90
+ horizontalRotation: 90
- type: entity
parent: MobMouse
diff --git a/Resources/Prototypes/_DV/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/_DV/Entities/Mobs/NPCs/pets.yml
index aca4552e24..cac20a07f6 100644
--- a/Resources/Prototypes/_DV/Entities/Mobs/NPCs/pets.yml
+++ b/Resources/Prototypes/_DV/Entities/Mobs/NPCs/pets.yml
@@ -53,6 +53,7 @@
- CannotSuicide
- VimPilot
- DoorBumpOpener
+ - K9
- type: StealTarget
stealGroup: AnimalSecurity # DeltaV - Adjusts because we have multiple possible sec animals
- type: Temperature
diff --git a/Resources/Prototypes/_DV/InventoryTemplates/secdog_inventory_template.yml b/Resources/Prototypes/_DV/InventoryTemplates/secdog_inventory_template.yml
index 133fd50627..7d03d7386b 100644
--- a/Resources/Prototypes/_DV/InventoryTemplates/secdog_inventory_template.yml
+++ b/Resources/Prototypes/_DV/InventoryTemplates/secdog_inventory_template.yml
@@ -1,6 +1,17 @@
- type: inventoryTemplate
id: secdog
slots:
+
+ - name: head
+ slotTexture: head
+ slotFlags: HEAD
+ uiWindowPos: 1,3
+ strippingWindowPos: 1,0
+ displayName: Head
+ whitelist:
+ tags:
+ - K9Armor
+
- name: mask
slotTexture: mask
slotFlags: MASK
@@ -11,6 +22,17 @@
tags:
- PetWearable
+ - name: outerClothing
+ slotTexture: suit
+ slotFlags: OUTERCLOTHING
+ stripTime: 6
+ uiWindowPos: 1,1
+ strippingWindowPos: 1,2
+ displayName: Suit
+ whitelist:
+ tags:
+ - K9Armor
+
- name: suitstorage
slotTexture: suit_storage
slotFlags: SUITSTORAGE
diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/security.yml b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/security.yml
index afd5598601..ada770ae02 100644
--- a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/security.yml
+++ b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/security.yml
@@ -6,6 +6,7 @@
- ClothingNeckShockCollar
- ClothingOuterArmorPlateCarrier # plate carrier body armour
- ClothingOuterArmorDuraVest # stabproof vest body armour
+ - ClothingOuterArmorDuraVestK9 # k9 stabproof vest body armour
- ClothingOuterArmorReflective
- HoloprojectorSecurity
- RadioHandheldSecurity
@@ -90,6 +91,8 @@
- ClothingOuterHardsuitJuggernautReverseEngineered
- ClothingOuterHardsuitSyndieReverseEngineered
- ClothingOuterHardsuitCombatOfficer
+ - ClothingOuterHardsuitCombatK9 # k9 combat suit
+ - ClothingOuterHardsuitCombatRiotK9 # k9 riot suit
- type: latheRecipePack
id: PrisonerSoftsuits
diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml b/Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml
index 2bd0327217..edcb0b8b35 100644
--- a/Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml
+++ b/Resources/Prototypes/_DV/Recipes/Lathes/clothing.yml
@@ -455,6 +455,16 @@
id: ClothingOuterHardsuitCombatOfficer
result: ClothingOuterHardsuitCombatOfficer
+- type: latheRecipe
+ parent: BaseHardsuitArmoredRecipe
+ id: ClothingOuterHardsuitCombatK9
+ result: ClothingOuterHardsuitCombatK9
+
+- type: latheRecipe
+ parent: BaseHardsuitArmoredRecipe
+ id: ClothingOuterHardsuitCombatRiotK9
+ result: ClothingOuterHardsuitCombatRiotK9
+
## Logistics
- type: latheRecipe
parent: BaseHardsuitRecipe
diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/security.yml b/Resources/Prototypes/_DV/Recipes/Lathes/security.yml
index 2f9537b4ea..426c80e367 100644
--- a/Resources/Prototypes/_DV/Recipes/Lathes/security.yml
+++ b/Resources/Prototypes/_DV/Recipes/Lathes/security.yml
@@ -187,6 +187,14 @@
Steel: 500
Plastic: 1000
+- type: latheRecipe
+ id: ClothingOuterArmorDuraVestK9
+ result: ClothingOuterArmorDuraVestK9
+ completetime: 10
+ materials:
+ Steel: 500
+ Plastic: 1000
+
- type: latheRecipe
id: ClothingOuterArmorReflective
result: ClothingOuterArmorReflective
diff --git a/Resources/Prototypes/_DV/Research/arsenal.yml b/Resources/Prototypes/_DV/Research/arsenal.yml
index 2c550d0fb4..6a2b81d987 100644
--- a/Resources/Prototypes/_DV/Research/arsenal.yml
+++ b/Resources/Prototypes/_DV/Research/arsenal.yml
@@ -93,6 +93,8 @@
cost: 8000
recipeUnlocks:
- ClothingOuterHardsuitCombatOfficer
+ - ClothingOuterHardsuitCombatK9
+ - ClothingOuterHardsuitCombatRiotK9
- type: technology
id: ExperimentalSalvageWeaponry
diff --git a/Resources/Prototypes/_DV/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/_DV/Roles/Jobs/Fun/misc_startinggear.yml
index a5d26b6ce2..f0878abd15 100644
--- a/Resources/Prototypes/_DV/Roles/Jobs/Fun/misc_startinggear.yml
+++ b/Resources/Prototypes/_DV/Roles/Jobs/Fun/misc_startinggear.yml
@@ -6,6 +6,7 @@
id: MobSecDogLaikaGear
equipment:
eyes: ClothingEyesGlassesSunglasses
+ outerClothing: ClothingOuterArmorDuraVestK9
#Oldstation Roles
diff --git a/Resources/Prototypes/_DV/tags.yml b/Resources/Prototypes/_DV/tags.yml
index bb9ed44635..c82f283792 100644
--- a/Resources/Prototypes/_DV/tags.yml
+++ b/Resources/Prototypes/_DV/tags.yml
@@ -180,6 +180,12 @@
- type: Tag
id: Hoodie
+- type: Tag
+ id: K9Armor # Limits what equipment K9 units can wear
+
+- type: Tag
+ id: K9 # Lets K9 units wear specialized clothing
+
- type: Tag
id: AncientBookDamagedCommon
diff --git a/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/equipped-SUITSTORAGE-secdog.png b/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/equipped-SUITSTORAGE-secdog.png
new file mode 100644
index 0000000000..bf261ff7d6
Binary files /dev/null and b/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/equipped-SUITSTORAGE-secdog.png differ
diff --git a/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/meta.json b/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/meta.json
index 2adfbbc375..db27362a63 100644
--- a/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/meta.json
+++ b/Resources/Textures/Objects/Tanks/Jetpacks/captain.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by BarryNorkfolk for SUITSTORAGE-secdog",
"size": {
"x": 32,
"y": 32
@@ -59,6 +59,10 @@
"name": "equipped-SUITSTORAGE",
"directions": 4
},
+ {
+ "name": "equipped-SUITSTORAGE-secdog",
+ "directions": 4
+ },
{
"name": "on-equipped-SUITSTORAGE",
"directions": 4,
@@ -82,4 +86,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/equipped-SUITSTORAGE-secdog.png b/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/equipped-SUITSTORAGE-secdog.png
new file mode 100644
index 0000000000..dcdd610027
Binary files /dev/null and b/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/equipped-SUITSTORAGE-secdog.png differ
diff --git a/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/meta.json b/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/meta.json
index 4f37eed72c..7ffc1e4d23 100644
--- a/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/meta.json
+++ b/Resources/Textures/Objects/Tanks/Jetpacks/mini.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by BarryNorkfolk for SUITSTORAGE-secdog",
"size": {
"x": 32,
"y": 32
@@ -64,6 +64,10 @@
"name": "equipped-SUITSTORAGE",
"directions": 4
},
+ {
+ "name": "equipped-SUITSTORAGE-secdog",
+ "directions": 4
+ },
{
"name": "on-equipped-SUITSTORAGE",
"directions": 4,
@@ -91,4 +95,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/equipped-SUITSTORAGE-secdog.png b/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/equipped-SUITSTORAGE-secdog.png
new file mode 100644
index 0000000000..e5305236bf
Binary files /dev/null and b/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/equipped-SUITSTORAGE-secdog.png differ
diff --git a/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/meta.json b/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/meta.json
index 41bdc98958..947e0c361b 100644
--- a/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/meta.json
+++ b/Resources/Textures/Objects/Tanks/Jetpacks/void.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Drawn by Ubaser.",
+ "copyright": "Drawn by Ubaser, modified by BarryNorkfolk for SUITSTORAGE-secdog",
"size": {
"x": 32,
"y": 32
@@ -41,9 +41,13 @@
"name": "equipped-SUITSTORAGE",
"directions": 4
},
+ {
+ "name": "equipped-SUITSTORAGE-secdog",
+ "directions": 4
+ },
{
"name": "on-equipped-SUITSTORAGE",
"directions": 4
}
]
-}
\ No newline at end of file
+}
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/icon-flash.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/icon-flash.png
new file mode 100644
index 0000000000..6161acb660
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/icon-flash.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/icon.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/icon.png
new file mode 100644
index 0000000000..267b7d3e42
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/icon.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/meta.json b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/meta.json
new file mode 100644
index 0000000000..b747ee79a8
--- /dev/null
+++ b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/meta.json
@@ -0,0 +1,25 @@
+{
+ "version": 1,
+ "license": "CC0-1.0",
+ "copyright": "Original work by HTMLSystem",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon-flash"
+ },
+ {
+ "name": "off-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/off-equipped-HELMET.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/off-equipped-HELMET.png
new file mode 100644
index 0000000000..9e2a9b457f
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/off-equipped-HELMET.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/on-equipped-HELMET.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/on-equipped-HELMET.png
new file mode 100644
index 0000000000..1c8db17069
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9.rsi/on-equipped-HELMET.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/icon-flash.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/icon-flash.png
new file mode 100644
index 0000000000..1a03177e31
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/icon-flash.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/icon.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/icon.png
new file mode 100644
index 0000000000..e507153caf
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/icon.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/meta.json b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/meta.json
new file mode 100644
index 0000000000..b747ee79a8
--- /dev/null
+++ b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/meta.json
@@ -0,0 +1,25 @@
+{
+ "version": 1,
+ "license": "CC0-1.0",
+ "copyright": "Original work by HTMLSystem",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "icon-flash"
+ },
+ {
+ "name": "off-equipped-HELMET",
+ "directions": 4
+ },
+ {
+ "name": "on-equipped-HELMET",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/off-equipped-HELMET.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/off-equipped-HELMET.png
new file mode 100644
index 0000000000..277be34af7
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/off-equipped-HELMET.png differ
diff --git a/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/on-equipped-HELMET.png b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/on-equipped-HELMET.png
new file mode 100644
index 0000000000..be804eb99a
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/Head/Hardsuits/Combat/k9_riot.rsi/on-equipped-HELMET.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/equipped-OUTERCLOTHING-secdog.png b/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/equipped-OUTERCLOTHING-secdog.png
new file mode 100644
index 0000000000..4eab58a7a0
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/equipped-OUTERCLOTHING-secdog.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/icon-secdog.png b/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/icon-secdog.png
new file mode 100644
index 0000000000..4794f99d33
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/icon-secdog.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/meta.json b/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/meta.json
index decfcb7848..8a346f28ce 100644
--- a/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/meta.json
+++ b/Resources/Textures/_DV/Clothing/OuterClothing/Armor/duravest.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC0-1.0",
- "copyright": "Original work by TJohnson.",
+ "copyright": "Original work by TJohnson. Added secdog by BarryNorfolk.",
"size": {
"x": 32,
"y": 32
@@ -10,10 +10,17 @@
{
"name": "icon"
},
+ {
+ "name": "icon-secdog"
+ },
{
"name": "equipped-OUTERCLOTHING",
"directions": 4
},
+ {
+ "name": "equipped-OUTERCLOTHING-secdog",
+ "directions": 4
+ },
{
"name": "inhand-left",
"directions": 4
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 0000000000..2c10db524e
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/icon.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/icon.png
new file mode 100644
index 0000000000..63789e61fb
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/icon.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/inhand-left.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/inhand-left.png
new file mode 100644
index 0000000000..6a8188b1a0
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/inhand-left.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/inhand-right.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/inhand-right.png
new file mode 100644
index 0000000000..71e7b53c2d
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/inhand-right.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/meta.json b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/meta.json
new file mode 100644
index 0000000000..6acfa34c62
--- /dev/null
+++ b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC0-1.0",
+ "copyright": "Original work by HTMLSystem",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/equipped-OUTERCLOTHING.png
new file mode 100644
index 0000000000..cebdc3d386
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/equipped-OUTERCLOTHING.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/icon.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/icon.png
new file mode 100644
index 0000000000..ef80b38d2d
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/icon.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/inhand-left.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/inhand-left.png
new file mode 100644
index 0000000000..45ce781776
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/inhand-left.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/inhand-right.png b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/inhand-right.png
new file mode 100644
index 0000000000..439d0e71dd
Binary files /dev/null and b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/inhand-right.png differ
diff --git a/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/meta.json b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/meta.json
new file mode 100644
index 0000000000..6acfa34c62
--- /dev/null
+++ b/Resources/Textures/_DV/Clothing/OuterClothing/Hardsuits/Combat/k9_riot.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC0-1.0",
+ "copyright": "Original work by HTMLSystem",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-OUTERCLOTHING",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/base.png b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/base.png
new file mode 100644
index 0000000000..ffad4e28d4
Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/base.png differ
diff --git a/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/meta.json b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/meta.json
index f7e017cc96..f87d5b0b46 100644
--- a/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/meta.json
+++ b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/meta.json
@@ -5,8 +5,12 @@
"y": 32
},
"license": "CC0-1.0",
- "copyright": "Original work by TJohnson.",
+ "copyright": "Original work by TJohnson. Splits performed by BarryNorfolk",
"states": [
+ {
+ "name": "base",
+ "directions": 4
+ },
{
"name": "secdog",
"directions": 4,
@@ -53,6 +57,56 @@
]
]
},
+ {
+ "name": "tail_static",
+ "directions": 4
+ },
+ {
+ "name": "tail_animated",
+ "directions": 4,
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
{
"name": "secdog_crit",
"delays": [
diff --git a/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/tail_animated.png b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/tail_animated.png
new file mode 100644
index 0000000000..1597432c14
Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/tail_animated.png differ
diff --git a/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/tail_static.png b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/tail_static.png
new file mode 100644
index 0000000000..777092a046
Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Pets/secdog.rsi/tail_static.png differ
diff --git a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/equipped-SUITSTORAGE-secdog.png b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/equipped-SUITSTORAGE-secdog.png
new file mode 100644
index 0000000000..45233c7408
Binary files /dev/null and b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/equipped-SUITSTORAGE-secdog.png differ
diff --git a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/meta.json b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/meta.json
index 937ca0f7f3..b432524cba 100644
--- a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/meta.json
+++ b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/black.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by Radezolid for SUITSTORAGE",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by Radezolid for SUITSTORAGE, modified by BarryNorkfolk for SUITSTORAGE-secdog",
"size": {
"x": 32,
"y": 32
@@ -59,6 +59,10 @@
"name": "equipped-SUITSTORAGE",
"directions": 4
},
+ {
+ "name": "equipped-SUITSTORAGE-secdog",
+ "directions": 4
+ },
{
"name": "on-equipped-SUITSTORAGE",
"directions": 4,
diff --git a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/equipped-SUITSTORAGE-secdog.png b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/equipped-SUITSTORAGE-secdog.png
new file mode 100644
index 0000000000..15c4c9f76a
Binary files /dev/null and b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/equipped-SUITSTORAGE-secdog.png differ
diff --git a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/meta.json b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/meta.json
index 937ca0f7f3..b432524cba 100644
--- a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/meta.json
+++ b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/blue.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by Radezolid for SUITSTORAGE",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by Radezolid for SUITSTORAGE, modified by BarryNorkfolk for SUITSTORAGE-secdog",
"size": {
"x": 32,
"y": 32
@@ -59,6 +59,10 @@
"name": "equipped-SUITSTORAGE",
"directions": 4
},
+ {
+ "name": "equipped-SUITSTORAGE-secdog",
+ "directions": 4
+ },
{
"name": "on-equipped-SUITSTORAGE",
"directions": 4,
diff --git a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/equipped-SUITSTORAGE-secdog.png b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/equipped-SUITSTORAGE-secdog.png
new file mode 100644
index 0000000000..0ba3f43204
Binary files /dev/null and b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/equipped-SUITSTORAGE-secdog.png differ
diff --git a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/meta.json b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/meta.json
index df10b7c1b8..c3efc752f0 100644
--- a/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/meta.json
+++ b/Resources/Textures/_DV/Objects/Tanks/Jetpacks/security.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by Radezolid for SUITSTORAGE. Further modified by TJohnson.",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/1592a112e3d33eec4a0704b518a138d5a976f455, modified by Radezolid for SUITSTORAGE. Further modified by TJohnson, modified by BarryNorkfolk for SUITSTORAGE-secdog",
"size": {
"x": 32,
"y": 32
@@ -59,6 +59,10 @@
"name": "equipped-SUITSTORAGE",
"directions": 4
},
+ {
+ "name": "equipped-SUITSTORAGE-secdog",
+ "directions": 4
+ },
{
"name": "on-equipped-SUITSTORAGE",
"directions": 4,