From 838ca862c50ce791b027176a1c87cf9446e6ccb3 Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Tue, 7 Jan 2025 13:37:10 -0600 Subject: [PATCH] Adds Purchasable Arena Mob Crates (#2563) * Adds purchasable mobs for the Arena * price fix * accuracy * more a * arbritrargre * Fix crazy high pricetag * comment * DeltaV -> _DV * Increase Killer Tomatoes * Big group of small mobs in large crate * Oops * merpo * bruh --------- Co-authored-by: Velcroboy Co-authored-by: deltanedas <@deltanedas:kde.org> --- Content.IntegrationTests/Tests/CargoTest.cs | 2 + .../_DV/Catalog/Cargo/cargo_livestock.yml | 21 ++ .../_DV/Catalog/Fills/Crates/arena.yml | 235 ++++++++++++++++++ .../Structures/Storage/Crates/crates.yml | 148 +++++++++++ .../Graphs/Storage/steel_livestock_crates.yml | 87 +++++++ .../_DV/Recipes/Crafting/crates.yml | 32 +++ .../DamageOverlay_75.png | Bin 0 -> 502 bytes .../Crates/livestock_reinforced.rsi/base.png | Bin 0 -> 1468 bytes .../livestock_reinforced.rsi/closed.png | Bin 0 -> 816 bytes .../Crates/livestock_reinforced.rsi/icon.png | Bin 0 -> 1757 bytes .../livestock_reinforced.rsi/locked.png | Bin 0 -> 179 bytes .../Crates/livestock_reinforced.rsi/meta.json | 48 ++++ .../Crates/livestock_reinforced.rsi/open.png | Bin 0 -> 355 bytes .../livestock_reinforced.rsi/sparking.png | Bin 0 -> 206 bytes .../livestock_reinforced.rsi/unlocked.png | Bin 0 -> 184 bytes .../livestock_reinforced.rsi/welded.png | Bin 0 -> 283 bytes .../Crates/livestock_secure.rsi/base.png | Bin 0 -> 1227 bytes .../Crates/livestock_secure.rsi/closed.png | Bin 0 -> 750 bytes .../Crates/livestock_secure.rsi/icon.png | Bin 0 -> 1438 bytes .../Crates/livestock_secure.rsi/locked.png | Bin 0 -> 179 bytes .../Crates/livestock_secure.rsi/meta.json | 45 ++++ .../Crates/livestock_secure.rsi/open.png | Bin 0 -> 355 bytes .../Crates/livestock_secure.rsi/sparking.png | Bin 0 -> 206 bytes .../Crates/livestock_secure.rsi/unlocked.png | Bin 0 -> 184 bytes .../Crates/livestock_secure.rsi/welded.png | Bin 0 -> 283 bytes .../Crates/livestock_steel.rsi/base.png | Bin 0 -> 1227 bytes .../Crates/livestock_steel.rsi/closed.png | Bin 0 -> 693 bytes .../Crates/livestock_steel.rsi/icon.png | Bin 0 -> 1648 bytes .../Crates/livestock_steel.rsi/meta.json | 26 ++ .../Crates/livestock_steel.rsi/open.png | Bin 0 -> 355 bytes .../Crates/livestock_steel.rsi/welded.png | Bin 0 -> 283 bytes 31 files changed, 644 insertions(+) create mode 100644 Resources/Prototypes/_DV/Catalog/Fills/Crates/arena.yml create mode 100644 Resources/Prototypes/_DV/Entities/Structures/Storage/Crates/crates.yml create mode 100644 Resources/Prototypes/_DV/Recipes/Crafting/Graphs/Storage/steel_livestock_crates.yml create mode 100644 Resources/Prototypes/_DV/Recipes/Crafting/crates.yml create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/DamageOverlay_75.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/base.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/closed.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/icon.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/locked.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/meta.json create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/open.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/sparking.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/unlocked.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/welded.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/base.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/closed.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/icon.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/locked.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/meta.json create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/open.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/sparking.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/unlocked.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/welded.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/base.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/closed.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/icon.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/meta.json create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/open.png create mode 100644 Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/welded.png diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs index 234d00f3ed9..06c5fd2b0a2 100644 --- a/Content.IntegrationTests/Tests/CargoTest.cs +++ b/Content.IntegrationTests/Tests/CargoTest.cs @@ -23,6 +23,8 @@ public sealed class CargoTest [ // This is ignored because it is explicitly intended to be able to sell for more than it costs. // new("FunCrateGambling") // DeltaV - no gambling + new("LivestockArenaMobLarge"), // Deltav - add crate to exceptions + new("LivestockArenaMobSmall") // Deltav - add crate to exceptions ]; [Test] diff --git a/Resources/Prototypes/_DV/Catalog/Cargo/cargo_livestock.yml b/Resources/Prototypes/_DV/Catalog/Cargo/cargo_livestock.yml index 6cf8d68f4ae..d5be74e7bf8 100644 --- a/Resources/Prototypes/_DV/Catalog/Cargo/cargo_livestock.yml +++ b/Resources/Prototypes/_DV/Catalog/Cargo/cargo_livestock.yml @@ -7,3 +7,24 @@ cost: 3500 category: Livestock group: market + +#Move to armory if we ever do access-specific purchasing +- type: cargoProduct + id: LivestockArenaMobSmall + icon: + sprite: Mobs/Aliens/Carps/space.rsi + state: icon + product: CrateArenaMobSmall + cost: 4000 + category: cargoproduct-category-name-livestock + group: market + +- type: cargoProduct + id: LivestockArenaMobLarge + icon: + sprite: Mobs/Aliens/Xenos/queen.rsi + state: running + product: CrateArenaMobLarge + cost: 6000 + category: cargoproduct-category-name-livestock + group: market diff --git a/Resources/Prototypes/_DV/Catalog/Fills/Crates/arena.yml b/Resources/Prototypes/_DV/Catalog/Fills/Crates/arena.yml new file mode 100644 index 00000000000..30db65e7dd6 --- /dev/null +++ b/Resources/Prototypes/_DV/Catalog/Fills/Crates/arena.yml @@ -0,0 +1,235 @@ +- type: entity + id: CrateArenaMob + parent: CrateLivestockSecureReinforced + abstract: true + name: arena dangerous creature crate + description: A reinforced crate containing a dangerous creature for sanctioned gladiators to fight in the arena. Warning-Do not open without proper security protocols in place. + components: + - type: AccessReader + access: [["Armory"]] + +- type: entity + id: CrateArenaMobSmall + parent: CrateArenaMob + name: arena dangerous creature(small) crate + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: SmallArenaMobTable + +- type: entity + id: CrateArenaMobLarge + parent: CrateArenaMob + name: arena dangerous creature(large) crate + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: LargeArenaMobTable + +#Tables +- type: entityTable + id: SmallArenaMobTable + table: !type:GroupSelector + children: + #Common + - !type:GroupSelector + weight: 10 + children: + - !type:GroupSelector + children: + - id: MobCarp + amount: !type:RangeNumberSelector + range: 1, 4 + - id: MobCarpMagic + amount: !type:RangeNumberSelector + range: 1, 4 + - id: MobCarpHolo + amount: !type:RangeNumberSelector + range: 1, 4 + - id: MobCarpRainbow + amount: !type:RangeNumberSelector + range: 1, 4 + - id: MobShark + weight: 0.2 + amount: !type:RangeNumberSelector + range: 1, 2 + - !type:GroupSelector + children: + - id: MobPurpleSnake + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobCobraSpace + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobSmallPurpleSnake + amount: !type:RangeNumberSelector + range: 1, 6 + weight: 0.4 + - !type:GroupSelector + children: + - id: MobArgocyteSkitter + amount: !type:RangeNumberSelector + range: 1, 4 + - id: MobArgocyteSwiper + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobArgocyteMolder + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobArgocytePouncer + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobArgocyteGlider + amount: !type:RangeNumberSelector + range: 1, 2 + - id: MobArgocyteHarvester + amount: !type:RangeNumberSelector + range: 1, 2 + #Nanotrasen has not yet developed the technology to hold these creatures + #- id: MobArgocyteCrawler + # amount: !type:RangeNumberSelector + # range: 1, 2 + - !type:GroupSelector + children: + - id: MobWatcherLavaland + amount: !type:RangeNumberSelector + range: 1, 2 + - id: MobWatcherIcewing + amount: !type:RangeNumberSelector + range: 1, 2 + - id: MobWatcherMagmawing + amount: !type:RangeNumberSelector + range: 1, 2 + - id: MobWatcherPride + amount: !type:RangeNumberSelector + range: 1, 2 + weight: 0.1 + - !type:GroupSelector + children: + - id: MobAdultSlimesBlueAngry + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobAdultSlimesGreenAngry + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobAdultSlimesYellowAngry + amount: !type:RangeNumberSelector + range: 1, 3 + - id: MobTomatoKiller + amount: !type:RangeNumberSelector + range: 4, 8 + #Uncommon + - !type:GroupSelector + weight: 0.5 + children: + - id: MobLaserRaptor + weight: 10 + - id: MobLaserRaptor + amount: !type:ConstantNumberSelector + value: 2 + - id: MobFleshClamp + amount: !type:ConstantNumberSelector + value: 3 + +- type: entityTable + id: LargeArenaMobTable + table: !type:GroupSelector + children: + #Common + - !type:GroupSelector + weight: 10 + children: + - !type:GroupSelector + children: + - id: MobBearSpace + - id: MobKangarooSpace + - id: MobKangarooSpace + #Nanotrasen has not yet developed the technology to hold these creatures + #- !type:GroupSelector + #children: + #- id: MobArgocyteEnforcer + #- id: MobArgocyteFounder + - !type:GroupSelector + children: + - id: MobXeno + - id: MobXenoPraetorianNPC + - id: MobXenoDroneNPC + - id: MobXenoRavagerNPC + - id: MobXenoRunnerNPC + - id: MobXenoRounyNPC + - id: MobXenoSpitterNPC + - id: MobXenoQueenNPC + - !type:GroupSelector + children: + - id: MobQuartzCrab + - id: MobIronCrab + - id: MobUraniumCrab + - id: MobSilverCrab + - !type:GroupSelector + weight: 0.5 + children: + - id: MobQuartzCrab + amount: !type:ConstantNumberSelector + value: 2 + - id: MobIronCrab + amount: !type:ConstantNumberSelector + value: 2 + - id: MobUraniumCrab + amount: !type:ConstantNumberSelector + value: 2 + - id: MobSilverCrab + amount: !type:ConstantNumberSelector + value: 2 + - !type:GroupSelector + children: + - id: ReagentSlimeBeer + weight: 1.5 + - id: ReagentSlimePax + - id: ReagentSlimeNocturine + weight: 1.5 + - id: ReagentSlimeTHC + weight: 1.5 + - id: ReagentSlimeBicaridine + - id: ReagentSlimeToxin + weight: 1.5 + - id: ReagentSlimeNapalm + - id: ReagentSlimeMuteToxin + - id: ReagentSlimeNorepinephricAcid + - id: ReagentSlimeEphedrine + - id: ReagentSlimeRobustHarvest + - id: ReagentSlimeOmnizine + weight: 0.5 + #Uncommon + - !type:GroupSelector + weight: 0.5 + children: + - id: MobFleshJared + - id: MobFleshGolem + - id: MobFleshLover + - id: MobAbomination + - !type:GroupSelector + weight: 0.5 + children: + - id: MobCarp + amount: !type:ConstantNumberSelector + value: 6 + - id: MobCobraSpace + amount: !type:ConstantNumberSelector + value: 6 + - id: MobArgocytePouncer + amount: !type:ConstantNumberSelector + value: 6 + - id: MobWatcherPride + amount: !type:ConstantNumberSelector + value: 6 + - id: MobAdultSlimesGreenAngry + amount: !type:ConstantNumberSelector + value: 6 + #Nanotrasen has not yet developed the technology to hold these creatures + #Rare + #- !type:GroupSelector + # weight: 0.1 + # children: + # - id: MobArgocyteLeviathing diff --git a/Resources/Prototypes/_DV/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/_DV/Entities/Structures/Storage/Crates/crates.yml new file mode 100644 index 00000000000..7bda3ce24b3 --- /dev/null +++ b/Resources/Prototypes/_DV/Entities/Structures/Storage/Crates/crates.yml @@ -0,0 +1,148 @@ +- type: entity + parent: CrateLivestock + id: CrateLivestockSteel + name: plasteel livestock crate + components: + - type: Weldable + - type: ResistLocker + - type: Icon + sprite: _DV/Structures/Storage/Crates/livestock_steel.rsi + state: icon + - type: Sprite + sprite: _DV/Structures/Storage/Crates/livestock_steel.rsi + layers: + - state: base + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] + - state: paper + sprite: Structures/Storage/Crates/labels.rsi + offset: "-0.25,0.625" + map: ["enum.PaperLabelVisuals.Layer"] + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + SheetPlasteel1: + min: 1 + max: 4 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: CrateLivestockSecure + node: cratelivestocksteel + containers: + - entity_storage + - type: Reflect + reflects: + - Energy + reflectProb: 0.2 + spread: 90 + - type: StaticPrice + price: 250 + +- type: entity + parent: CrateLivestockSteel + id: CrateLivestockSecure + name: secure plasteel livestock crate + components: + - type: Lock + - type: LockVisuals + - type: AccessReader + - type: Icon + sprite: _DV/Structures/Storage/Crates/livestock_secure.rsi + state: icon + - type: Sprite + sprite: _DV/Structures/Storage/Crates/livestock_secure.rsi + layers: + - state: base + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] + - state: locked + map: ["enum.LockVisualLayers.Lock"] + shader: unshaded + - state: paper + sprite: Structures/Storage/Crates/labels.rsi + offset: "-0.25,0.625" + map: ["enum.PaperLabelVisuals.Layer"] + - type: Construction + graph: CrateLivestockSecure + node: cratelivestocksteelsecure + containers: + - entity_storage + - type: StaticPrice + price: 500 + +- type: entity + parent: CrateLivestockSecure + id: CrateLivestockSecureReinforced + name: reinforced secure plasteel livestock crate + components: + - type: Icon + sprite: _DV/Structures/Storage/Crates/livestock_reinforced.rsi + state: icon + - type: Sprite + sprite: _DV/Structures/Storage/Crates/livestock_reinforced.rsi + layers: + - state: base + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] + - state: locked + map: ["enum.LockVisualLayers.Lock"] + shader: unshaded + - state: paper + sprite: Structures/Storage/Crates/labels.rsi + offset: "-0.25,0.625" + map: ["enum.PaperLabelVisuals.Layer"] + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: StructuralMetallicStrong + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - type: Appearance + - type: DamageVisuals + thresholds: [75] + trackAllDamage: true + damageOverlay: + sprite: _DV/Structures/Storage/Crates/livestock_reinforced.rsi + - type: Construction + graph: CrateLivestockSecure + node: cratelivestocksecurereinforced + containers: + - entity_storage + - type: StaticPrice + price: 800 diff --git a/Resources/Prototypes/_DV/Recipes/Crafting/Graphs/Storage/steel_livestock_crates.yml b/Resources/Prototypes/_DV/Recipes/Crafting/Graphs/Storage/steel_livestock_crates.yml new file mode 100644 index 00000000000..c4ccf376fbe --- /dev/null +++ b/Resources/Prototypes/_DV/Recipes/Crafting/Graphs/Storage/steel_livestock_crates.yml @@ -0,0 +1,87 @@ +- type: constructionGraph + id: CrateLivestockSecure + start: start + graph: + - node: start + edges: + - to: cratelivestocksteel + steps: + - material: Plasteel + amount: 5 + doAfter: 5 + - tool: Welding + doAfter: 5 + + + - node: cratelivestocksteel + entity: CrateLivestockSteel + edges: + - to: cratelivestocksteelsecure + steps: + - material: Plasteel + amount: 1 + - material: Cable + amount: 2 + doAfter: 5 + - tool: Screwing + doAfter: 5 + - to: start + steps: + - tool: Welding + doAfter: 5 + conditions: + - !type:StorageWelded + welded: false + completed: + - !type:SpawnPrototype + prototype: SheetPlasteel1 + amount: 5 + - !type:EmptyAllContainers + - !type:DeleteEntity + + + - node: cratelivestocksteelsecure + entity: CrateLivestockSecure + edges: + - to: cratelivestocksecurereinforced + steps: + - material: Plasteel + amount: 6 + - tool: Screwing + doAfter: 5 + - to: cratelivestocksteel + steps: + - tool: Screwing + doAfter: 5 + conditions: + - !type:StorageWelded + welded: false + - !type:Locked + locked: false + completed: + - !type:SpawnPrototype + prototype: SheetPlasteel1 + amount: 1 + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 2 + - !type:DeleteEntity + + + - node: cratelivestocksecurereinforced + entity: CrateLivestockSecureReinforced + edges: + - to: cratelivestocksteelsecure + steps: + - tool: Screwing + doAfter: 5 + conditions: + - !type:StorageWelded + welded: false + - !type:Locked + locked: false + completed: + - !type:SpawnPrototype + prototype: SheetPlasteel1 + amount: 6 + - !type:DeleteEntity diff --git a/Resources/Prototypes/_DV/Recipes/Crafting/crates.yml b/Resources/Prototypes/_DV/Recipes/Crafting/crates.yml new file mode 100644 index 00000000000..a2dd2c3fb64 --- /dev/null +++ b/Resources/Prototypes/_DV/Recipes/Crafting/crates.yml @@ -0,0 +1,32 @@ +- type: construction + name: steel livestock crate + id: CrateLivestockSteel + graph: CrateLivestockSecure + startNode: start + targetNode: cratelivestocksteel + category: construction-category-storage + description: A plasteel crate for holding livestock. + icon: { sprite: _DV/Structures/Storage/Crates/livestock_steel.rsi, state: icon } + objectType: Structure + +- type: construction + name: secure steel livestock crate + id: CrateLivestockSecure + graph: CrateLivestockSecure + startNode: cratelivestocksteel + targetNode: cratelivestocksteelsecure + category: construction-category-storage + description: A lockable plasteel crate for holding livestock. + icon: { sprite: _DV/Structures/Storage/Crates/livestock_secure.rsi, state: icon } + objectType: Structure + +- type: construction + name: reinforced secured steel livestock crate + id: CrateLivestockReinforced + graph: CrateLivestockSecure + startNode: cratelivestocksteelsecure + targetNode: cratelivestocksecurereinforced + category: construction-category-storage + description: A reinforced and lockable plasteel crate for holding livestock. + icon: { sprite: _DV/Structures/Storage/Crates/livestock_reinforced.rsi, state: icon } + objectType: Structure diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/DamageOverlay_75.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/DamageOverlay_75.png new file mode 100644 index 0000000000000000000000000000000000000000..c117d9a716b8e58046bfa1befcdb63b33ee684bb GIT binary patch literal 502 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/locked.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/locked.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4d496f97917adeb76deeaa86422e4928ac1664 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJDo+>3kO=qW6p4fb76-l=_gE#E zu(&y+5N%}~d!|m`E>id7gN5o^txe7gw3U9<-|Sl2qu62viuD3zrC0UW7B=(f z)YnB9?yYhy)0psb;@5Jd+{XI(`Y`36Qv;U4Bba0aSeAjvAFac@n+DL_K_3{aunI-4JQ3eT)!3U6y! zet!P*M;=knXVmlaX#f}u379%c}Ul{uw)`J2qJF0KdzH`5~Sxs&4=Q002ovPDHLkV1h7f BjZ**s literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/sparking.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/sparking.png new file mode 100644 index 0000000000000000000000000000000000000000..87b78b9b4653d54a703643d161f7f8bf353995df GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^2|(QXSZ^$5X5FCBsLJs@fG2hgpXAxzo?UdK185n8r>mdKI;Vst0DN#gB>(^b literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/unlocked.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_reinforced.rsi/unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..94a75679ec2715f5a5c77f63ae359861b080c392 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJdQTU}kO=qW6p4fb76-l=_gE#E zu(&y+5N%}~FaB>Y-*cj(z+QE&)+Xl#g`L;_`wGhN*!-`Y%eQILdyY-A7dC`Eu6O>z z>-PHouRixk{YkQ1Db@@kZ;t(6D|_BZPW5)t1W6IghDkfxU&@vq$l&N{0}>1j(H-K7 Uvy8EDn4#?y*WR zVR3T?5^Z@LPo6*jA08N(c;f8Yr6+__ve_&joSdxAlYM=i>TR9?Q-^KO7|R`eU60l) zDk`=u+GMoJ*0GEuWy$jY;({VA;Y)O7WmBx1a(ZVvxN|Vee*F16yscAMeR3|}O{v7d z4DQmXzcV~N0w+3@nJqaH crgD}cDLFuK;;q|dK;JTWy85}Sb4q9e0PU-94*&oF literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/base.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..1bda2f7ea867196c93156e90fd2965796078d7a2 GIT binary patch literal 1227 zcmV;+1T_1JP)M9|H0jtepA^{m&y~ zir;87yySd_T=HlJ)BF|nw(BqDd(q%ob*9~J8)Ipc=Mj9NTBUBcON(DF(%{KZgbW66 z8iW*c+C;>YKbEJ~N{g!gekO<*K%?I9s}Q);gbW}z-LX85GkpMyir}KQvO5) z5bT+Rhy&pCOdA0#0$>Q34H}O}2Ki+$7k@J@q#zUOz3|xFd<*Em(~*1VDtd*xsJuDBUx+7>kPK{JmCi};f?P4Gzvr| zXadkPuCL-X{2%mz*2)b))Tq0G6s*Pjfu;a&$L3?{Ue!?do5BN9f%4fpS(Zif^Yhf( z>``y4N6xSJG^V8LCg^PTEgb5SI8-V?xm>1){XU)a0nVJAr>&m=(2D>#=q%tI$I;?h zRsr(^0ndZia9`l2)>^qqKOVnAFRm9u<+T(rKpy}x1rVG8=-EST$=yZ{-dqjDbHTMr zHX4m&T3apZpIN0p_MXz;*CfP|0PjPAVvqs^-~4%#GEaY>Xp0ai;nYI_ToS&zL4Ess zdIW$MX#i#gc42QY``D@iOs4z6Lp5Y*94G(}^zGG`17Jxx5U0R>wu{m-JXKR_lL0RJ zmDPS{jb8t2U{-)1#V36a&>^ev`F5$@+$Sp$DMAW9O0BZ+q+hWDjKD z1wg?PrV<9^0f1nb7}S)6qF~|ZIh#;cLEpZG6dXc>2#2p*(B1(1OX zn3BCtTo+MxN_H5KFZoSsG=5HtU&!Y6)z{z9+}s>}^6`h06<`2aRz(EZr|rA9$hPem zP_hK0GL+|c9-~iyF`GjlxBvh=n$t~KK_A$W3aBFhNV9;cPGuvK3P=+km{U-xRJ?k< zPMzBwa`vJwck0s%LhS9ks}M93d)YJvOwO@VOW!V0bGb>oAKf8${3rdh@`0X$5TMhc zd|oQxID1sEO8kmI&cH!sSmH?+8qS|r(_z89Oc|^h4u?L#GQII8;^N-+rlATXK!ZA+ zwgM1uw^j+8gCKIetM&e)0h-i*?=rb-pPQcr0^nSoZvW7s6QKeL04TuU-t(UWE)*E- zV-16;%CHHc9xHPI1-@HaqUC0j9_;MII$7*OO9Ae(7h>|p6p*Eud?*Dasi&YxJE;Ir zpaTUW4@dy6>wTP>J-`xZV9MinQVP-mxC+>W1(-0F>mctXpm_SJRRI31m@_ir6bjg< zPa~ft0l@{wolN``oA~yd_;r+6%O%LaFRop^n(hJHJ{7juXd6byoimc pZ+i6c<7bbq^lxMk{1@$6{x7-)*FTCI=*Iv6002ovPDHLkV1k6E{^)mO6wn4d8pKoJa{3j*_AZkeBU=S(deF+cF*x?4Pec{nt?R~50?Q?ctPz$ zjqLX}ot(IIlS9wES?-$`7eDFg?lYpPI*%SgTGktjTJ4s+a2)5>L~p(DJTGW88e~;1 zasfcsbrM3zU9Il-Q!-z^S~?fPC%srCpALXGgaplH z07?S2cNqW}h@UeWmhKqRF`!founC*>MwCfQW<2wt%s5BV0|1b;tm->>=M%0p066-0 z6Ar;Z6AY9fLI1pucp8b(Sb9N-aE~)EhTet9q~UuRJfNyTnMny9L>3%e4I)l*wDWi; zyk5vtdgmL;5a+2RSTrHKnHOuly{*&87c}`jk%0%71Ilmam&+7-S+B!Bkh%)u3`h?w z7=an+^?Fn;mqP~Rnm@n{umoJ9sTf$5AY?!_q{*KN0Q3Q%MEQ+X28`z!`#=%^&W{&& z-YYP`nO|amGGky~55`^zji{eNf~XI0J-4Cd6w!ST9w@>CV1gM?E5ETBRtLPHAv zG<55(wB=#iX~?sH0jOc5l2`kjfyE{e{^P7zrr{KbLtLaux8$uE*E3RoF_NU**`gFsUDk!vFvP07*qoM6N<$g2fL=-v9sr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/icon.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b90ff753e33a6cd87251878ce08379e50d0d5cc8 GIT binary patch literal 1438 zcmV;P1!4M$P)yz()Rs)e$Vs#e(yN}`k!0C z@BBnUGl&`-LjkIiA^La;hHI^Aesj*}UVBeAoAo`*(>XYpF#7spR4f)KIrKSg|G6uU zRE;-PM~c1%^i&-^aw@vpUv8(&e1>8%-mgf0ARGV^TEd9MV`4ooNDd9t4gjp+yFF$n zYc592&|`gZYHw?;0Z@CoK{x><003w$07(GY0hkrq-+$&qzl2i7UqclkzaZ6VZf+J) zx3^jh{5JsDt5{$L6o4YNw6r(_mnVa2=EjV}jDBzL8O8en;1vK^fCP~AlmG_7K%Wl- zMepIY9-9QVugpLj7?_)%qgWh!0-T=@d?bh?s%nja<4-oj^|;cxLYk0+3J5PPy0XF7 z1H5MelReFyTb|$8PDo<50Dc>W@B^pt3Nq_dCX^YF^bOvo__5^h9R62zATxgxAmUV9 zK`Jgf>w$*>-jxq$>O3_^1!jI8pPEi=wf)e2Y6d1ICTMJIj8b2wC_R;SMJwH=>tzaG zh**VD6(tO7A8C|Z&WUw;xlGCA6%kZj0O4?$)^(k(1HjDm3~2+J01ylYsZyzkPt}Sm z1*BMKf!q^rVSO)`1n#*Kpy?23r{o^nCdrE>hC4d|NbYZ%) z<|_bpeUwSH%Phey0icY4t_WY#&MfmvptM{E@Af&`mV0!6c(0k=d9 zU=q?XAZAnpdzv*IV7`Sv$7$umR290 z-UB57kj=nfKp1D^H{M8=!q96WnTj??sVv}P#2(#!L_Arb z04TR_ZdK^{;UQgYY@(l^A5ddcqbE(J33HNxC!B_|xP5`T5(BW0g-T$5bnSa+SK@9*F6!LkR zMkQ2Qvd6ZdeHWtL#HNQwhqWUc&%7wI!Yb7UfWJez+gV{w3&1!vy~I~Gvfvk=EO-M9 z3}^`~$Wk5vxD+b@wbN{FPp8wAN~L^i1Owm#ChLct0sZxFsk%7ee-{V_KGtaIR*vrG z@0b!uExB2BKvqNrz}?St`8G^X%Ug5_jD9mRLgS;O^r&2Rlz+z$y9D_HBtRwPLS$V= z&R`k9)vr<%a9k0RB6}Jx1Hd)Y1Le8^z(5WRC<*M>s{JZvaVOK0bk!ySGr^7L*|UHp zU;yJVVSNCc1z5lUxb1H5Qd>uxkIqE>{U2i99p5pvjvs359;gc-`u1BCeD$nY6o6g% zolr1*;?u9~dE93%ry#%JOhK}`9*9P}&C^t+_YKh2>3vLfzpp6iIH(gD;9c2>-Xp!? ss~%_U)-O43e`yI&`SD|i>G_<00frG!PBe3kO=qW6p4fb76-l=_gE#E zu(&y+5N%}~d!|m`E>id7gN5o^txe7gw3U9<-|Sl2qu62viuD3zrC0UW7B=(f z)YnB9?yYhy)0psb;@5Jd+{XI(`Y`36Qv;U4Bba0aSeAjvAFac@n+DL_K_3{aunI-4JQ3eT)!3U6y! zet!P*M;=knXVmlaX#f}u379%c}Ul{uw)`J2qJF0KdzH`5~Sxs&4=Q002ovPDHLkV1h7f BjZ**s literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/sparking.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/sparking.png new file mode 100644 index 0000000000000000000000000000000000000000..87b78b9b4653d54a703643d161f7f8bf353995df GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^2|(QXSZ^$5X5FCBsLJs@fG2hgpXAxzo?UdK185n8r>mdKI;Vst0DN#gB>(^b literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/unlocked.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_secure.rsi/unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..94a75679ec2715f5a5c77f63ae359861b080c392 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJdQTU}kO=qW6p4fb76-l=_gE#E zu(&y+5N%}~FaB>Y-*cj(z+QE&)+Xl#g`L;_`wGhN*!-`Y%eQILdyY-A7dC`Eu6O>z z>-PHouRixk{YkQ1Db@@kZ;t(6D|_BZPW5)t1W6IghDkfxU&@vq$l&N{0}>1j(H-K7 Uvy8EDn4#?y*WR zVR3T?5^Z@LPo6*jA08N(c;f8Yr6+__ve_&joSdxAlYM=i>TR9?Q-^KO7|R`eU60l) zDk`=u+GMoJ*0GEuWy$jY;({VA;Y)O7WmBx1a(ZVvxN|Vee*F16yscAMeR3|}O{v7d z4DQmXzcV~N0w+3@nJqaH crgD}cDLFuK;;q|dK;JTWy85}Sb4q9e0PU-94*&oF literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/base.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..1bda2f7ea867196c93156e90fd2965796078d7a2 GIT binary patch literal 1227 zcmV;+1T_1JP)M9|H0jtepA^{m&y~ zir;87yySd_T=HlJ)BF|nw(BqDd(q%ob*9~J8)Ipc=Mj9NTBUBcON(DF(%{KZgbW66 z8iW*c+C;>YKbEJ~N{g!gekO<*K%?I9s}Q);gbW}z-LX85GkpMyir}KQvO5) z5bT+Rhy&pCOdA0#0$>Q34H}O}2Ki+$7k@J@q#zUOz3|xFd<*Em(~*1VDtd*xsJuDBUx+7>kPK{JmCi};f?P4Gzvr| zXadkPuCL-X{2%mz*2)b))Tq0G6s*Pjfu;a&$L3?{Ue!?do5BN9f%4fpS(Zif^Yhf( z>``y4N6xSJG^V8LCg^PTEgb5SI8-V?xm>1){XU)a0nVJAr>&m=(2D>#=q%tI$I;?h zRsr(^0ndZia9`l2)>^qqKOVnAFRm9u<+T(rKpy}x1rVG8=-EST$=yZ{-dqjDbHTMr zHX4m&T3apZpIN0p_MXz;*CfP|0PjPAVvqs^-~4%#GEaY>Xp0ai;nYI_ToS&zL4Ess zdIW$MX#i#gc42QY``D@iOs4z6Lp5Y*94G(}^zGG`17Jxx5U0R>wu{m-JXKR_lL0RJ zmDPS{jb8t2U{-)1#V36a&>^ev`F5$@+$Sp$DMAW9O0BZ+q+hWDjKD z1wg?PrV<9^0f1nb7}S)6qF~|ZIh#;cLEpZG6dXc>2#2p*(B1(1OX zn3BCtTo+MxN_H5KFZoSsG=5HtU&!Y6)z{z9+}s>}^6`h06<`2aRz(EZr|rA9$hPem zP_hK0GL+|c9-~iyF`GjlxBvh=n$t~KK_A$W3aBFhNV9;cPGuvK3P=+km{U-xRJ?k< zPMzBwa`vJwck0s%LhS9ks}M93d)YJvOwO@VOW!V0bGb>oAKf8${3rdh@`0X$5TMhc zd|oQxID1sEO8kmI&cH!sSmH?+8qS|r(_z89Oc|^h4u?L#GQII8;^N-+rlATXK!ZA+ zwgM1uw^j+8gCKIetM&e)0h-i*?=rb-pPQcr0^nSoZvW7s6QKeL04TuU-t(UWE)*E- zV-16;%CHHc9xHPI1-@HaqUC0j9_;MII$7*OO9Ae(7h>|p6p*Eud?*Dasi&YxJE;Ir zpaTUW4@dy6>wTP>J-`xZV9MinQVP-mxC+>W1(-0F>mctXpm_SJRRI31m@_ir6bjg< zPa~ft0l@{wolN``oA~yd_;r+6%O%LaFRop^n(hJHJ{7juXd6byoimc pZ+i6c<7bbq^lxMk{1@$6{x7-)*FTCI=*Iv6002ovPDHLkV1k6A0L0whmX5@l2`fvBp>eaSGpSgl)F98doj=#7Z^Yg1mvE$5`b;nB!rMpGs5YF zy4?dxa`U{$!JbyD4FFg50km<^^=L$v-INig_!-n;7*em-TLEjx_#5~=NdVD9L?RXy z8JK~AVL%LkBgsd;Vt@f0^d#$MutW@ynd5WJNHqy&0st-npd~MIY=>eIuSua8=;9?w zK_Uil4(S+BH2`9s4le>a(UBC}c7wujA|+TGngZh;=EL*ODwq%e0s!bhg4?@D@@h;d z!~zjF0l;{G8L(&px|lZ0-XiyfqPt}WL6e@ZbH4J#Mh&}5AR$f3oz%M z)ks6WD2g%$IK|=w5nC2bz`z$sz-j1!fmnNiG1NDqWMC*w7=eMZ!4h-c2@Ij)^_U?>c@}zrP!FMQ0g$@`#$yi{StB*K&Ngmm}wJc5@dBi zX>I_hc}ICf*8%q!P3%H-(aI8Bq8sl2qZbqz;CA#!b_4eaz2K%!FUS=l(^l6TQVIsn z*CgOd$OVh{{g*Uk`j(3&Z8x_II`fN;4i9NO9%pN&73R(j@KIAqg3`Qug~|8(P527I bmR|W6WHhQUoT^y|00000NkvXXu0mjf<_R#e literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/icon.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1317211716893a4c18daf358a6d917c38b166b8b GIT binary patch literal 1648 zcmV-$29NoPP)k3H82w(8xfdx~* z6*aB3F>%HYRMMsuX~Ra;n*QJ@1EWo_d7kgS`+oD%I&OS3nZDk4f6hJM`ObH*LjUul zxUC;F^2Z8(9wG%Vs)848;SNPMr#7-0)SHCcG~z2>bk0oz9z1wR?HvH{EEu?k z5QKSC9?X-b4H!5G2KKrzkkPehu3|8c7Y@9RLnxOl3|yf|dl)+TR{%H!?EqV$Oj;A+ zhL1&r*1kHPp{thx=2d*EKua0A?#KpL4e*?4bhbS%TC1kT0aw8wAc;i6f*=O4ZU~$y zC`NlQiA*z|o+sj8bvDQk+M2dL8Vl`|$pXN2yC2vXh$0I-kTIvbSnLoq5EiQM@9(D%&zzy7N4qI8kPs6(qfjW!QS%O;v`m?U>=tv_CK?$XC2vy$ zsTGX_eGoInw!J8UX$irBs|W!3+j%N36fs{xWYm?RA)0T!MnC@g2mL*ufv^EMcKn#k zVxsuTI3+J7i2?9Vc<0VKzyNgXw$%en90hYcju|PhuEGXTz0?YgZT^Jr0l?#00CKq; zwT41;>f|W^xCj7#N{yvJYZEOjEZ9OJ06;Uv;$l^ZVgPV{-~#wkX|-IU{8XL-t*tcn z^hfIhXnV1ZCcm4ccsx#*29wk&cjBgdodImjq*6K%GoXoAp;GxT+TFH?Zrr>{XV?1Z zsnSwy2CM**01!k7rf2eE1zm(iDLRdTh-AP^OQ5^K3z4F4(BDeavr}TsYNm+P-}|z5LSdY5;r`YZhr(5JsdkkOu?WW3N1V8ro7x_6)p$ z(0!k$#YLpyU8Ldba6^>lLf~_V@OO6&a4mS=w}T3E^ELp}0H9#;V$qoeS&;?o172i_ z{+%&!`d0Y>?0xvTFX+kA%0?kjDBjbf`2coeGGNUG6^E8Ay@I2cD+B%@#?1&&Rv-B6 z&-bbF=x18H+Ezn^@PQC~K-YjCOO^)H*#wm@Nar)NU>QD9Z?tpn2mK)!(Xc>VF0azm z)Qs?fiHWa;F!MQ=EI1A)3?W@^!3R!3go6;F4#3zu>ZOV_VEBo|1?uj8(`FHxN>qd( zXw-rd0JOmeZo&sX{pmHTTtDDm3)qScALw~kiqH&!=>u9(N+c2h&@KHzYC!rxbU%z} zP^+T44@|-b`g+gWB4+#NEdZF(Lx5Uv5gKT*)B@X91p^uYGdp11Rv<@?X3-f8PE^9Y{kL{EM?VNin%IkAz%R7vjm6a+XMIGakI12!W(oSP=KxX zY+r2vKHp9?8ttT1YJ|qezY>$KEUnPihON%c3uoNd(LrP5b;@5Jd+{XI(`Y`36Qv;U4Bba0aSeAjvAFac@n+DL_K_3{aunI-4JQ3eT)!3U6y! zet!P*M;=knXVmlaX#f}u379%c}Ul{uw)`J2qJF0KdzH`5~Sxs&4=Q002ovPDHLkV1h7f BjZ**s literal 0 HcmV?d00001 diff --git a/Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/welded.png b/Resources/Textures/_DV/Structures/Storage/Crates/livestock_steel.rsi/welded.png new file mode 100644 index 0000000000000000000000000000000000000000..c72df542aa386965777763e73f60f2c0d3f3e204 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJN1iT@ArbD$DG~_>EDn4#?y*WR zVR3T?5^Z@LPo6*jA08N(c;f8Yr6+__ve_&joSdxAlYM=i>TR9?Q-^KO7|R`eU60l) zDk`=u+GMoJ*0GEuWy$jY;({VA;Y)O7WmBx1a(ZVvxN|Vee*F16yscAMeR3|}O{v7d z4DQmXzcV~N0w+3@nJqaH crgD}cDLFuK;;q|dK;JTWy85}Sb4q9e0PU-94*&oF literal 0 HcmV?d00001