- type: entity
  id: BluespaceDungeonBase
  parent: BaseStationEventShortDelay
  name: NT Bluespace Monitoring # This name shows up in the radio messages.
  abstract: true
  components:
  - type: StationEvent
  # TODO: add path to  start warning and end Voiceover
    startRadioAnnouncement: station-event-bluespace-dungeon-start-announcement
    startRadioAnnouncementChannel: Supply
    warningRadioAnnouncement: station-event-bluespace-dungeon-warning-announcement
    warningRadioAnnouncementChannel: Supply
    endRadioAnnouncement: station-event-bluespace-dungeon-end-announcement
    endRadioAnnouncementChannel: Supply
    weight: 5
    duration: 1800 # 30 minutes
    maxDuration: 1800 # 30 minutes
    reoccurrenceDelay: 120 # 2 hours (some variety - at worst, alternates between four dungeon types)
  - type: ActiveRadio
    channels:
    - Supply

- type: entity
  id: BluespaceDungeonBasalt
  parent: BluespaceDungeonBase
  categories: [ HideSpawnMenu ]
  components:
  - type: BluespaceErrorRule
    groups:
      vgroid: !type:DungeonSpawnGroup
        nameDataset: NamesBorer
        minimumDistance: 1500
        maximumDistance: 3500
        spawnBiasTarget: 'vgroid'
        addComponents: &dungeonComponents
        - type: Gravity
          enabled: true
          inherent: true
        - type: IFF
        - type: LinkedLifecycleGridParent
        - type: ProtectedGrid
          preventArtifactTriggers: true
        - type: PreventPilot
        # FIXME: the dungeon dosen't pass FTL events even though it should FTL in
        #        and we don't get a MapInitEvent, so this just forces static physics
        - type: Physics
          bodyType: Static
          bodyStatus: OnGround
        protos:
        - NFVGRoidBasalt

- type: entity
  id: BluespaceDungeonSnow
  parent: BluespaceDungeonBase
  categories: [ HideSpawnMenu ]
  components:
  - type: BluespaceErrorRule
    groups:
      vgroid: !type:DungeonSpawnGroup
        nameDataset: NamesBorer
        minimumDistance: 1500
        maximumDistance: 3500
        spawnBiasTarget: 'vgroid'
        addComponents: *dungeonComponents
        protos:
        - NFVGRoidSnow

- type: entity
  id: BluespaceDungeonCave
  parent: BluespaceDungeonBase
  categories: [ HideSpawnMenu ]
  components:
  - type: BluespaceErrorRule
    groups:
      vgroid: !type:DungeonSpawnGroup
        nameDataset: NamesBorer
        minimumDistance: 1500
        maximumDistance: 3500
        spawnBiasTarget: 'vgroid'
        addComponents: *dungeonComponents
        protos:
        - NFVGRoidCave

- type: entity
  id: BluespaceDungeonChromite
  parent: BluespaceDungeonBase
  categories: [ HideSpawnMenu ]
  components:
  - type: BluespaceErrorRule
    groups:
      vgroid: !type:DungeonSpawnGroup
        nameDataset: NamesBorer
        minimumDistance: 1500
        maximumDistance: 3500
        spawnBiasTarget: 'vgroid'
        addComponents: *dungeonComponents
        protos:
        - NFVGRoidChromite

- type: entity
  id: BluespaceDungeonScrap
  parent: BluespaceDungeonBase
  categories: [ HideSpawnMenu ]
  components:
  - type: BluespaceErrorRule
    groups:
      vgroid: !type:DungeonSpawnGroup
        nameDataset: NamesBorer
        minimumDistance: 1500
        maximumDistance: 3500
        spawnBiasTarget: 'vgroid'
        addComponents: *dungeonComponents
        protos:
        - NFVGRoidScrap

- type: entity
  id: BluespaceDungeonCaveZombie
  parent: BluespaceDungeonBase
  categories: [ HideSpawnMenu ]
  components:
  - type: BluespaceErrorRule
    groups:
      vgroid: !type:DungeonSpawnGroup
        nameDataset: NamesBorer
        minimumDistance: 1500
        maximumDistance: 3500
        spawnBiasTarget: 'vgroid'
        addComponents: *dungeonComponents
        protos:
        - NFVGRoidCaveZombie
