# SPDX-FileCopyrightText: 2024 Adeinitas <147965189+adeinitas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 VMSolidus <evilexecutive@gmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 GNUtopia <93669372+GNUtopia@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  abstract: true
  parent: BasePart
  id: PartHarpyBase
  components:
  - type: Sprite
    sprite: _DV/Mobs/Species/Harpy/parts.rsi
  - type: Icon
    sprite: _DV/Mobs/Species/Harpy/parts.rsi
  - type: BodyPart
    species: Harpy
  - type: Woundable # Goobstation
    boneEntity: BoneWeak
  - type: Damageable # Shitmed
    damageModifierSet: Harpy

- type: entity
  parent: [ PartHarpyBase, BaseChest ]
  id: ChestHarpy
  name: "harpy chest"
  components:
  - type: Sprite
    sprite: _DV/Mobs/Species/Harpy/parts.rsi
    state: "chest_m"
  - type: Icon
    sprite: _DV/Mobs/Species/Harpy/parts.rsi
    state: "chest_m"

- type: entity
  parent: [ PartHarpyBase, BaseGroin ]
  id: GroinHarpy
  name: "harpy groin"
  components:
  - type: Sprite
    sprite: _DV/Mobs/Species/Harpy/parts.rsi
    state: "groin_m"
  - type: Icon
    sprite: _DV/Mobs/Species/Harpy/parts.rsi
    state: "groin_m"

- type: entity
  parent: [ PartHarpyBase, BaseHead ]
  id: HeadHarpy
  name: "harpy head"
  components:
  - type: Woundable # Goobstation
    boneEntity: BoneNeckWeak

- type: entity
  parent: [ PartHarpyBase, BaseLeftArm ]
  id: LeftArmHarpy
  name: "left harpy arm"

- type: entity
  parent: [ PartHarpyBase, BaseRightArm ]
  id: RightArmHarpy
  name: "right harpy arm"
  components:
  - type: BodyPart
    onAdd: # Shitmed Change
    - type: Flight
      isLayerAnimated: true
      layer: "/Textures/_EinsteinEngines/Mobs/Customization/Harpy/harpy_wings.rsi"
      animationKey: "Flap"
      # Buffed to account for sprinting. Gets to about the same distance as everyone else's sprint, but with faster acceleration.
      speedModifier: 2.6

- type: entity
  parent: [ PartHarpyBase, BaseLeftHand ]
  id: LeftHandHarpy
  name: "left harpy hand"

- type: entity
  parent: [ PartHarpyBase, BaseRightHand ]
  id: RightHandHarpy
  name: "right harpy hand"

- type: entity
  parent: [ PartHarpyBase, BaseLeftLeg ]
  id: LeftLegHarpy
  name: "left harpy leg"
  components:
  - type: MovementBodyPart # Goobstation
    sprintSpeed: 5

- type: entity
  parent: [ PartHarpyBase, BaseRightLeg ]
  id: RightLegHarpy
  name: "right harpy leg"
  components:
  - type: MovementBodyPart # Goobstation
    sprintSpeed: 5

- type: entity
  parent: [ PartHarpyBase, BaseLeftFoot ]
  id: LeftFootHarpy
  name: "left harpy foot"

- type: entity
  parent: [ PartHarpyBase, BaseRightFoot ]
  id: RightFootHarpy
  name: "right harpy foot"
