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,