mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-18 22:18:52 +03:00
Roundstart variation game rules (#24397)
* Raise `StationPostInitEvent` broadcast * Basic variation pass handling * standardize names + rule entities * why does it work like that? * add to defaults * light break variation pass * ent spawn entry * move some stationevent utility functions to gamerule + add one for finding random tile on specified station * forgot how statistics works * powered light variation pass is good now * station tile count function * public method to ensure all solutions (for procedural use before mapinit) * move gamerulesystem utility funcs to partial * ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit * trash & puddle variation passes! * oh yeah * ehh lets live a little * std * utility for game rule check based on comp * entprotoid the trash spawner oops * generalize trash variation * use added instead of started for secret rule * random cleanup * generic replacement variation system * Wall rusting variation rule * account for modifying while enumerating * use localaabb * fix test * minor tweaks * reinforced wall replacer + puddletweaker (cherry picked from commit cc24ba6a317c4bee84ffa1eda8397c255ca92be9)
This commit is contained in:
@@ -125,3 +125,22 @@
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: RampingStationEventScheduler
|
||||
|
||||
# variation passes
|
||||
- type: entity
|
||||
id: BasicRoundstartVariation
|
||||
parent: BaseGameRule
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: RoundstartStationVariationRule
|
||||
rules:
|
||||
- id: BasicPoweredLightVariationPass
|
||||
- id: BasicTrashVariationPass
|
||||
- id: SolidWallRustingVariationPass
|
||||
- id: ReinforcedWallRustingVariationPass
|
||||
- id: BasicPuddleMessVariationPass
|
||||
prob: 0.99
|
||||
orGroup: puddleMess
|
||||
- id: BloodbathPuddleMessVariationPass
|
||||
prob: 0.01
|
||||
orGroup: puddleMess
|
||||
|
||||
120
Resources/Prototypes/GameRules/variation.yml
Normal file
120
Resources/Prototypes/GameRules/variation.yml
Normal file
@@ -0,0 +1,120 @@
|
||||
# Base
|
||||
|
||||
- type: entity
|
||||
id: BaseVariationPass
|
||||
parent: BaseGameRule
|
||||
abstract: true
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: StationVariationPassRule
|
||||
|
||||
# Actual rules
|
||||
|
||||
- type: entity
|
||||
id: BasicPoweredLightVariationPass
|
||||
parent: BaseVariationPass
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: PoweredLightVariationPass
|
||||
|
||||
- type: entity
|
||||
id: SolidWallRustingVariationPass
|
||||
parent: BaseVariationPass
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: WallReplaceVariationPass
|
||||
- type: EntityReplaceVariationPass
|
||||
entitiesPerReplacementAverage: 10
|
||||
entitiesPerReplacementStdDev: 2
|
||||
replacements:
|
||||
- id: WallSolidRust
|
||||
|
||||
- type: entity
|
||||
id: ReinforcedWallRustingVariationPass
|
||||
parent: BaseVariationPass
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: ReinforcedWallReplaceVariationPass
|
||||
- type: EntityReplaceVariationPass
|
||||
entitiesPerReplacementAverage: 12
|
||||
entitiesPerReplacementStdDev: 2
|
||||
replacements:
|
||||
- id: WallReinforcedRust
|
||||
|
||||
- type: entity
|
||||
id: BasicTrashVariationPass
|
||||
parent: BaseVariationPass
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: EntitySpawnVariationPass
|
||||
tilesPerEntityAverage: 35
|
||||
tilesPerEntityStdDev: 4
|
||||
entities:
|
||||
- id: RandomSpawner
|
||||
|
||||
- type: weightedRandomFillSolution
|
||||
id: RandomFillTrashPuddle
|
||||
fills:
|
||||
- quantity: 80
|
||||
weight: 5
|
||||
reagents:
|
||||
- Vomit
|
||||
- InsectBlood
|
||||
- WeldingFuel
|
||||
- Mold
|
||||
- quantity: 55
|
||||
weight: 4
|
||||
reagents:
|
||||
- PlantBGone
|
||||
- Potassium # :trollface:
|
||||
- VentCrud
|
||||
- Carbon
|
||||
- Hydrogen
|
||||
- Fat
|
||||
- SpaceLube
|
||||
- SpaceGlue
|
||||
- Sulfur
|
||||
- Acetone
|
||||
- Bleach
|
||||
- quantity: 40
|
||||
weight: 3
|
||||
reagents:
|
||||
- Blood
|
||||
- CopperBlood
|
||||
- Slime
|
||||
- quantity: 25
|
||||
weight: 1
|
||||
reagents:
|
||||
- Omnizine
|
||||
- Desoxyephedrine
|
||||
- Napalm
|
||||
- Radium
|
||||
- Gold
|
||||
- Silver
|
||||
- Sodium
|
||||
|
||||
- type: weightedRandomFillSolution
|
||||
id: RandomFillTrashPuddleBloodbath
|
||||
fills:
|
||||
- quantity: 80
|
||||
weight: 1
|
||||
reagents:
|
||||
- Blood
|
||||
|
||||
- type: entity
|
||||
id: BasicPuddleMessVariationPass
|
||||
parent: BaseVariationPass
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: PuddleMessVariationPass
|
||||
randomPuddleSolutionFill: RandomFillTrashPuddle
|
||||
|
||||
- type: entity
|
||||
id: BloodbathPuddleMessVariationPass
|
||||
parent: BaseVariationPass
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: PuddleMessVariationPass
|
||||
tilesPerSpillAverage: 150
|
||||
tilesPerSpillStdDev: 10
|
||||
randomPuddleSolutionFill: RandomFillTrashPuddleBloodbath
|
||||
Reference in New Issue
Block a user