# SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 Scruq445 <storchdamien@gmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TurboTracker <130304754+TurboTrackerss14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
# SPDX-FileCopyrightText: 2025 Evaisa <mail@evaisa.dev>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseSuicideAction
  id: ActionActivateBluespaceLifeline
  name: Activate Bluespace Lifeline
  description: Activates your bluespace lifeline implant, teleporting you far-far away from this station. You won't be able to come back.
  components:
  - type: Action
    checkCanInteract: false
    checkConsciousness: false
    itemIconStyle: BigAction
    priority: -20
    icon:
      sprite: _Goobstation/Effects/bluespace_lifeline.rsi
      state: bluespace_lifeline
  - type: InstantAction
    event: !type:ActivateImplantEvent

- type: entity
  parent: BaseAction
  id: ActionHorn
  name: Honk!
  description: Beep the horn at whoever you will run over.
  components:
  - type: Action
    useDelay: 1
    icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon }
  - type: InstantAction
    event: !type:HornActionEvent

- type: entity
  parent: BaseAction
  id: ActionSiren
  name: Siren
  description: Alert your victim to your presence.
  components:
  - type: Action
    useDelay: 1
    icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon }
  - type: InstantAction
    event: !type:SirenActionEvent

- type: entity
  parent: BaseImplantAction
  id: ActivateSmokeImplant
  name: Release a cloud of smoke
  description: Releases a cloud of smoke around you.
  components:
  - type: Action
    useDelay: 30
    icon:
      sprite: Objects/Weapons/Grenades/smoke.rsi
      state: icon

- type: entity
  parent: BaseAction
  id: ActionDashMoth
  name: Wing dash
  description: Sharply flap your wings, dashing to the side!
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    useDelay: 6.5
    icon: { sprite: _Goobstation/Actions/dash.rsi, state: icon }
    itemIconStyle: NoItem
    sound: !type:SoundPathSpecifier
      path: /Audio/_Goobstation/Effects/moth_wings.ogg
      params:
        volume: 6.5
  - type: TargetAction
    checkCanAccess: false
    range: 0
  - type: WorldTargetAction
    event: !type:DashActionEvent
      staminaDrain: 30


- type: entity
  id: ActionDashGeneric
  name: Dash
  parent: ActionDashMoth
  description: Dash forward.
  components:
  - type: Action
    useDelay: 6.5
    icon: { sprite: _Goobstation/Actions/dash.rsi, state: icon }
    itemIconStyle: NoItem
    sound: !type:SoundPathSpecifier
      path: /Audio/Effects/thudswoosh.ogg
      params:
        volume: 6.5

- type: entity
  parent: BaseAction
  id: ActionToggleRightMantisBlade
  name: Toggle Right Mantis Blade
  description: Extend or retract the mantis blade in your right arm.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    checkCanInteract: false
    useDelay: 2
    icon: { sprite: _Goobstation/Objects/Weapons/Melee/mantis_blade.rsi, state: icon }
    itemIconStyle: NoItem
    sound: !type:SoundPathSpecifier
      path: /Audio/Items/unsheath.ogg
  - type: InstantAction
    event: !type:ToggleMantisBladeEvent

- type: entity
  parent: ActionToggleRightMantisBlade
  id: ActionToggleLeftMantisBlade
  name: Toggle Left Mantis Blade
  description: Extend or retract the mantis blade in your left arm.
  components:
  - type: Action
    icon: { sprite: _Goobstation/Objects/Weapons/Melee/mantis_blade.rsi, state: icon-mirrored }

- type: entity
  parent: BaseAction
  id: ActionToggleSandevistan
  name: Toggle Sandevistan
  description: Enable or disable your improved reflexes provided by the Sandevistan.
  components:
  - type: Action
    checkCanInteract: false
    useDelay: 3
    icon: { sprite: _Goobstation/Objects/Misc/sandevistan.rsi, state: icon }
    itemIconStyle: NoItem
    raiseOnUser: true
  - type: InstantAction
    event: !type:ToggleSandevistanEvent

- type: entity
  parent: BaseMentalAction
  id: ActionShowStationMap
  name: Station Map Interface
  description: View a Station Map Interface.
  components:
  - type: Action
    # TODO: Make a sprite for the station map interface.
    icon: { sprite: Interface/Actions/actions_ai.rsi, state: mass_scanner }
    iconOn: Interface/Actions/actions_ai.rsi/mass_scanner.png
    keywords: [ "AI", "console", "interface" ]
    priority: -8
  - type: InstantAction
    event: !type:ToggleIntrinsicUIEvent { key: enum.StationMapUiKey.Key }

- type: entity
  parent: BaseAction
  id: ActionToggleFloorBoardsMode
  name: Enter or Exit Floor
  description: Crawl under the floor boards.
  components:
  - type: Action
    itemIconStyle: BigAction
    useDelay: 3
    icon:
      sprite: Structures/Piping/Atmospherics/vent.rsi
      state: vent_off
  - type: InstantAction
    event: !type:ToggleCrawlingStateEvent

- type: entity
  parent: BaseAction
  id: ActionStealShoes
  name: Steal Shoes
  description: A tasty snack it will be!
  components:
  - type: Action
    checkCanInteract: false
    itemIconStyle: NoItem
    icon:
      sprite: Clothing/Shoes/Boots/jackboots.rsi
      state: icon
  - type: TargetAction
    interactOnMiss: false
  - type: EntityTargetAction
    whitelist:
      components:
      - Inventory
    canTargetSelf: false
    event: !type:StealShoesEvent {}

- type: entity
  id: ActionVehicleWallPush
  name: Wall Launch
  description: Launch yourself off the nearest surface, tiders count as surfaces.
  components:
  - type: Action
    itemIconStyle: NoItem
    icon:
      sprite: Structures/Furniture/chairs.rsi
      state: office-dark
    useDelay: 1
  - type: TargetAction
    range: 16
    checkCanAccess: false
  - type: WorldTargetAction
    event: !type:VehicleWallPushActionEvent

- type: entity
  id: ActionRocketChairBoost
  parent: BaseAction
  name: Boost
  description: Spray water to launch forward.
  components:
  - type: Action
    itemIconStyle: NoItem
    icon:
      sprite: Objects/Misc/fire_extinguisher.rsi
      state: fire_extinguisher_closed
    useDelay: 1
  - type: TargetAction
    range: 16
    checkCanAccess: false
  - type: WorldTargetAction
    event: !type:RocketChairBoostActionEvent

- type: entity
  parent: BaseAction
  id: ActionActivateBerserkerImplant
  name: Activate Berserker Implant
  description: Activate your berserker implant, greatly increasing your melee damage and speed for a short duration. While in berserk mode, you will be unable to use ranged weapons.
  categories: [ HideSpawnMenu ]
  components:
  - type: Action
    checkCanInteract: false
    useDelay: 40
    icon: { sprite: _Goobstation/Objects/Misc/berserker_heart.rsi, state: icon }
    itemIconStyle: NoItem
    sound: !type:SoundPathSpecifier
      path: /Audio/_Goobstation/Misc/berserker-implant-activate.ogg
  - type: InstantAction
    event: !type:ActivateBerserkerImplantActionEvent

- type: entity
  parent: BaseSuicideAction
  id: ActionActivateRedspaceLifeline
  name: Activate Redspace Lifeline
  description: Activates your redspace lifeline implant, teleporting you far-far away from this station. You won't be able to come back.
  components:
    - type: Action
      checkCanInteract: false
      checkConsciousness: false
      itemIconStyle: BigAction
      priority: -20
      icon:
        sprite: _Goobstation/Effects/redspace_lifeline.rsi
        state: redspace_lifeline
    - type: InstantAction
      event: !type:ActivateImplantEvent

- type: entity
  parent: BaseAction
  id: ActionForklift
  name: Activate Lift
  description: Lift up crates in front of you.
  components:
  - type: Action
    useDelay: 3
    icon:
      sprite: _Goobstation/Objects/Vehicles/forklift.rsi
      state: forklift
    itemIconStyle: BigAction
  - type: TargetAction
    interactOnMiss: false
  - type: EntityTargetAction
    event: !type:ForkliftActionEvent
    canTargetSelf: false
    whitelist:
      tags:
      - Crate

- type: entity
  parent: BaseAction
  id: ActionUnforklift
  name: Drop Lift
  description: Put down crates in front of you.
  components:
  - type: Action
    useDelay: 1.5
    icon: Interface/NavMap/beveled_arrow_south.png
  - type: InstantAction
    event: !type:UnforkliftActionEvent
