# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Base

- type: entity
  id: BaseVariationPass
  parent: BaseGameRule
  abstract: true
  components:
  - type: StationVariationPassRule

# Actual rules

- type: entity
  id: BasicPoweredLightVariationPass
  parent: BaseVariationPass
  components:
  - type: PoweredLightVariationPass

- type: entity
  id: SolidWallRustingVariationPass
  parent: BaseVariationPass
  components:
  - type: WallReplaceVariationPass
  - type: EntityReplaceVariationPass
    entitiesPerReplacementAverage: 50
    entitiesPerReplacementStdDev: 10
    replacements:
    - id: WallSolidRust

- type: entity
  id: ReinforcedWallRustingVariationPass
  parent: BaseVariationPass
  components:
  - type: ReinforcedWallReplaceVariationPass
  - type: EntityReplaceVariationPass
    entitiesPerReplacementAverage: 50
    entitiesPerReplacementStdDev: 10
    replacements:
    - id: WallReinforcedRust

- type: entity
  id: BasicTrashVariationPass
  parent: BaseVariationPass
  components:
  - type: EntitySpawnVariationPass
    tilesPerEntityAverage: 35
    tilesPerEntityStdDev: 4
    entities:
    - id: RandomSpawner

- type: entity
  id: BasicDecalDirtVariationPass
  parent: BaseVariationPass
  components:
  - type: EntitySpawnVariationPass
    tilesPerEntityAverage: 80
    tilesPerEntityStdDev: 5
    entities:
    - id: DecalSpawnerDirtWide

- type: entity
  id: BasicDecalGraffitiVariationPass
  parent: BaseVariationPass
  components:
  - type: EntitySpawnVariationPass
    tilesPerEntityAverage: 120
    tilesPerEntityStdDev: 5
    entities:
    - id: DecalSpawnerGraffiti

- type: entity
  id: BasicDecalBrunsVariationPass
  parent: BaseVariationPass
  components:
  - type: EntitySpawnVariationPass
    tilesPerEntityAverage: 120
    tilesPerEntityStdDev: 10
    entities:
    - id: DecalSpawnerBurns

- type: entity
  id: BasicDecalDirtMonospaceVariationPass
  parent: BaseVariationPass
  components:
  - type: EntitySpawnVariationPass
    tilesPerEntityAverage: 80
    tilesPerEntityStdDev: 10
    entities:
    - id: DecalSpawnerDirtMonospace

- 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
    - SpaceGlue
    - Sulfur
    - Acetone
    - Bleach
  - quantity: 40
    weight: 3
    reagents:
    - Blood
    - CopperBlood
    - Slime
  - quantity: 25
    weight: 1
    reagents:
    - Omnizine
    - Desoxyephedrine
    - Napalm
    - Radium
    - Gold
    - Silver
    - Sodium
    - JuiceThatMakesYouWeh

- type: weightedRandomFillSolution
  id: RandomFillTrashPuddleBloodbath
  fills:
  - quantity: 80
    weight: 1
    reagents:
    - Blood

- type: entity
  id: BasicPuddleMessVariationPass
  parent: BaseVariationPass
  components:
  - type: PuddleMessVariationPass
    randomPuddleSolutionFill: RandomFillTrashPuddle

- type: entity
  id: BloodbathPuddleMessVariationPass
  parent: BaseVariationPass
  components:
  - type: PuddleMessVariationPass
    tilesPerSpillAverage: 150
    tilesPerSpillStdDev: 10
    randomPuddleSolutionFill: RandomFillTrashPuddleBloodbath

- type: entity
  id: CutWireVariationPass
  parent: BaseVariationPass
  components:
  - type: CutWireVariationPass
    wireCutChance: 0.01
    maxWiresCut: 20
    blacklist:
      components:
      - ParticleAcceleratorControlBox

- type: entity
  id: SolarPanelDamageVariationPass
  parent: BaseVariationPass
  components:
  - type: SolarPanelReplaceVariationPass
  - type: EntityReplaceVariationPass
    entitiesPerReplacementAverage: 30
    entitiesPerReplacementStdDev: 5
    replacements:
    - id: SolarPanelBroken

- type: entity
  id: SolarPanelEmptyVariationPass
  parent: BaseVariationPass
  components:
  - type: SolarPanelReplaceVariationPass
  - type: EntityReplaceVariationPass
    entitiesPerReplacementAverage: 30
    entitiesPerReplacementStdDev: 5
    replacements:
    - id: SolarAssembly
