# Does not inherit from simplemob
- type: entity
  abstract: true
  name: GuardianBase
  id: MobGuardianBase
  description: guardian
  components:
  - type: GhostTakeoverAvailable
    makeSentient: true
    name: Guardian
    description: Listen to your owner. Don't tank damage. Punch people hard.
  - type: Input
    context: "human"
  - type: PlayerMobMover
  - type: PlayerInputMover
  - type: MovementSpeedModifier
    baseWalkSpeed : 7
    baseSprintSpeed : 7
  - type: DamageOnHighSpeedImpact
    damage:
      types:
        Blunt: 5
    soundHit:
      path: /Audio/Effects/hit_kick.ogg
  # TODO: Randomise sprites and randomise the layer color
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/Guardians/guardians.rsi
    layers:
    - state: tech_base
    - state: tech_flare
      color: "#40a7d7"
      shader: unshaded
    noRot: true
  - type: Clickable
  - type: InteractionOutline
  - type: Physics
    bodyType: KinematicController
  - type: Fixtures
    fixtures:
    - shape:
        !type:PhysShapeCircle
        radius: 0.35
      mass: 10
      mask:
      - VaultImpassable
      layer:
      - Opaque
  - type: Damageable
    damageContainer: Biological
  - type: MobState
    thresholds:
      0: !type:NormalMobState {}
  - type: HeatResistance
  - type: CombatMode
  - type: Internals
  - type: Examiner
  - type: Speech
  - type: Pullable
  - type: UnarmedCombat
    range: 2
    arcwidth: 30
    arc: fist
    cooldownTime: 0.7
    arcCooldownTime: 0.7
    damage:
      types:
        Blunt: 22
  - type: Actions
  - type: Guardian
  - type: InteractionPopup
    interactSuccessString: petting-success-holo
    interactFailureString: petting-failure-holo
    successChance: 0.7

# From the uplink injector
- type: entity
  name: Holoparasite
  id: MobHoloparasiteGuardian
  parent: MobGuardianBase
  description: A mesmerising whirl of hard-light patterns weaves a marvelous, yet oddly familiar visage. It stands proud, tuning into its owner's life to sustain itself.
  components:
  - type: GhostTakeoverAvailable
    makeSentient: true
    name: Holoparasite
    description: Listen to your owner. Don't tank damage. Punch people hard.
  - type: NameIdentifier
    group: Holoparasite
  - type: Sprite
    layers:
    - state: tech_base
    - state: tech_flare
      color: "#40a7d7"
      shader: unshaded

# From Wizard deck of cards
- type: entity
  name: Ifrit
  parent: MobGuardianBase
  id: MobIfritGuardian
  description: A corrupted jinn, ripped from fitra to serve the wizard's petty needs. It stands wicked, tuning into it's owner's life to sustain itself.
  components:
  - type: GhostTakeoverAvailable
    makeSentient: true
    name: Ifrit
    description: Listen to your owner. Don't tank damage. Punch people hard.
  - type: Sprite
    layers:
    - state: magic_base
    - state: magic_flare
      color: "#d14730"
      shader: unshaded