# SPDX-FileCopyrightText: 2023 I.K <45953835+notquitehadouken@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 notquitehadouken <1isthisameme>
# SPDX-FileCopyrightText: 2024 Whisper <121047731+QuietlyWhisper@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 Aineias1 <dmitri.s.kiselev@gmail.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Zokkie <6126135+Zokkie@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@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 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 whateverusername0 <whateveremail>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  save: false
  parent: [ BaseSimpleMob, MobCombat ]
  id: BaseMobArgocyte
  suffix: AI
  description: A dangerous alien found on the wrong side of planets, known for their propensity for munching on ruins.
  abstract: true
  components:
  - type: NpcFactionMember
    factions:
    - Xeno
  - type: HTN
    rootTask:
      task: SimpleHostileCompound #todo custom argocyte AI
  - type: Sprite
    sprite: Mobs/Aliens/Argocyte/argocyte_common.rsi
  - type: SolutionContainerManager
  - type: LanguageKnowledge # Einstein Engines - Language
    speaks:
    - Xeno
    understands:
    - Xeno
    - TauCetiBasic
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: FerrochromicAcid
        Quantity: 75 #we don't want the map to become pools of blood
    bloodlossDamage:
      types:
        Bloodloss:
          0.5
    bloodlossHealDamage:
      types:
        Bloodloss:
          -1
  - type: Insulated
  - type: CombatMode
  - type: MeleeWeapon
    angle: 0
    animation: WeaponArcBite
    damage:
      types:
        Slash: 5
  - type: Body
    prototype: Animal
    bodyType: Simple
  - type: Flammable
    fireSpread: true
    canResistFire: true
    damage:
      types:
        Heat: 9
  - type: FireVisuals
    sprite: Mobs/Effects/onfire.rsi
    normalState: Generic_mob_burning
  - type: Climbing
  - type: NameIdentifier
    group: GenericNumber
  - type: Fauna # Lavaland Change

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteSlurva
  name: slurva
  description: A pathetic creature, incapable of doing much.
  components:
  - type: Sprite
    layers:
    - state: slurva
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: slurva
      Dead:
        Base: slurva_dead
  - type: HTN
    rootTask:
      task: IdleCompound
  - type: MobThresholds
    thresholds:
      0: Alive
      30: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 1
  - type: MovementSpeedModifier
    baseSprintSpeed : 3.5
    baseWalkSpeed : 3
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 3

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteBarrier
  name: barrier
  components:
  - type: Sprite
    layers:
    - state: barrier
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: barrier
      Dead:
        Base: barrier_dead
  - type: HTN
    rootTask:
      task: IdleCompound
  - type: MobThresholds
    thresholds:
      0: Alive
      30: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 1
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.2
        density: 50
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 3

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteSkitter
  name: skitter
  description: A devious little alien... Make sure they don't run off with your rations!
  components:
  - type: Sprite
    layers:
    - state: skitter
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: skitter
      Dead:
        Base: skitter_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      30: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 1
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.2
        density: 50
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: MeleeWeapon
    damage:
      types:
        Slash: 3

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteSwiper
  name: swiper
  description: Where did that stack of steel go?
  components:
  - type: Sprite
    layers:
    - state: swiper
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: swiper
      Dead:
        Base: swiper_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      60: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 2
  - type: MovementSpeedModifier
    baseSprintSpeed : 5

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteMolder
  name: molder
  components:
  - type: Sprite
    layers:
    - state: molder
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: molder
      Dead:
        Base: molder_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      100: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 2
  - type: MovementSpeedModifier
    baseSprintSpeed : 4
    baseWalkSpeed : 3.5

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocytePouncer
  name: pouncer
  components:
  - type: Sprite
    layers:
    - state: pouncer
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: pouncer
      Dead:
        Base: pouncer_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      100: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 2
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 2.5
        Slash: 7.5

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteGlider
  name: glider
  components:
  - type: Sprite
    layers:
    - state: glider
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: glider
      Dead:
        Base: glider_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      100: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 2
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 3.5
        Slash: 3.5
  - type: MovementSpeedModifier
    baseSprintSpeed : 5
    baseWalkSpeed: 4.5

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteHarvester
  name: harvester
  components:
  - type: Sprite
    layers:
    - state: harvester
      map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: harvester
      Dead:
        Base: harvester_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      150: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 2
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 5
        Slash: 10
        Structural: 5

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteCrawler
  name: crawler
  description: Deadly, pack-animals that maul unsuspecting travelers.
  components:
  - type: Sprite
    layers:
      - state: crawler
        map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: crawler
      Dead:
        Base: crawler_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      150: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 2
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 15
        Slash: 5
        Structural: 5
  - type: MovementSpeedModifier
    baseSprintSpeed : 6.5
    baseWalkSpeed: 5

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteEnforcer
  name: enforcer
  components:
  - type: Sprite
    layers:
      - state: enforcer
        map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: enforcer
      Dead:
        Base: enforcer_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      300: Dead
  - type: Butcherable
    spawned:
    - id: FoodMeatXeno
      amount: 3
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 10
        Slash: 15
        Structural: 10
  - type: MovementSpeedModifier
    baseSprintSpeed : 3.5
    baseWalkSpeed: 3

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteFounder
  name: founder
  components:
  - type: Sprite
    sprite: Mobs/Aliens/Argocyte/argocyte_large.rsi
    layers:
      - state: founder
        map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: founder
      Dead:
        Base: founder_dead
  - type: Butcherable
    butcheringType: Spike
    spawned:
    - id: FoodMeatXeno
      amount: 5
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          # Circles, cuz rotation of rectangles looks very bad
          !type:PhysShapeCircle
          radius: 0.75
        density: 300
        mask:
          - MobMask
        layer:
          - MobLayer
  - type: MobThresholds
    thresholds:
      0: Alive
      500: Dead
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 25
        Structural: 25
  - type: MovementSpeedModifier
    baseSprintSpeed : 3
    baseWalkSpeed: 3

- type: entity
  parent: BaseMobArgocyte
  id: MobArgocyteLeviathing
  name: leviathing
  components:
  - type: Sprite
    sprite: Mobs/Aliens/Argocyte/argocyte_large.rsi
    layers:
      - state: leviathing
        map: ["enum.DamageStateVisualLayers.Base"]
  - type: DamageStateVisuals
    states:
      Alive:
        Base: leviathing
      Dead:
        Base: leviathing_dead
  - type: Butcherable
    butcheringType: Spike
    spawned:
    - id: FoodMeatXeno
      amount: 10
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          # Circles, cuz rotation of rectangles looks very bad
          !type:PhysShapeCircle
          radius: 0.75
        density: 300
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: MobThresholds
    thresholds:
      0: Alive
      1000: Dead
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 75
        Structural: 50
