# SPDX-FileCopyrightText: 2021 shaeone <60476183+shaeone@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Cheackraze <71046427+Cheackraze@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Moony <moony@hellomouse.net>
# SPDX-FileCopyrightText: 2022 moonheart08 <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Jeff <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2023 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Puro <103608145+PuroSlavKing@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Southbridge <7013162+southbridge-fur@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Spanky <scott@wearejacob.com>
# SPDX-FileCopyrightText: 2024 Spessmann <156740760+Spessmann@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 degradka <69397649+degradka@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  id: PresentBase
  name: present
  description: A little box with incredible surprises inside.
  abstract: true
  components:
  - type: Sprite
    sprite: Objects/Decoration/present.rsi
    layers:
      - state: present

- type: entity
  id: Present
  parent: [PresentBase, BaseStorageItem]
  suffix: Empty
  components:
  - type: Item
    size: Normal

- type: entity
  id: PresentRandomUnsafe
  parent: [PresentBase, BaseItem]
  suffix: Filled, any item
  components:
  - type: RandomGift
    wrapper: PresentTrash
    sound:
      path: /Audio/Effects/unwrap.ogg
    insaneMode: false
    contentsViewers:
      components:
      - Ghost
      - Santa

- type: entity
  id: PresentRandomInsane
  parent: PresentRandomUnsafe
  suffix: Filled, any entity
  components:
    - type: RandomGift
      insaneMode: true

- type: entity
  id: PresentRandom
  parent: [PresentBase, BaseItem]
  suffix: Filled Safe
  components:
  - type: SpawnItemsOnUse
    items:
      - id: PresentTrash
      - id: Bucket
        orGroup: GiftPool
      - id: JetpackMiniFilled
        orGroup: GiftPool
      - id: PlushieGhost
        orGroup: GiftPool
      - id: PlushieBee
        orGroup: GiftPool
      - id: PlushieRGBee
        orGroup: GiftPool
      - id: PlushieNuke
        orGroup: GiftPool
      - id: PlushieRouny
        orGroup: GiftPool
      - id: PlushieLizard #Weh!
        orGroup: GiftPool
      - id: PlushieRainbowLizard
        orGroup: GiftPool
      - id: PlushieNar
        orGroup: GiftPool
      - id: PlushieCarp
        orGroup: GiftPool
      - id: PlushieMagicarp
        orGroup: GiftPool
      - id: PlushieHolocarp
        orGroup: GiftPool
      - id: PlushieRainbowCarp
        orGroup: GiftPool
      - id: PlushieSlime
        orGroup: GiftPool
      - id: PlushieSnake
        orGroup: GiftPool
      - id: PlushieVox
        orGroup: GiftPool
      - id: PlushieRatvar
        orGroup: GiftPool
      - id: PlushieSpaceLizard
        orGroup: GiftPool
      - id: PlushieSharkBlue
        orGroup: GiftPool
      - id: PlushieSharkPink
        orGroup: GiftPool
      - id: PlushieSharkGrey
        orGroup: GiftPool
      - id: ToyAmongPequeno
        orGroup: GiftPool
      - id: PlushieDiona
        orGroup: GiftPool
      - id: PlushieArachind
        orGroup: GiftPool
      - id: ClothingNeckCloakMoth
        orGroup: GiftPool
      - id: ToyMouse
        orGroup: GiftPool
      - id: ToyAi
        orGroup: GiftPool
      - id: ToyNuke
        orGroup: GiftPool
      - id: ToyFigurinePassenger
        orGroup: GiftPool
      - id: ToyGriffin
        orGroup: GiftPool
      - id: ToyHonk
        orGroup: GiftPool
      - id: ToyIan
        orGroup: GiftPool
      - id: ToyMarauder
        orGroup: GiftPool
      - id: ToyMauler
        orGroup: GiftPool
      - id: ToyGygax
        orGroup: GiftPool
      - id: ToyOdysseus
        orGroup: GiftPool
      - id: ToyOwlman
        orGroup: GiftPool
      - id: ToyDeathRipley
        orGroup: GiftPool
      - id: ToyPhazon
        orGroup: GiftPool
      - id: ToyFireRipley
        orGroup: GiftPool
      - id: ToyReticence
        orGroup: GiftPool
      - id: ToyRipley
        orGroup: GiftPool
      - id: ToySeraph
        orGroup: GiftPool
      - id: ToyDurand
        orGroup: GiftPool
      - id: ToySkeleton
        orGroup: GiftPool
      - id: FoamBlade
        orGroup: GiftPool
      - id: AcousticGuitarInstrument
        orGroup: GiftPool
      - id: ViolinInstrument
        orGroup: GiftPool
      - id: TrumpetInstrument
        orGroup: GiftPool
      - id: ElectricGuitarInstrument
        orGroup: GiftPool
      - id: AccordionInstrument
        orGroup: GiftPool
      - id: HarmonicaInstrument
        orGroup: GiftPool
      - id: TromboneInstrument
        orGroup: GiftPool
      - id: FrenchHornInstrument
        orGroup: GiftPool
      - id: BanjoInstrument
        orGroup: GiftPool
      - id: SaxophoneInstrument
        orGroup: GiftPool
      - id: GlockenspielInstrument
        orGroup: GiftPool
      - id: RecorderInstrument
        orGroup: GiftPool
      - id: FluteInstrument
        orGroup: GiftPool
      - id: ClarinetInstrument
        orGroup: GiftPool
      - id: CelloInstrument
        orGroup: GiftPool
      - id: KalimbaInstrument
        orGroup: GiftPool
      - id: MicrophoneInstrument
        orGroup: GiftPool
      - id: BassGuitarInstrument
        orGroup: GiftPool
      - id: OcarinaInstrument
        orGroup: GiftPool
      - id: PanFluteInstrument
        orGroup: GiftPool
      - id: SynthesizerInstrument
        orGroup: GiftPool
      - id: BagpipeInstrument
        orGroup: GiftPool
      - id: GunpetInstrument
        orGroup: GiftPool
      - id: RockGuitarInstrument
        orGroup: GiftPool
      - id: MusicBoxInstrument
        orGroup: GiftPool
      - id: ViolaInstrument
        orGroup: GiftPool
      - id: ClothingNeckCloakTrans
        orGroup: GiftPool
      - id: ClothingNeckCloakAdmin
        orGroup: GiftPool
      - id: ToySkeleton
        orGroup: GiftPool
      - id: Basketball
        orGroup: GiftPool
      - id: Football
        orGroup: GiftPool
      - id: BalloonCorgi
        orGroup: GiftPool
      - id: PonderingOrb
        orGroup: GiftPool
      - id: Skub
        orGroup: GiftPool
      - id: ClothingEyesGlassesGarGiga
        orGroup: GiftPool
      - id: ClothingEyesGlassesGarOrange
        orGroup: GiftPool
      - id: ClothingEyesGlassesGar
        orGroup: GiftPool
      - id: ClothingNeckBling
        orGroup: GiftPool
      - id: ClothingHeadHelmetCosmonaut
        orGroup: GiftPool
      - id: ClothingShoeSlippersDuck
        orGroup: GiftPool
      - id: ClothingUnderSocksBee
        orGroup: GiftPool
      - id: ClothingUnderSocksCoder
        orGroup: GiftPool
      - id: ClothingBeltUtilityFilled
        orGroup: GiftPool
      - id: WeaponFlareGun
        orGroup: GiftPool
      - id: ResearchDisk
        orGroup: GiftPool
      - id: Machete
        orGroup: GiftPool
      - id: BaseBallBat
        orGroup: GiftPool
      - id: CombatKnife
        orGroup: GiftPool
      - id: FlashlightLantern
        orGroup: GiftPool
      - id: Spear
        orGroup: GiftPool
      - id: LidSalami
        orGroup: GiftPool
      - id: Soap
        orGroup: GiftPool
      - id: SoapHomemade
        orGroup: GiftPool
      - id: SoapNT
        orGroup: GiftPool
      - id: SoapDeluxe
        orGroup: GiftPool
      - id: SoapSyndie
        orGroup: GiftPool
      - id: SoapOmega
        orGroup: GiftPool
      - id: BedsheetCosmos
        orGroup: GiftPool
      - id: BedsheetIan
        orGroup: GiftPool
      - id: FoodBoxDonkpocket
        orGroup: GiftPool
      - id: FoodBoxDonkpocketSpicy
        orGroup: GiftPool
      - id: FoodBoxDonkpocketTeriyaki
        orGroup: GiftPool
      - id: FoodBoxDonkpocketPizza
        orGroup: GiftPool
      - id: FoodBoxDonkpocketStonk
        orGroup: GiftPool
      - id: FoodBoxDonkpocketCarp
        orGroup: GiftPool
      - id: FoodBoxDonkpocketBerry
        orGroup: GiftPool
      - id: FoodBoxDonkpocketHonk
        orGroup: GiftPool
      - id: FoodBoxDonkpocketMoth
        orGroup: GiftPool
      - id: ClothingHandsGlovesColorPurple
        orGroup: GiftPool
      - id: ClothingHandsGlovesColorYellow
        orGroup: GiftPool
      - id: ClothingHandsGlovesColorYellowBudget
        orGroup: GiftPool
      - id: ClothingEyesGlassesSunglasses
        orGroup: GiftPool
      - id: ClothingHeadHatOutlawHat
        orGroup: GiftPool
      - id: ClothingHeadHatSantahat
        orGroup: GiftPool
      - id: ClothingHeadHatUshanka
        orGroup: GiftPool
      - id: ClothingHeadHatXmasCrown
        orGroup: GiftPool
      - id: ClothingHeadHatBunny
        orGroup: GiftPool
      - id: ClothingHeadHatFlowerWreath
        orGroup: GiftPool
      - id: FoodPoppy
        orGroup: GiftPool
      - id: ClothingMaskClown
        orGroup: GiftPool
      - id: ClothingOuterCoatGentle
        orGroup: GiftPool
      - id: ClothingOuterCoatJensen
        orGroup: GiftPool
      - id: ClothingOuterHoodieBlack
        orGroup: GiftPool
      - id: ClothingOuterHoodieGrey
        orGroup: GiftPool
      - id: ClothingOuterVestWebMerc
        orGroup: GiftPool
      - id: ClothingShoesFlippers
        orGroup: GiftPool
      - id: ClothingUniformJumpsuitAncient
        orGroup: GiftPool
      - id: ClothingUniformJumpsuitDetectiveGrey
        orGroup: GiftPool
      - id: ClothingUniformJumpsuitColorMaroon
        orGroup: GiftPool
      - id: ClothingUniformColorRainbow
        orGroup: GiftPool
      - id: ClothingUniformJumpskirtColorRainbow
        orGroup: GiftPool
      - id: ClothingUniformOveralls
        orGroup: GiftPool
      - id: ClothingUniformJumpskirtDetectiveGrey
        orGroup: GiftPool
      - id: ClothingUniformJumpskirtColorMaroon
        orGroup: GiftPool
      - id: ClothingUniformJumpskirtJanimaid
        orGroup: GiftPool
      - id: PersonalAI
        orGroup: GiftPool
      - id: DiceBag
        orGroup: GiftPool
      - id: CrayonBox
        orGroup: GiftPool
      - id: ClothingHeadHatCatEars
        orGroup: GiftPool
      - id: ClothingHeadHatDogEars
        orGroup: GiftPool
      - id: ToySword
        orGroup: GiftPool
      - id: FoamWonderprod #Goob
        orGroup: GiftPool
      - id: RevolverCapGun
        orGroup: GiftPool
      - id: Ash
        orGroup: GiftPool
      - id: Coal1
        orGroup: GiftPool
      - id: MiningDrill
        orGroup: GiftPool
      - id: CowToolboxFilled
        orGroup: GiftPool
      - id: ClothingUniformJumpsuitEngineeringHazard
        orGroup: GiftPool
      - id: Bola
        orGroup: GiftPool
      - id: GlowstickBase
        orGroup: GiftPool
      - id: GlowstickBlue
        orGroup: GiftPool
      - id: GlowstickPurple
        orGroup: GiftPool
      - id: GlowstickRed
        orGroup: GiftPool
      - id: GlowstickYellow
        orGroup: GiftPool
      - id: ToyRubberDuck
        orGroup: GiftPool
      - id: BalloonSyn
        orGroup: GiftPool
      - id: RGBStaff
        orGroup: GiftPool
      # WD EDIT START
      - id: FaceHuggerToys
        orGroup: GiftPool
      # WD EDIT END
    sound:
      path: /Audio/Effects/unwrap.ogg

- type: entity
  id: PresentRandomCoal
  parent: [PresentBase, BaseItem]
  suffix: Filled Coal
  components:
  - type: SpawnItemsOnUse
    items:
      - id: PresentTrash
      - id: Coal1
        orGroup: GiftPool
      - id: Coal5
        prob: .4
        orGroup: GiftPool
      - id: Coal10
        prob: .2
        orGroup: GiftPool
      - id: Coal15
        prob: .1
        orGroup: GiftPool
    sound:
      path: /Audio/Effects/unwrap.ogg

- type: entity
  id: PresentRandomCash
  parent: [PresentBase, BaseItem]
  suffix: Filled Cash
  components:
  - type: SpawnItemsOnUse
    items:
      - id: PresentTrash
      - id: SpaceCash
        prob: .01
        orGroup: GiftPool
      - id: SpaceCash10
        prob: .1
        orGroup: GiftPool
      - id: SpaceCash100
        prob: .5
        orGroup: GiftPool
      - id: SpaceCash500
        orGroup: GiftPool
      - id: SpaceCash1000
        prob: .01
        orGroup: GiftPool
      - id: SpaceCash2500
        prob: .004
        orGroup: GiftPool
      - id: SpaceCash5000
        prob: .002
        orGroup: GiftPool
      - id: SpaceCash10000
        prob: .001
        orGroup: GiftPool
      - id: SpaceCash1000000
        prob: .000001
        orGroup: GiftPool
    sound:
      path: /Audio/Effects/unwrap.ogg

- type: entity
  id: PresentTrash
  categories: [ HideSpawnMenu ]
  parent: BaseItem
  name: wrapping paper
  description: Carefully folded, taped, and tied with a bow. Then ceremoniously ripped apart and tossed on the floor.
  components:
  - type: Sprite
    sprite: Objects/Decoration/present.rsi
    layers:
      - state: unwrapped
  - type: Tag
    tags:
    - Trash
  - type: SpaceGarbage