# SPDX-FileCopyrightText: 2022 EmoGarbage404 <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Moony <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Pancake <Pangogie@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Veritius <veritiusgaming@gmail.com>
# SPDX-FileCopyrightText: 2022 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Arendian <137322659+Arendian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Moony <moony@hellomouse.net>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nim <128169402+Nimfar11@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 QuantumSeanyGlass <quantum1002@gmail.com>
# SPDX-FileCopyrightText: 2023 Sailor <109166122+Equivocateur@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 AJCM <AJCM@tutanota.com>
# SPDX-FileCopyrightText: 2024 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Bakke <luringens@protonmail.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Just-a-Unity-Dev <67359748+Just-a-Unity-Dev@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 keronshb <54602815+keronshb@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 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: polymorph
  id: Mouse
  configuration:
    entity: MobMouse
    forced: true
    duration: 30

- type: polymorph
  id: Chicken
  configuration:
    entity: MobChicken
    forced: true
    inventory: Drop

- type: polymorph
  id: Monkey
  configuration:
    entity: MobMonkey
    forced: true
    inventory: Drop
    revertOnCrit: true
    revertOnDeath: true

- type: polymorph
  id: WizardForcedCarp
  configuration:
    entity: MobCarpMagic
    forced: true
    inventory: None
    transferName: true
    transferDamage: true
    revertOnCrit: false
    revertOnDeath: true
    polymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg
    exitPolymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg

- type: polymorph # For Carpolin
  id: ForcedCarpSentient
  configuration:
    entity: MobCarpSentient
    forced: true
    inventory: transfer
    transferName: true
    transferDamage: true
    revertOnCrit: false
    revertOnDeath: true

- type: polymorph
  id: WizardForcedSkeleton
  configuration:
    entity: MobSkeletonPerson
    forced: true
    inventory: Drop
    transferName: true
    transferDamage: true
    revertOnCrit: false
    revertOnDeath: false
    polymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg
    exitPolymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg

- type: polymorph
  id: WizardForcedMonkey
  configuration:
    entity: MobMonkey
    forced: true
    inventory: None
    transferName: true
    transferDamage: true
    revertOnCrit: false
    revertOnDeath: true
    polymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg
    exitPolymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg

- type: polymorph
  id: WizardWallDoor
  configuration:
    entities: WizardWallDoor # Goob edit
    forced: true
    inventory: None
    transferName: false
    transferDamage: false
    revertOnCrit: false
    revertOnDeath: false
    polymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg
    exitPolymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg
    allowMovement: false # Goobstation

- type: polymorph
  id: WizardForcedCluwne
  configuration:
    entity: MobCluwne
    forced: true
    transferName: true
    transferHumanoidAppearance: true
    inventory: Transfer
    revertOnDeath: true
    polymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg
    exitPolymorphSound: !type:SoundPathSpecifier
      path: /Audio/Magic/forcewall.ogg

# this is a test for transferring some visual appearance stuff
- type: polymorph
  id: TestHumanMorph
  configuration:
    entity: MobHuman
    transferName: true
    transferHumanoidAppearance: true
    inventory: Transfer

- type: polymorph
  id: AMIVMorph
  configuration:
    entity: MobMonkey
    forced: true
    inventory: Transfer
    transferName: true
    revertOnCrit: false
    revertOnDeath: false

- type: polymorph
  id: BreadMorph
  configuration:
    entity: FoodBreadPlain
    forced: true
    inventory: None
    transferName: false
    transferDamage: true
    revertOnCrit: false
    revertOnDeath: true
    revertOnEat: true

- type: polymorph
  id: TreeMorph
  configuration:
    entity: FloraTree
    forced: true
    transferName: true
    revertOnDeath: true
    inventory: Drop
    cooldown: 160

- type: polymorph
  id: SmartCorgiMorph
  configuration:
    entity: MobCorgiSmart
    forced: false
    inventory: Drop
    transferName: true
    revertOnCrit: false
    revertOnDeath: false
    allowRepeatedMorphs: false

# this is the monkey polymorph for artifact.
- type: polymorph
  id: ArtifactMonkey
  configuration:
    entity: MobMonkey
    forced: true
    transferName: true
    allowRepeatedMorphs: true
    inventory: Transfer
    revertOnCrit: true
    revertOnDeath: true
    duration: 20

- type: polymorph
  id: ArtifactCluwne
  configuration:
    entity: MobCluwne
    forced: true
    transferName: true
    transferHumanoidAppearance: true
    inventory: None
    revertOnDeath: true
    revertOnCrit: true
    duration: 30

- type: polymorph
  id: ArtifactLizard
  configuration:
    entity: MobLizard
    forced: true
    transferName: true
    inventory: None
    revertOnDeath: true
    revertOnCrit: true
    duration: 20

- type: polymorph
  id: ArtifactLuminous
  configuration:
    entity: MobLuminousPerson
    forced: true
    transferName: true
    inventory: None
    revertOnDeath: true
    revertOnCrit: true
    duration: 20

# Polymorphs for Wizards polymorph self spell
- type: polymorph
  id: WizardSpider
  configuration:
    entity: MobGiantSpiderWizard #Not angry so ghosts can't just take over the wizard
    transferName: true
    inventory: None
    revertOnDeath: true
    revertOnCrit: true

- type: polymorph
  id: WizardRod
  configuration:
    entity: ImmovableRodWizard #CLANG
    transferName: true
    transferDamage: false
    inventory: None
    duration: 2 # Goob edit
    allowMovement: false # Goobstation
    forced: true
    revertOnCrit: false
    revertOnDeath: false
    attachToGridOrMap: true # Goobstation

# Temporary Jaunt
# Don't make permanent jaunts until action system can be reworked to allow do afters and cooldown pausing
- type: polymorph
  id: Jaunt
  configuration:
    entity: EtherealJaunt
    transferName: true
    inventory: None
    forced: true
    revertOnDeath: true
    revertOnCrit: true
    allowRepeatedMorphs: false
    # polymorphSound: /Audio/Magic/ethereal_enter.ogg # Goob edit
    # exitPolymorphSound: /Audio/Magic/ethereal_exit.ogg # Goob edit
    duration: 5 # Goob edit
    showPopup: false # Goobstation
    attachToGridOrMap: true # Goobstation

# Desynchronized / Void Pocket status
- type: polymorph
  id: VoidPocket
  configuration:
    entity: DesynchronizedPocket
    transferName: false
    inventory: None
    forced: false
    revertOnDeath: true
    allowRepeatedMorphs: false
    polymorphSound: /Audio/Magic/ethereal_enter.ogg
    exitPolymorphSound: /Audio/Magic/ethereal_exit.ogg
    duration: 120
    effectProto: EffectDesynchronizer
