- type: entity
  abstract: true
  save: false
  parent: [BaseMobSpeciesOrganic, BaseSpeciesPickupableHuge, BaseInventoryVulpkanin] # Starlight
  id: BaseMobVulpkanin
  name: Urist McBark
  components:
  #Starlight
  - type: LanguageKnowledge
    speaks:
    - GalacticCommon
    - Canilunzt
    understands:
    - GalacticCommon
    - Canilunzt
    - Fox # "vaguely canidae"
    - Dog # "vaguely canidae"
  #Starlight
#  - type: Hunger # starlight
#  - type: Thirst # starlight
  - type: MessyDrinker
    spillChance: 0.05 # 🌟Starlight🌟 26% chance to spill per 30u of liquid
  - type: Icon
    sprite: _Starlight/Mobs/Species/Vulpkanin/parts.rsi #Starlight
    state: full
  - type: Body
    prototype: Vulpkanin
  - type: Speech
    speechSounds: Vulpkanin
    speechVerb: Vulpkanin
    allowedEmotes: [ 'Bark', 'Snarl', 'Whine', 'Howl', 'Growl', 'Yip' ] #Starlight Yip
  - type: Vocal
    sounds:
      Male: MaleVulpkanin
      Female: FemaleVulpkanin
      Unsexed: MaleVulpkanin
  - type: Damageable
    damageModifierSet: Vulpkanin
  - type: MeleeWeapon
    soundHit:
      path: /Audio/Weapons/pierce.ogg
    animation: WeaponArcClaw
    damage:
      types:
        Piercing: 2
        Slash: 3
  # starlight start - temp vulpkanin revert
  # - type: Temperature # Same as moth temperatures until below is solved.
  #   specificHeat: 44
  # - type: TemperatureDamage
  #   heatDamageThreshold: 320 # TODO: 315 when there is a way to make the temperature alert not blink to the side of the screen and disappear when you "sweat" at 39C.
  #   coldDamageThreshold: 230 # TODO: 220 when the above is solved.
  #   coldDamage:
  #     types:
  #       Cold: 0.05 # Per second, scales with temperature & other constants
  #   heatDamage:
  #     types:
  #       Heat: 2.5 # Per second, scales with temperature & other constants
  # starlight end
    # Starlight start
    # - type: Wagging TODO: Add back once we have animated tails again. Were removed due to the sprite rework, causing all of them to not fit anymore.
    #   action: ActionToggleWaggingVulpkanin
  - type: Wagging
  - type: GrowlingAccent
    # Starlight end
  - type: TemperatureProtection
    heatingCoefficient: 1.2
    coolingCoefficient: 0.3
  # STARLIGHT START
  # - type: JumpAbility
  #   action: ActionVulpkaninGravityJump
  #   canCollide: true
  #   jumpDistance: 3
  #   jumpSound:
  #     path: /Audio/Weapons/punchmiss.ogg
  #     params:
  #       pitch: 1.33
  #       volume: -5
  #       variation: 0.05
  # STARLIGHT END
  - type: Sprite # Drawlayers. Top to bottom in order I believe.
    netsync: false
    layers:
    - map: [ "enum.HumanoidVisualLayers.Chest" ]
    - map: [ "enum.HumanoidVisualLayers.Head" ]
    - map: [ "enum.HumanoidVisualLayers.Snout" ]
    - map: [ "enum.HumanoidVisualLayers.Eyes" ]
    - map: [ "enum.HumanoidVisualLayers.RArm" ]
    - map: [ "enum.HumanoidVisualLayers.LArm" ]
    - map: [ "enum.HumanoidVisualLayers.RLeg" ]
    - map: [ "enum.HumanoidVisualLayers.LLeg" ]
    - map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
    - map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
    - map: [ "jumpsuit" ]
    - map: [ "enum.HumanoidVisualLayers.LFoot" ] # Starlight: Layering fix
    - map: [ "enum.HumanoidVisualLayers.RFoot" ] # Starlight: Layering fix
    - map: [ "enum.HumanoidVisualLayers.LHand" ]
    - map: [ "enum.HumanoidVisualLayers.RHand" ]
    - map: [ "gloves" ]
    - map: [ "shoes" ] # Starlight start: Layering fix
    - map: [ "ears" ]
    - map: [ "eyes" ]
    - map: [ "outerClothing" ]
    - map: [ "belt" ]
    - map: [ "id" ]
    - map: [ "back" ]
    - map: [ "neck" ] # Starlight end: Layering fix
    - map: [ "enum.HumanoidVisualLayers.SnoutCover" ]
    - map: [ "enum.HumanoidVisualLayers.FacialHair" ]
    - map: [ "enum.HumanoidVisualLayers.Hair" ]
    - map: [ "enum.HumanoidVisualLayers.HeadSide" ]
    - map: [ "enum.HumanoidVisualLayers.HeadTop" ]
    - map: [ "enum.HumanoidVisualLayers.Tail" ]
    - map: [ "mask" ]
    - map: [ "head" ]
    - map: [ "pocket1" ]
    - map: [ "pocket2" ]
    - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] # Starlight start: Layering fix
      color: "#ffffff"
      sprite: Objects/Misc/handcuffs.rsi
      state: body-overlay-2
      visible: false # Starlight end: Layering fix
    - map: [ "clownedon" ]
      sprite: "Effects/creampie.rsi"
      state: "creampie_vulpkanin"
      visible: false
  - type: HumanoidAppearance
    species: Vulpkanin
    undergarmentTop: UndergarmentTopTanktopVulpkanin
    undergarmentBottom: UndergarmentBottomBoxersVulpkanin
    hideLayersOnEquip:
    - Snout
    - SnoutCover
    - HeadTop
    - HeadSide
    - FacialHair
    - Hair
  # Starlight start
    # our vulpkanin hair follows normal human layout
    #markingsDisplacement:
    #  Hair:
    #    sizeMaps:
    #      32:
    #        sprite: Mobs/Species/Vulpkanin/displacement.rsi
    #        state: hair
  # Starlight end
  # starlight start - temp vulpkanin revert
  - type: Hunger # on 1.5x more
    thresholds:
      Overfed: 250
      Okay: 200
      Peckish: 150
      Starving: 100
      Dead: 0
    baseDecayRate: 0.018
  - type: Thirst # on 1.5x more
    thresholds:
      OverHydrated: 650
      Okay: 500
      Thirsty: 350
      Parched: 200
      Dead: 0
    baseDecayRate: 0.125
  - type: TemperatureDamage # Ported over from CD. Afterall, it does make sense that something with fur can handle more cold/less heat. Basegame Moths, apparently, have similar resistances.
    heatDamageThreshold: 325
    coldDamageThreshold: 230
    coldDamage:
      types:
        Cold : 0.05 #per second, scales with temperature & other constants
    heatDamage:
      types:
        Heat : 1.75 #per second, scales with temperature & other constants
  - type: Temperature # Ported over from CD. Afterall, it does make sense that something with fur can handle more cold/less heat. Basegame Moths, apparently, have similar resistances.
    currentTemperature: 310.15
    specificHeat: 46
  - type: ContentEye
    targetZoom: "1.125, 1.125"
    maxZoom: "1.125, 1.125"
  # starlight end
