# SPDX-FileCopyrightText: 2026 Goob Station Contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  name: cd disk
  description: A cd disk, usually contains ads.
  id: BaseCdDisk
  parent: BaseItem
  abstract: true
  components:
  - type: Vinyl
  - type: Sprite
    sprite: _Goobstation/Objects/Misc/RadioStation/cds.rsi
    state: icon
  - type: Damageable
    damageContainer: Inorganic
    damageModifierSet: Wood
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 12
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
  - type: Item
    size: Tiny
  - type: Tag
    tags:
    - CD
  # Reserve edit start: Better Recycling
  - type: PhysicalComposition
    materialComposition:
      Plastic: 50
  # Reserve edit end: Better Recycling

- type: entity
  parent: BaseCdDisk
  name: cd disk (Danitos Burritos)
  id: CdDiskDanitosBurritos
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/danitos_burritos.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (bill movie)
  id: CdDiskBillMovie
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/bill_movie.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (captain training PSA)
  id: CdDiskCapTraining
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/captain_training.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (Cargonia)
  id: CdDiskCargonia
  components:
  - type: Sprite
    color: "#ffc833"  # Reserve edit: Better trinket loadout
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/Cargonia.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (Chemistry)
  id: CdDiskChemistry
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/Chemistry.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (cloning PSA)
  id: CdDiskCloningPsa
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/cloning_psa.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (Dans Tickets)
  id: CdDiskDansTickets
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/dans_tickets.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (grones)
  id: CdDiskGrones
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/grones.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (Pope Crunch Cereal)
  id: CdDiskPopeCrunchCereal
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/pope_crunch_cereal.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (Quik Noodles)
  id: CdDiskQuikNoodles
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/quik_noodles.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (robotics)
  id: CdDiskRobotics
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/Robotics.ogg

- type: entity
  parent: BaseCdDisk
  name: cd disk (security psa)
  id: CdDiskSecurityPsa
  components:
  - type: Sprite
    color: "#ff4833"  # Reserve edit: Better trinket loadout
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/security_psa.ogg

# the weird stuff

- type: entity
  parent: BaseCdDisk
  id: CdDiskWeird
  abstract: true
  name: weird cd disk
  description: A weird cd disk, something tells you that this one doesn't contain ads.

- type: entity
  parent: CdDiskWeird
  name: cd disk (commander announcement)
  id: CdDiskCommanderAnnouncement
  components:
  - type: Sprite
    state: synd-cd
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/commander_announcement.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (commander figurines)
  id: CdDiskCommanderFigurines
  components:
  - type: Sprite
    state: synd-cd
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/commander_figurines.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (commander resignation)
  id: CdDiskCommanderResignation
  components:
  - type: Sprite
    state: synd-cd
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/commander_resignation.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (commander support)
  id: CdDiskCommanderSupport
  components:
  - type: Sprite
    state: synd-cd
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/commander_support.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (trial of Heisenbee)
  id: CdDiskHeisenbeeTrial
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/trial_of_heisenbee.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (xg onboarding 1)
  id: CdDiskXgOnboarding1
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/xg_onboarding1.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (xg onboarding 2)
  id: CdDiskXgOnboarding2
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/xg_onboarding2.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (xg onboarding 3)
  id: CdDiskXgOnboarding3
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/xg_onboarding3.ogg

- type: entity
  parent: CdDiskWeird
  name: cd disk (xg onboarding 4)
  id: CdDiskXgOnboarding4
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/misc/xg_onboarding4.ogg

- type: entity
  parent: BaseCdDisk
  id: JVNECdDisk
  abstract: true
  description: The June and Eels show!
  components:
  - type: Sprite
    state: jne-cd

- type: entity
  parent: JVNECdDisk
  name: cd disk (Capstien)
  id: JVNECdDiskCapstien
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/Capstien.ogg

- type: entity
  parent: JVNECdDisk
  name: cd disk (NINJA!!!)
  id: JVNECdDiskNinja
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/Ninja.ogg

- type: entity
  parent: JVNECdDisk
  name: cd disk (Next Up)
  id: JVNECdDiskNextUp
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/NextUp.ogg

- type: entity
  parent: JVNECdDisk
  name: cd disk (June & Eels Show)
  id: JVNECdDiskJNE
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/JNE.ogg

- type: entity
  parent: [BaseSyndicateContraband, BaseCdDisk]
  id: SyndiCdDisk
  abstract: true
  description: Get da disk!
  components:
  - type: Sprite
    state: synd-cd

- type: entity
  parent: SyndiCdDisk
  name: cd disk (Numbers)
  id: JVNECdDiskNumber
  description: All around the mulberry bush, the monkey chased the weasel...
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/NumberShort.ogg
  - type: VinylSummonRule
    gameRule: NumberStationThreats

- type: entity
  parent: SyndiCdDisk
  name: cd disk (Syndicate)
  id: JVNECdDiskSyndicate
  description: 102.9 Syndicate radio
  components:
  - type: Vinyl
    song:
      path: /Audio/_Goobstation/RadioStation/ads/Syndicate.ogg
