Move salvage RandomSpawners to EntityTableSpawners (#43233)

* Move salvage RandomSpawners to EntityTableSpawners

* Spellcheck

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Apply requested changes for spawner

* Move another prob to parent selector

* Why wasn't it that before

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
This commit is contained in:
SnappingOpossum 2026-03-20 09:37:14 +11:00 committed by Coryler
parent 019d934075
commit bb809cd5a0
3 changed files with 181 additions and 190 deletions

View File

@ -1,22 +1,28 @@
- type: entityTable
id: RandomCrystalTable
table: !type:GroupSelector
children:
- id: CrystalGreen
- id: CrystalPink
- id: CrystalOrange
- id: CrystalBlue
- id: CrystalCyan
- id: CrystalYellow
- id: CrystalBlack
- id: CrystalGrey
- type: entity
name: Crystal Spawner
suffix: 70%
id: CrystalSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Structures/Decoration/crystal.rsi
state: crystal_grey
- type: RandomSpawner
prototypes:
- CrystalGreen
- CrystalPink
- CrystalOrange
- CrystalBlue
- CrystalCyan
- CrystalYellow
- CrystalBlack
- CrystalGrey
chance: 0.7
- type: Sprite
layers:
- state: red
- sprite: Structures/Decoration/crystal.rsi
state: crystal_grey
- type: EntityTableSpawner
table: !type:NestedSelector
tableId: RandomCrystalTable
prob: 0.7

View File

@ -1,83 +1,87 @@
- type: entity
parent: MarkerBase
id: RandomWoodenSupport
name: wooden support spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/mines.rsi
state: support
- type: RandomSpawner
prototypes:
- WoodenSupport
- WoodenSupportBeam
- WoodenSupportBeam
- WoodenSupportBeam
chance: 0.9
- state: red
- sprite: Objects/Decoration/mines.rsi
state: support
- type: EntityTableSpawner
table: !type:GroupSelector
prob: 0.9
children:
- id: WoodenSupport
- id: WoodenSupportBeam
weight: 3
- type: entity
parent: MarkerBase
id: RandomWoodenWall
name: wooden wall spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/mines.rsi
state: support_wall
- type: RandomSpawner
prototypes:
- WoodenSupportWall
- WoodenSupportWallBroken
chance: 0.9
- state: red
- sprite: Objects/Decoration/mines.rsi
state: support_wall
- type: EntityTableSpawner
table: !type:GroupSelector
prob: 0.9
children:
- id: WoodenSupportWall
- id: WoodenSupportWallBroken
- type: entity
parent: MarkerBase
id: RandomStalagmiteOrCrystal
name: stalagmite or crystal spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: stalagmite2
- type: RandomSpawner
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: stalagmite2
- type: EntityTableSpawner
table: !type:GroupSelector
prob: 0.9
children:
- id: RandomBrownStalagmite
- id: RandomGreyStalagmite
- !type:NestedSelector
tableId: RandomCrystalTable
prob: 0.7
offset: 0.3
prototypes:
- RandomBrownStalagmite
- RandomGreyStalagmite
- CrystalSpawner
chance: 0.9
- type: entity
parent: MarkerBase
id: RandomBrownStalagmite
name: brown stalagmite spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: stalagmite2
- type: RandomSpawner
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: stalagmite2
- type: EntityTableSpawner
table:
id: FloraStalagmite
prob: 0.9
offset: 0.3
prototypes:
- FloraStalagmite
chance: 0.9
- type: entity
parent: MarkerBase
id: RandomGreyStalagmite
name: grey stalagmite spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: grey_stalagmite3
- type: RandomSpawner
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: grey_stalagmite3
- type: EntityTableSpawner
table:
id: FloraGreyStalagmite
prob: 0.9
offset: 0.3
prototypes:
- FloraGreyStalagmite
chance: 0.9

View File

@ -2,89 +2,103 @@
# These rulesets exist because Salvage mobs kept harassing the station and going out of control.
- type: entity
parent: MarkerBase
name: Salvage Material Crate Spawner
id: SalvageMaterialCrateSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Structures/Storage/Crates/generic.rsi
state: icon
- type: RandomSpawner
rarePrototypes:
- SalvageHumanCorpse
- CrateMaterialPlasteel
- CrateMaterialWood
- CrateMaterialPlastic
- CrateSalvageEquipment
- CrateMaterialSteel
- CrateMaterialGlass
- CrateServiceJanitorialSupplies
- CrateHydroponicsSeedsMedicinal
- CrateEmergencyInternals
- CrateFoodMRE
- CrateMaterialTextiles
- CrateMedicalSupplies
- CrateEngineeringCableBulk
- CrateMaterialCardboard
- CrateServiceBooks
- CrateServiceSmokeables
- CrateTrashCartFilled
- ClosetMaintenanceFilledRandom
- ClosetEmergencyFilledRandom
rareChance: 0.4
prototypes:
- CrateSalvageAssortedGoodies
chance: 0.9
- type: Sprite
layers:
- state: red
- sprite: Structures/Storage/Crates/generic.rsi
state: icon
- type: EntityTableSpawner
table: !type:GroupSelector
prob: 0.9
children:
- id: CrateSalvageAssortedGoodies
weight: 0.6
- !type:GroupSelector
weight: 0.4
children:
- id: SalvageHumanCorpse
- id: CrateMaterialPlasteel
- id: CrateMaterialWood
- id: CrateMaterialPlastic
- id: CrateSalvageEquipment
- id: CrateMaterialSteel
- id: CrateMaterialGlass
- id: CrateServiceJanitorialSupplies
- id: CrateHydroponicsSeedsMedicinal
- id: CrateEmergencyInternals
- id: CrateFoodMRE
- id: CrateMaterialTextiles
- id: CrateMedicalSupplies
- id: CrateEngineeringCableBulk
- id: CrateMaterialCardboard
- id: CrateServiceBooks
- id: CrateServiceSmokeables
- id: CrateTrashCartFilled
- id: ClosetMaintenanceFilledRandom
- id: ClosetEmergencyFilledRandom
offset: 0.0
- type: entity
parent: MarkerBase
name: salvage loot spawner
id: SalvageLootSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Weapons/Melee/crusher.rsi
state: icon
- type: RandomSpawner
prototypes:
- WeaponCrusher
- WeaponCrusherDagger
- WeaponCrusherGlaive
- MiningDrill
offset: 0.0
- type: Sprite
layers:
- state: red
- sprite: Objects/Weapons/Melee/crusher.rsi
state: icon
- type: EntityTableSpawner
table: !type:GroupSelector
children:
- id: WeaponCrusher
- id: WeaponCrusherDagger
- id: WeaponCrusherGlaive
- id: MiningDrill
offset: 0.0
- type: entityTable
id: SalvageMobTable
table: !type:GroupSelector
children:
- id: MobCarpSalvage
weight: 5
- id: MobTickSalvage
weight: 3
- id: MobSharkSalvage
weight: 2.5
- id: PlushieCarp
- id: DehydratedSpaceCarp
- type: entity
parent: MarkerBase
name: Salvage Mob Spawner
id: SalvageMobSpawner
parent: MarkerBase
suffix: 25
components:
- type: Sprite
layers:
- state: red
- sprite: Mobs/Aliens/Carps/space.rsi
state: icon
- type: RandomSpawner
rarePrototypes:
- MobSharkSalvage
rareChance: 0.2
prototypes:
- MobCarpSalvage
- MobCarpSalvage
- MobCarpSalvage
- MobCarpSalvage
- MobCarpSalvage
- MobTickSalvage
- MobTickSalvage
- MobTickSalvage
- PlushieCarp
- DehydratedSpaceCarp
chance: 0.25
offset: 0.2
- type: Sprite
layers:
- state: red
- sprite: Mobs/Aliens/Carps/space.rsi
state: icon
- type: EntityTableSpawner
table: !type:NestedSelector
prob: 0.25
tableId: SalvageMobTable
- type: entity
parent: SalvageMobSpawner
id: SalvageMobSpawner75
suffix: 75
components:
- type: EntityTableSpawner
table: !type:NestedSelector
prob: 0.75
tableId: SalvageMobTable
- type: entity #I made this in case someone decided to make a terrifying space tick swarm for salvage. that someone may be me -EG404
name: Salvage Space Tick Spawner
@ -115,29 +129,6 @@
prototypes:
- MobBearSpaceSalvage
- type: entity
id: SalvageMobSpawner75
parent: SalvageMobSpawner
suffix: 75
components:
- type: RandomSpawner
rarePrototypes:
- MobSharkSalvage
rareChance: 0.2
prototypes:
- MobCarpSalvage
- MobCarpSalvage
- MobCarpSalvage
- MobCarpSalvage
- MobCarpSalvage
- MobTickSalvage
- MobTickSalvage
- MobTickSalvage
- PlushieCarp
- DehydratedSpaceCarp
chance: 0.75
offset: 0.2
- type: entity
name: Salvage Space Kangaroo Spawner
id: SpawnMobKangarooSalvage
@ -181,50 +172,40 @@
- MobCobraSpaceSalvage
- type: entity
parent: MarkerBase
name: Salvage Flesh Spawner
id: SalvageFleshSpawner
parent: SalvageMobSpawner
suffix: 100
components:
- type: Sprite
layers:
- state: red
- sprite: Mobs/Aliens/flesh.rsi
state: jared
- type: RandomSpawner
rarePrototypes:
- MobSharkSalvage
rareChance: 0
prototypes:
- MobFleshJaredSalvage
- MobFleshGolemSalvage
- MobFleshGolemSalvage
- MobFleshClampSalvage
- MobFleshClampSalvage
- MobFleshLoverSalvage
- MobFleshLoverSalvage
chance: 1
offset: 0.2
- type: Sprite
layers:
- state: red
- sprite: Mobs/Aliens/flesh.rsi
state: jared
- type: EntityTableSpawner
table: !type:GroupSelector
children:
- id: MobFleshGolemSalvage
- id: MobFleshClampSalvage
- id: MobFleshLoverSalvage
- id: MobFleshJaredSalvage
weight: 0.5
- type: entity
parent: MarkerBase
name: Salvage Living Light Spawner
id: SalvageLivingLightSpawner
parent: SalvageMobSpawner
suffix: 100
components:
- type: Sprite
layers:
- state: red
- sprite: Mobs/Elemental/living_light/luminous_person.rsi
state: luminous_person
- type: RandomSpawner
rarePrototypes:
- MobSharkSalvage
rareChance: 0
prototypes:
- MobLuminousPersonSalvage
- MobLuminousEntity
- MobLuminousObjectSalvage
- MobLuminousObjectSalvage
chance: 1
offset: 0.2
- type: Sprite
layers:
- state: red
- sprite: Mobs/Elemental/living_light/luminous_person.rsi
state: luminous_person
- type: EntityTableSpawner
table: !type:GroupSelector
children:
- id: MobLuminousPersonSalvage
- id: MobLuminousEntitySalvage
- id: MobLuminousObjectSalvage
weight: 2