# SPDX-FileCopyrightText: 2023 Moony <moony@hellomouse.net>
# SPDX-FileCopyrightText: 2023 moonheart08 <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Alice "Arimah" Heurlin <30327355+arimah@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AstroDogeDX <48888500+AstroDogeDX@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Carolyn3114 <136143032+Carolyn3114@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 HS <81934438+HolySSSS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Hrosts <35345601+Hrosts@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Julian Giebel <juliangiebel@live.de>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PoTeletubby <ajcraigaz@gmail.com>
# SPDX-FileCopyrightText: 2024 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Truoizys <153248924+Truoizys@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 chromiumboy <50505512+chromiumboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 osjarw <62134478+osjarw@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 Арт <123451459+JustArt1m@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aineias1 <dmitri.s.kiselev@gmail.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SlimSlam <73899110+Stewie523@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TytosB <54259736+TytosB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TytosB <dunalintytos@yahoo.com>
# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 whateverusername0 <whateveremail>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  id: BaseStation
  abstract: true
  components:
    - type: StationData

- type: entity
  id: BaseStationCargo
  abstract: true
  components:
    - type: StationBankAccount
    - type: StationCargoOrderDatabase
      orders:
        Cargo: [ ]
        Engineering: [ ]
        Medical: [ ]
        Science: [ ]
        Security: [ ]
        Service: [ ]
    - type: StationCargoBountyDatabase
    - type: StationXenobiologyBountyDatabase # Goobstaton

- type: entity
  id: BaseStationJobsSpawning
  abstract: true
  components:
    - type: StationJobs
      availableJobs: {}
    - type: StationSpawning

- type: entity # Goobstation - NTR
  id: BaseStationNtrTasks
  abstract: true
  components:
  - type: NtrTaskDatabase
  - type: NtrBankAccount

- type: entity
  id: BaseStationRecords
  abstract: true
  components:
    - type: StationRecords

- type: entity
  id: BaseStationArrivals
  abstract: true
  components:
    - type: StationArrivals

- type: entity
  id: BaseStationGateway
  abstract: true
  components:
    - type: GatewayGenerator

- type: entity
  id: BaseStationShuttles
  abstract: true
  components:
    - type: StationCargoShuttle
      path: /Maps/Shuttles/cargo.yml
    - type: GridSpawn
      groups:
        trade: !type:GridSpawnGroup
          addComponents:
            - type: ProtectedGrid
            - type: TradeStation
          paths:
            - /Maps/Shuttles/trading_outpost.yml
          nameDataset: TradeStationNames
        # Spawn last
        ruins: !type:GridSpawnGroup
          hide: true
          nameGrid: true
          minCount: 2
          maxCount: 2
          stationGrid: false
          paths:
          - /Maps/Ruins/abandoned_outpost.yml
          - /Maps/Ruins/atmos_interchange.yml
          - /Maps/Ruins/chunked_tcomms.yml
          - /Maps/Ruins/biodome_satellite.yml
          - /Maps/Ruins/derelict.yml
          - /Maps/_Goobstation/Ruins/goobdjstation.yml # goob - this was so fucking bad
          - /Maps/Ruins/empty_flagship.yml
          - /Maps/Ruins/hydro_outpost.yml
          - /Maps/Ruins/old_ai_sat.yml
          - /Maps/Ruins/ruined_prison_ship.yml
          - /Maps/Ruins/syndicate_dropship.yml
          - /Maps/Ruins/whiteship_ancient.yml
          - /Maps/Ruins/whiteship_bluespacejumper.yml
          - /Maps/Ruins/wrecklaimer.yml
          - /Maps/Ruins/displaced_telescience.yml
        wrecks: !type:DungeonSpawnGroup
          minimumDistance: 150
          maximumDistance: 300
          stationGrid: false
          minCount: 12
          maxCount: 16
          addComponents:
          - type: Gravity
            enabled: true
            inherent: true
          - type: IFF
            flags: HideLabel
            color: "#88b0d1"
          protos:
          - ChunkDebrisSmall
          - ChunkDebrisSmall
          - ChunkDebrisSmall
          - ChunkDebrisSmall
          - ChunkDebris
        # goob - no vgroid
        #vgroid: !type:DungeonSpawnGroup
        #  minimumDistance: 300
        #  maximumDistance: 350
        #  nameDataset: NamesBorer
        #  stationGrid: false
        #  addComponents:
        # - type: Gravity
        #    enabled: true
        #    inherent: true
        #  - type: IFF
        #    flags: HideLabel
        #    color: "#d67e27"
        #  protos:
        #  - VGRoid

- type: entity
  id: BaseStationCentcomm
  abstract: true
  components:
    - type: StationCentcomm

- type: entity
  id: BaseStationEvacuation
  abstract: true
  components:
    - type: StationEmergencyShuttle

- type: entity
  id: BaseStationAlertLevels
  abstract: true
  components:
    - type: AlertLevel
      alertLevelPrototype: stationAlerts

- type: entity
  id: BaseStationExpeditions
  abstract: true
  components:
    - type: SalvageExpeditionData

- type: entity
  id: BaseStationMagnet
  abstract: true
  components:
    - type: SalvageMagnetData

- type: entity
  id: BaseStationSalvageJobs
  abstract: true
  components:
  - type: SalvageJobsData
    rankThresholds:
      0:
        title: salvage-job-rank-title-0
        bountyGroup: SalvageJobTier1
      3:
        title: salvage-job-rank-title-1
        bountyGroup: SalvageJobTier2
        unlockedMarket: SalvageJobReward2
      6:
        title: salvage-job-rank-title-2
        bountyGroup: SalvageJobTier3
        unlockedMarket: SalvageJobReward3
    maxRank:
      title: salvage-job-rank-title-MAX
      unlockedMarket: SalvageJobRewardMAX

- type: entity
  id: BaseStationSiliconLawCrewsimov
  abstract: true
  components:
  - type: SiliconLawProvider
    laws: Crewsimov

- type: entity
  id: BaseStationNews
  abstract: true
  components:
    - type: StationNews

- type: entity
  id: BaseStationAllEventsEligible
  abstract: true
  components:
    - type: StationEventEligible # For when someone makes this more granular in the future.
