# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 whateverusername0 <whateveremail>
# 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 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# actions
- type: entity
  parent: BaseAction
  id: ActionHereticOpenStore
  name: Open Knowledge Store
  description: Open the Knowledge Store.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    raiseOnUser: true
    itemIconStyle: NoItem
    icon:
      sprite: _Goobstation/Heretic/abilities_heretic.rsi
      state: open_store
  - type: InstantAction
    event: !type:EventHereticOpenStore {}
  - type: HereticAction
    requireMagicItem: false

- type: entity
  parent: BaseAction
  id: ActionHereticMansusGrasp
  name: Mansus Grasp
  description: Channel the power of the Old Gods through your grip.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    raiseOnUser: true
    itemIconStyle: NoItem
    icon:
      sprite: _Goobstation/Heretic/abilities_heretic.rsi
      state: mansus_grasp
  - type: InstantAction
    event: !type:EventHereticMansusGrasp {}
  - type: HereticAction
    requireMagicItem: false

- type: entity
  parent: BaseAction
  id: ActionHereticLivingHeart
  name: Living Heart
  description: Use your heart to get your sacrifice targets location.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    raiseOnUser: true
    useDelay: 2
    itemIconStyle: NoItem
    icon:
      sprite: _Goobstation/Heretic/abilities_heretic.rsi
      state: living_heart
  - type: InstantAction
    event: !type:EventHereticLivingHeart {}
  - type: HereticAction
    requireMagicItem: false

- type: entity
  parent: BaseAction
  id: ActionHereticMansusLink
  name: Manse Link
  description: Pierce through reality and connect minds to one another. Default key is +m
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    raiseOnUser: true
    useDelay: 10
    itemIconStyle: NoItem
    icon:
      sprite: _Goobstation/Heretic/abilities_heretic.rsi
      state: mansus_link
  - type: TargetAction
  - type: EntityTargetAction
    event: !type:EventHereticMansusLink {}
  - type: HereticAction
    requireMagicItem: false
    messageLoc: heretic-speech-mansuslink

- type: entity
  parent: BaseAction
  id: ActionHereticShadowCloak
  name: Cloak of Shadow
  description: Completely conceals your identity, but does not make you invisible. Can be activated early to disable it. While cloaked, you move faster, but undergo actions much slower. Taking damage while cloaked may cause it to lift suddenly.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    raiseOnUser: true
    useDelay: 6
    itemIconStyle: NoItem
    icon:
      sprite: _Goobstation/Heretic/abilities_heretic.rsi
      state: shadowcloak
  - type: InstantAction
    event: !type:EventHereticShadowCloak
  - type: HereticAction
    requireMagicItem: true
  - type: Tag
    tags:
    - ShadowCloakAction

- type: entity
  parent: BaseAction
  id: ActionHereticShapeshift
  name: Shapechange
  description: A spell that allows you to take on the form of another creature, gaining their abilities.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    raiseOnUser: true
    useDelay: 10
    itemIconStyle: NoItem
    icon:
      sprite: _Goobstation/Heretic/abilities_heretic.rsi
      state: shapeshift
  - type: InstantAction
    event: !type:EventHereticShapeshift
  - type: ShapeshiftAction
    polymorphs:
    - ShapeshiftMouse
    - ShapeshiftHonkBot
    - ShapeshiftAdultSlimesBlue
    - ShapeshiftBat
    - ShapeshiftMothroach
    - ShapeshiftCrab
    - ShapeshiftGoose
    - ShapeshiftLizard
    - ShapeshiftParrot
    - ShapeshiftGiantSpider
    - ShapeshiftFox
    - ShapeshiftCorgi
    - ShapeshiftCat
    - ShapeshiftHamster
    - ShapeshiftCarp
    - ShapeshiftBingle
    - ShapeshiftLaserRaptor
  - type: UserInterface
    interfaces:
      enum.HereticShapeshiftUiKey.Key:
        type: HereticShapeshiftBoundUserInterface
