# SPDX-FileCopyrightText: 2021 Elijahrane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Kara D <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2021 Kara Dinyes <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2021 SETh lafuente <cetaciocascarudo@gmail.com>
# SPDX-FileCopyrightText: 2021 SethLafuente <84478872+SethLafuente@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 TimrodDX <timrod@gmail.com>
# SPDX-FileCopyrightText: 2022 Cheackraze <71046427+Cheackraze@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Justin Trotter <trotter.justin@gmail.com>
# SPDX-FileCopyrightText: 2022 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Peptide90 <78795277+Peptide90@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Rane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nairod <110078045+Nairodian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Firewatch <54725557+musicmanvr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Jeff <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2024 MACMAN2003 <macman2003c@gmail.com>
# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Sphiral <145869023+SphiraI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Velcroboy <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  id: Windoor
  parent: BaseWindoor
  name: windoor
  description: It's a window and a sliding door. Wow!

- type: entity
  id: WindoorSecure
  parent: BaseSecureWindoor
  name: secure windoor
  description: It's a sturdy window and a sliding door. Wow!

- type: entity
  id: WindoorClockwork
  parent: BaseClockworkWindoor
  name: clockwork windoor
  description: It's a sturdy window and a sliding door. Wow!

- type: entity
  id: WindoorPlasma
  parent: BasePlasmaWindoor
  name: plasma windoor
  description: It's a pink window *and* a sliding door. Amazing!

- type: entity
  id: WindoorSecurePlasma
  parent: BaseSecurePlasmaWindoor
  name: secure plasma windoor
  description: It's a sturdy purple window *and* a sliding door. Spectacular!

- type: entity
  id: WindoorUranium
  parent: BaseUraniumWindoor
  name: uranium windoor
  description: It's a window and a sliding door. Huh? Oh, and it's green!

- type: entity
  id: WindoorSecureUranium
  parent: BaseSecureUraniumWindoor
  name: secure uranium windoor
  description: It's a sturdy window and a sliding door. It's so neon green, it might even taste like limes!

# TODO remove these with parameterized prototypes/whatever we end up doing
# Windoors (alphabetical)

- type: entity
  parent: WindoorServiceLocked
  id: WindoorBarLocked
  suffix: Bar, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsBar ]

- type: entity
  parent: WindoorServiceLocked
  id: WindoorBarKitchenLocked
  suffix: Bar&Kitchen, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsBarKitchen ]

- type: entity
  parent: Windoor
  id: WindoorCargoLocked
  suffix: Cargo, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCargo ]
  - type: Wires
    layoutId: AirlockCargo

- type: entity
  parent: Windoor
  id: WindoorChapelLocked
  suffix: Chapel, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsChapel ]

- type: entity
  parent: WindoorServiceLocked
  id: WindoorHydroponicsLocked
  suffix: Hydroponics, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsHydroponics ]

- type: entity
  parent: WindoorServiceLocked
  id: WindoorJanitorLocked
  suffix: Janitor, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsJanitor ]

- type: entity
  parent: WindoorPlasma
  id: PlasmaWindoorJanitorLocked
  suffix: Janitor, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsJanitor ]
  - type: Wires
    layoutId: AirlockService

- type: entity
  parent: WindoorServiceLocked
  id: WindoorKitchenLocked
  suffix: Kitchen, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsKitchen ]

- type: entity
  parent: WindoorServiceLocked
  id: WindoorKitchenHydroponicsLocked
  suffix: Kitchen&Hydroponics, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsKitchenHydroponics ]

- type: entity
  parent: Windoor
  id: WindoorServiceLocked
  suffix: Service, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsService ]
  - type: Wires
    layoutId: AirlockService

- type: entity
  parent: WindoorServiceLocked
  id: WindoorTheatreLocked
  suffix: Theatre, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsTheatre ]

# Secure

- type: entity
  parent: WindoorSecure
  id: WindoorSecureArmoryLocked
  suffix: Armory, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsArmory ]
  - type: Wires
    layoutId: AirlockArmory

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureArmoryLocked
  suffix: Armory, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsArmory ]
  - type: Wires
    layoutId: AirlockArmory

- type: entity
  parent: WindoorSecureEngineeringLocked
  id: WindoorSecureAtmosphericsLocked
  suffix: Atmospherics, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsAtmospherics ]

- type: entity
  parent: PlasmaWindoorSecureEngineeringLocked
  id: PlasmaWindoorSecureAtmosphericsLocked
  suffix: Atmospherics, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsAtmospherics ]

- type: entity
  parent: WindoorSecureServiceLocked
  id: WindoorSecureBarLocked
  suffix: Bar, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsBar ]

- type: entity
  parent: WindoorSecureSecurityLocked
  id: WindoorSecureBrigLocked
  suffix: Brig, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsBrig ]

- type: entity
  parent: WindoorSecure
  id: WindoorSecureCargoLocked
  suffix: Cargo, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCargo ]
  - type: Wires
    layoutId: AirlockCargo

- type: entity
  parent: WindoorSecure
  id: WindoorSecureChapelLocked
  suffix: Chapel, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsChapel ]

- type: entity
  parent: WindoorSecureMedicalLocked
  id: WindoorSecureChemistryLocked
  suffix: Chemistry, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsChemistry ]

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureChemistryLocked
  suffix: Chemistry, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsChemistry ]
  - type: Wires
    layoutId: AirlockMedical

- type: entity
  parent: WindoorSecureCommandLocked
  id: WindoorSecureCentralCommandLocked
  suffix: Central Command, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCentralCommand ]

- type: entity
  parent: PlasmaWindoorSecureCommandLocked
  id: PlasmaWindoorSecureCentralCommandLocked
  suffix: Central Command, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCentralCommand ]

- type: entity
  parent: WindoorSecureUranium
  id: UraniumWindoorSecureCentralCommandLocked
  suffix: Central Command, Locked, Uranium
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCentralCommand ]
  - type: WiresPanelSecurity
    securityLevel: medSecurity
  - type: Wires
    layoutId: AirlockCommand

- type: entity
  parent: WindoorSecure
  id: WindoorSecureCommandLocked
  suffix: Command, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCommand ]
  - type: WiresPanelSecurity
    securityLevel: medSecurity
  - type: Wires
    layoutId: AirlockCommand

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureCommandLocked
  suffix: Command, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsCommand ]
  - type: WiresPanelSecurity
    securityLevel: medSecurity
  - type: Wires
    layoutId: AirlockCommand

- type: entity
  parent: WindoorSecureSecurityLocked
  id: WindoorSecureDetectiveLocked
  suffix: Detective, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsDetective ]

- type: entity
  parent: WindoorSecure
  id: WindoorSecureEngineeringLocked
  suffix: Engineering, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsEngineering ]
  - type: Wires
    layoutId: AirlockEngineering

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureEngineeringLocked
  suffix: Engineering, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsEngineering ]
  - type: Wires
    layoutId: AirlockEngineering

- type: entity
  parent: WindoorSecureUranium
  id: UraniumWindoorSecureEngineeringLocked
  suffix: Engineering, Locked, Uranium
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsEngineering ]
  - type: Wires
    layoutId: AirlockEngineering

- type: entity
  parent: WindoorSecure
  id: WindoorSecureExternalLocked
  suffix: External, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsExternal ]
  - type: Wires
    layoutId: AirlockExternal

- type: entity
  parent: WindoorSecureServiceLocked
  id: WindoorSecureJanitorLocked
  suffix: Janitor, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsJanitor ]

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureJanitorLocked
  suffix: Janitor, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsJanitor ]
  - type: Wires
    layoutId: AirlockService

- type: entity
  parent: WindoorSecureServiceLocked
  id: WindoorSecureKitchenLocked
  suffix: Kitchen, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsKitchen ]

- type: entity
  parent: WindoorSecureSecurityLocked
  id: WindoorSecureSecurityLawyerLocked
  suffix: Security/Lawyer, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSecurityLawyer ]

- type: entity
  parent: WindoorSecure
  id: WindoorSecureMedicalLocked
  suffix: Medical, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsMedical ]
  - type: Wires
    layoutId: AirlockMedical

- type: entity
  parent: WindoorSecureCommandLocked
  id: WindoorSecureResearchDirectorLocked
  suffix: ResearchDirector, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsResearchDirector ]

- type: entity
  parent: WindoorSecureCargoLocked
  id: WindoorSecureSalvageLocked
  suffix: Salvage, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSalvage ]

- type: entity
  parent: WindoorSecure
  id: WindoorSecureSecurityLocked
  suffix: Security, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSecurity ]
  - type: Wires
    layoutId: AirlockSecurity

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureSecurityLocked
  suffix: Security, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSecurity ]
  - type: Wires
    layoutId: AirlockSecurity

- type: entity
  parent: WindoorSecure
  id: WindoorSecureScienceLocked
  suffix: Science, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsResearch ]
  - type: Wires
    layoutId: AirlockScience

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureScienceLocked
  suffix: Science, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsResearch ]
  - type: Wires
    layoutId: AirlockScience

- type: entity
  parent: WindoorSecure
  id: WindoorSecureServiceLocked
  suffix: Service, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsService ]
  - type: Wires
    layoutId: AirlockService

- type: entity
  parent: WindoorSecureCommandLocked
  id: WindoorSecureHeadOfPersonnelLocked
  suffix: HeadOfPersonnel, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsHeadOfPersonnel ]

# Syndicate

- type: entity
  parent: Windoor
  id: WindoorSyndicateLocked
  suffix: Syndicate, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]

- type: entity
  parent: WindoorSecure
  id: WindoorSecureSyndicateLocked
  suffix: Syndicate, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]

- type: entity
  parent: WindoorPlasma
  id: PlasmaWindoorSyndicateLocked
  suffix: Syndicate, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureSyndicateLocked
  suffix: Syndicate, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]

- type: entity #Goob Content Start
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureSyndicateLockedIndestructable
  suffix: Syndicate, Locked, Plasma, Indestructable
  name: secure plasma windoor?
  description: You have a bad feeling about this.
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 2000000
      behaviors:
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
    - trigger:
        !type:DamageTrigger
        damage: 2000000
      behaviors:
      - !type:SpawnEntitiesBehavior
        spawn:
          ShardGlassPlasma:
            min: 1
            max: 2
          SheetPlasteel1:
            min: 1
            max: 2
      - !type:DoActsBehavior
        acts: [ "Destruction" ] #Goob Content End

- type: entity
  parent: WindoorUranium
  id: UraniumWindoorSyndicateLocked
  suffix: Syndicate, Locked, Uranium
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]

- type: entity
  parent: WindoorSecureUranium
  id: UraniumWindoorSecureSyndicateLocked
  suffix: Syndicate, Locked, Uranium
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsSyndicateAgent ]

- type: entity
  parent: Windoor
  id: WindoorNukeopLocked
  suffix: Nukeop, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsNukeop ]

- type: entity
  parent: WindoorSecure
  id: WindoorSecureNukeopLocked
  suffix: Nukeop, Locked
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsNukeop ]

- type: entity
  parent: WindoorPlasma
  id: PlasmaWindoorNukeopLocked
  suffix: Nukeop, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsNukeop ]

- type: entity
  parent: WindoorSecurePlasma
  id: PlasmaWindoorSecureNukeopLocked
  suffix: Nukeop, Locked, Plasma
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsNukeop ]

- type: entity
  parent: WindoorUranium
  id: UraniumWindoorNukeopLocked
  suffix: Nukeop, Locked, Uranium
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsNukeop ]

- type: entity
  parent: WindoorSecureUranium
  id: UraniumWindoorSecureNukeopLocked
  suffix: Nukeop, Locked, Uranium
  components:
  - type: ContainerFill
    containers:
      board: [ DoorElectronicsNukeop ]