- type: entity
  parent: [ MobHuman, StorePresetChangeling ]
  id: MobLing
  name: Urist McLing
  suffix: Non-Antag
  components:
  - type: ChangelingDevour
  - type: ChangelingIdentity
  - type: ChangelingTransform
  - type: AddMetabolism
    addedMetabolizer: Changeling
  - type: DestructionResistance
  - type: RevolutionaryImmune
  - type: ZombieImmune
  - type: ActionGrant
    removeOnShutdown: false
    actions:
    - ActionChangelingStore
    - ActionChangelingStasis
  - type: SatiationGrant
    removeOnShutdown: false
    satiation:
      Chemicals:
        prototype: ChemicalsChangeling
  - type: Store
    balance:
      ChangelingDNA: 60

- type: entity
  parent:
  - SimpleSpaceMobBase
  - MobNightVision
  - BaseMobDestructible
  id: MobHeadSlugBase
  abstract: true
  components:
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.2
        density: 15
        mask:
        - SmallMobMask
        layer:
        - SmallMobLayer
  - type: Deathgasp
  - type: MobStateActions
    actions:
      Critical:
      - ActionCritSuccumb
      - ActionCritFakeDeath
      - ActionCritLastWords
  - type: ReplacementAccent
    accent: genericAggressive
  - type: MovementSpeedModifier # Slightly faster than regular mobs
    baseWalkSpeed: 3
    baseSprintSpeed: 5
  - type: ChangelingSlug
  - type: Speech # need these speech comps because it isnt targeted by MakeSentient.
    speechVerb: LargeMob
  - type: Emoting
  - type: ActionGrant
    actions:
    - ActionChangelingStasisWeak
  - type: Tag # Removes DoorBumpOpener
    tags:
      [ ]

- type: entity
  parent:
  - MobHeadSlugBase
  - MobRespirator
  - MobAtmosStandard
  id: MobHeadSlug
  name: headslug
  description: A small, slug-like creature with a large, gaping maw. It's covered in a thick, slimy mucus.
  components:
  - type: Sprite
    drawdepth: SmallMobs
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: slug
      sprite: Mobs/Animals/headslug.rsi
  - type: DamageStateVisuals
    states:
      Alive:
        Base: slug
      Critical:
        Base: slug_dead
      Dead:
        Base: slug_dead
  - type: MobThresholds
    thresholds:
      0: Alive
      25: Critical
      50: Dead
  - type: Respirator
    damage:
      types:
        Asphyxiation: 0.25
    damageRecovery:
      types:
        Asphyxiation: -0.25
  - type: Barotrauma
    damage:
      types:
        Blunt: 0.1
  - type: MeleeWeapon
    altDisarm: false
    damage:
      types:
        Blunt: 5
        Structural: 15 # to destroy lockers in which bodies could be hidden
  - type: InteractionPopup
    successChance: 0.2
    interactSuccessString: petting-success-headslug
    interactFailureString: petting-failure-headslug
    interactSuccessSpawn: EffectHearts
    interactSuccessSound:
      path: /Audio/Effects/Fluids/blood1.ogg

- type: entity
  parent:
  - MobHeadSlugBase
  - FlyingMobBase # its space faring because it spawns from space
  id: MobHeadSlugElder
  name: elder headslug
  description: After living a few years, headslugs develop into this state and gain space faring abilities as a part of the changeling's reproduction cycle.
  components:
  - type: Sprite
    drawdepth: SmallMobs
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: slug_elder
      sprite: Mobs/Animals/headslug.rsi
  - type: DamageStateVisuals
    states:
      Alive:
        Base: slug_elder
      Critical:
        Base: slug_elder_dead
      Dead:
        Base: slug_elder_dead
  - type: ExplosionResistance # since it spawns in a bang
    damageCoefficient: 0.1
  - type: MobThresholds
    thresholds:
      0: Alive
      50: Critical
      75: Dead
  - type: MeleeWeapon
    altDisarm: false
    damage:
      types:
        Blunt: 10
        Structural: 25 # to destroy lockers in which bodies could be hidden
  - type: InteractionPopup
    successChance: 0.01
    interactSuccessString: petting-success-elder-headslug
    interactFailureString: petting-failure-elder-headslug
    interactSuccessSpawn: EffectHearts
    interactSuccessSound:
      path: /Audio/Animals/cat_meow.ogg # meow

- type: entity # dummy prototype for the store listing
  id: ChangelingFleshClothingAbilityStoreDummy
  categories: [ HideSpawnMenu ]
  components:
  - type: ChangelingFleshClothingAbility
    clothingPrototypes:
      shoes: ChangelingFleshClothingFeet
      jumpsuit: ChangelingFleshClothingInner
      outerClothing: ChangelingFleshClothingOuter
      gloves: ChangelingFleshClothingGloves
      neck: ChangelingFleshClothingNeck
      mask: ChangelingFleshClothingMask
      eyes: ChangelingFleshClothingEyes
      ears: ChangelingFleshClothingEars
      head: ChangelingFleshClothingHead
      suitstorage: ChangelingFleshClothingSuitStorage
      #id: TODO: chameleon PDA that is not a functional PDA
      belt: ChangelingFleshClothingBelt
      back: ChangelingFleshClothingBack

- type: entity # dummy prototype for the store listing
  id: ChangelingVoiceMimicDummy
  categories: [ HideSpawnMenu ]
  components:
  - type:  VoiceMask
    action: ActionChangelingVoiceMimic
    isInnate: true
    changeIDName: false
    # this is set to false as to not mess with a changeling's ability to disguise.
    accentHide: false
    titleText: changeling-voice-mimic-window-title

- type: entity # dummy prototype for the store listing
  id: ChangelingNightVisionDummy
  categories: [ HideSpawnMenu ]
  components:
  - type: NightVision
    enabled: false # Disabled by default
    action: ActionChangelingNightVision
    lightingColor: "#AF0909AA"
    noiseAmount: 1
    noiseMultiplier: 2
    overlayColor: "#AB0808AA"
    prioritized: false # Technically eye augments, so we want things such as NVGs to take priority if able

- type: entity # dummy prototype for the store listing
  id: ChangelingFakeMindshieldDummy
  categories: [ HideSpawnMenu ]
  components:
  - type: FakeMindShield
    actionTag: FakeMindShieldChangeling
    chameleonControllable: false
    isInnate: true
    enabledPopup: changeling-fake-mindshield-enabled
    disabledPopup: changeling-fake-mindshield-disabled
    action: ActionChangelingFakeMindshieldToggle
