Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds Purchasable Arena Mob Crates #2563

Merged
merged 16 commits into from
Jan 7, 2025
21 changes: 21 additions & 0 deletions Resources/Prototypes/DeltaV/Catalog/Cargo/cargo_livestock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: 12500
category: cargoproduct-category-name-livestock
group: market
217 changes: 217 additions & 0 deletions Resources/Prototypes/DeltaV/Catalog/Fills/Crates/arena.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
- 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: 2, 5
#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
IamVelcroboy marked this conversation as resolved.
Show resolved Hide resolved
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
#Nanotrasen has not yet developed the technology to hold these creatures
#Rare
#- !type:GroupSelector
# weight: 0.1
# children:
# - id: MobArgocyteLeviathing
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
- type: entity
parent: CrateLivestock
id: CrateLivestockSteel
name: plasteel livestock crate
components:
- type: Weldable
- type: ResistLocker
- type: Icon
sprite: DeltaV/Structures/Storage/Crates/livestock_steel.rsi
state: icon
- type: Sprite
sprite: DeltaV/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: DeltaV/Structures/Storage/Crates/livestock_secure.rsi
state: icon
- type: Sprite
sprite: DeltaV/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: DeltaV/Structures/Storage/Crates/livestock_reinforced.rsi
state: icon
- type: Sprite
sprite: DeltaV/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: DeltaV/Structures/Storage/Crates/livestock_reinforced.rsi
- type: Construction
graph: CrateLivestockSecure
node: cratelivestocksecurereinforced
containers:
- entity_storage
- type: StaticPrice
price: 800
Loading
Loading