# Anything human specific (e.g. UI, input) goes under HumanMob_Content
- type: entity
  save: false
  name: Urist McHands
  id: BaseHumanMob_Content
  description: A miserable pile of secrets.
  abstract: true
  components:
  - type: Tag
    tags:
    - Teleportable
    - FootstepSound
  - type: Reactive
    reactions:
    - !type:ExtinguishReaction
      touch: true
      reagents:
      - Water
    - !type:FlammableReaction
      touch: true
      reagents:
      - WeldingFuel
      - Thermite
      - Plasma
      - Ethanol
    - !type:WashCreamPieReaction
      touch: true
      reagents:
      - Water
      - SpaceCleaner
  - type: Flashable
  - type: Hands
  - type: MovementSpeedModifier
  - type: MovedByPressure
  - type: Barotrauma
  - type: DamageOnHighSpeedImpact
    soundHit: /Audio/Effects/hit_kick.ogg
  - type: Hunger
  - type: Thirst
  # Organs
  - type: SolutionContainer
    maxVol: 250
    caps: Injectable, Drawable
  - type: Bloodstream
    max_volume: 100
  # StatusEffects
  - type: Stunnable
  # Other
  - type: Inventory
  - type: Clickable
  - type: InteractionOutline
  - type: Icon
    sprite: Mobs/Species/Human/parts.rsi
    state: full
  - type: Sprite
    netsync: false
    noRot: true
    drawdepth: Mobs
    layers:
    - map: [ "enum.HumanoidVisualLayers.Chest" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: torso_m
    - map: [ "enum.HumanoidVisualLayers.Head" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: head_m
    - map: [ "enum.HumanoidVisualLayers.Eyes" ]
      color: "#008800"
      sprite: Mobs/Customization/eyes.rsi
      state: eyes
    - map: [ "enum.HumanoidVisualLayers.RArm" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: r_arm
    - map: [ "enum.HumanoidVisualLayers.LArm" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: l_arm
    - map: [ "enum.HumanoidVisualLayers.RLeg" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: r_leg
    - map: [ "enum.HumanoidVisualLayers.LLeg" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: l_leg
    - shader: StencilClear
      sprite: Mobs/Species/Human/parts.rsi
      state: l_leg
    - shader: StencilMask
      map: [ "enum.HumanoidVisualLayers.StencilMask" ]
      sprite: Mobs/Customization/masking_helpers.rsi
      state: female_full
      visible: false
    - map: [ "enum.Slots.INNERCLOTHING" ]
      shader: StencilDraw
    - map: [ "enum.HumanoidVisualLayers.LHand" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: l_hand
    - map: [ "enum.HumanoidVisualLayers.RHand" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: r_hand
    - map: [ "enum.HumanoidVisualLayers.LFoot" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: l_foot
    - map: [ "enum.HumanoidVisualLayers.RFoot" ]
      color: "#e8b59b"
      sprite: Mobs/Species/Human/parts.rsi
      state: r_foot
    - map: [ "enum.HumanoidVisualLayers.Handcuffs" ]
      color: "#ffffff"
      sprite: Objects/Misc/handcuffs.rsi
      state: body-overlay-2
      visible: false
    - map: [ "enum.Slots.IDCARD" ]
    - map: [ "enum.Slots.GLOVES" ]
    - map: [ "enum.Slots.SHOES" ]
    - map: [ "enum.Slots.EARS" ]
    - map: [ "enum.Slots.OUTERCLOTHING" ]
    - map: [ "enum.Slots.EYES" ]
    - map: [ "enum.Slots.BELT" ]
    - map: [ "enum.Slots.NECK" ]
    - map: [ "enum.Slots.BACKPACK" ]
    - map: [ "enum.HumanoidVisualLayers.FacialHair" ]
      state: shaved
      sprite: Mobs/Customization/human_facial_hair.rsi
    - map: [ "enum.HumanoidVisualLayers.Hair" ]
      state: bald
      sprite: Mobs/Customization/human_hair.rsi
    - map: [ "enum.Slots.MASK" ]
    - map: [ "enum.Slots.HEAD" ]
    - map: [ "enum.Slots.POCKET1" ]
    - map: [ "enum.Slots.POCKET2" ]
  - type: Physics
    bodyType: KinematicController
    fixtures: # TODO: This needs a second fixture just for mob collisions.
    - shape:
        !type:PhysShapeCircle
        radius: 0.35
      mass: 70
      restitution: 0.0
      mask:
      - Impassable
      - MobImpassable
      - VaultImpassable
      - SmallImpassable
      layer:
      - Opaque
      - MobImpassable
  - type: AtmosExposed
  - type: Flammable
    fireSpread: true
    canResistFire: true
  - type: Temperature
    heatDamageThreshold: 360
    coldDamageThreshold: 260
    currentTemperature: 310.15
    specificHeat: 42
    tempDamageCoefficient: 0.1
  - type: HumanoidAppearance
  - type: Body
    template: HumanoidTemplate
    preset: HumanPreset
  - type: Damageable
    damageContainer: biologicalDamageContainer
  - type: Metabolism
    metabolismHeat: 5000
    radiatedHeat: 400
    implicitHeatRegulation: 5000
    sweatHeatRegulation: 5000
    shiveringHeatRegulation: 5000
    normalBodyTemperature: 310.15
    thermalRegulationTemperatureThreshold: 25
    needsGases:
      Oxygen: 0.00060763888
    producesGases:
      Oxygen: 0.00045572916
      CarbonDioxide: 0.00015190972
  - type: Internals
  - type: MobState
    thresholds:
      0: !type:NormalMobState {}
      100: !type:CriticalMobState {}
      200: !type:DeadMobState {}
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTypeTrigger
        type: Blunt
        damage: 400
      behaviors:
      - !type:GibBehavior { }
  - type: HeatResistance
  - type: Appearance
    visuals:
    - type: RotationVisualizer
    - type: BuckleVisualizer
    - type: FireVisualizer
      sprite: Mobs/Effects/onfire.rsi
      normalState: Generic_mob_burning
      alternateState: Standing
      fireStackAlternateState: 3
    - type: CreamPiedVisualizer
      state: creampie_human
  - type: CombatMode
  - type: Climbing
  - type: Cuffable
  - type: CharacterInfo
  - type: AnimationPlayer
  - type: Buckle
  - type: UnarmedCombat
    range: 0.8
    arcwidth: 30
    arc: fist
  - type: Pullable
  - type: DoAfter
  - type: CreamPied
  - type: Stripping
  - type: Strippable
  - type: UserInterface
    interfaces:
    - key: enum.StrippingUiKey.Key
      type: StrippableBoundUserInterface
  - type: Puller
  - type: Butcherable
    meat: FoodMeat
  - type: Recyclable
    safe: false
  - type: Speech
  - type: Emoting

- type: entity
  save: false
  name: Urist McHands
  id: HumanMob_Dummy
  abstract: true
  description: A dummy human meant to be used in character setup.
  components:
    - type: Hands
    - type: Inventory
    - type: Icon
      sprite: Mobs/Species/Human/parts.rsi
      state: full
    - type: Sprite
      netsync: false
      drawdepth: Mobs
      # TODO BODY Turn these into individual body parts?
      layers:
      - map: ["enum.HumanoidVisualLayers.Chest"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: torso_m
      - map: ["enum.HumanoidVisualLayers.Head"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: head_m
      - map: ["enum.HumanoidVisualLayers.Eyes"]
        color: "#008800"
        sprite: Mobs/Customization/eyes.rsi
        state: eyes
      - map: ["enum.HumanoidVisualLayers.RArm"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: r_arm
      - map: ["enum.HumanoidVisualLayers.LArm"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: l_arm
      - map: ["enum.HumanoidVisualLayers.RLeg"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: r_leg
      - map: ["enum.HumanoidVisualLayers.LLeg"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: l_leg
      - shader: StencilClear
      - shader: StencilMask
        map: ["enum.HumanoidVisualLayers.StencilMask"]
        sprite: Mobs/Customization/masking_helpers.rsi
        state: female_full
        visible: false
      - map: ["enum.Slots.INNERCLOTHING"]
        shader: StencilDraw
      - map: ["enum.HumanoidVisualLayers.LHand"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: l_hand
      - map: ["enum.HumanoidVisualLayers.RHand"]
        color: "#e8b59b"
        sprite: Mobs/Species/Human/parts.rsi
        state: r_hand
      - map: ["enum.HumanoidVisualLayers.Handcuffs"]
        color: "#ffffff"
        sprite: Objects/Misc/handcuffs.rsi
        state: body-overlay-2
        visible: false
      - map: ["enum.Slots.IDCARD"]
      - map: ["enum.Slots.GLOVES"]
      - map: ["enum.Slots.SHOES"]
      - map: ["enum.Slots.EARS"]
      - map: ["enum.Slots.OUTERCLOTHING"]
      - map: ["enum.Slots.EYES"]
      - map: ["enum.Slots.BELT"]
      - map: ["enum.Slots.NECK"]
      - map: ["enum.Slots.BACKPACK"]
      - map: ["enum.HumanoidVisualLayers.FacialHair"]
        state: shaved
        sprite: Mobs/Customization/human_facial_hair.rsi
      - map: ["enum.HumanoidVisualLayers.Hair"]
        state: bald
        sprite: Mobs/Customization/human_hair.rsi
      - map: ["enum.Slots.MASK"]
      - map: ["enum.Slots.HEAD"]
      - map: [ "enum.Slots.POCKET1" ]
      - map: [ "enum.Slots.POCKET2" ]
      - map: ["hand-left"]
      - map: ["hand-right"]
    - type: Physics
      bodyType: Dynamic
      fixtures:
      - shape:
          !type:PhysShapeAabb
            bounds: "-0.35,-0.35,0.35,0.35"
        mass: 70
        restitution: 0.0
        mask:
        - Impassable
        - MobImpassable
        - VaultImpassable
        - SmallImpassable
        layer:
        - MobImpassable
    - type: HumanoidAppearance
    - type: Body
      template: HumanoidTemplate
      preset: HumanPreset
    - type: Damageable
      damageContainer: biologicalDamageContainer
    - type: MobState
      thresholds:
        0: !type:NormalMobState {}
        100: !type:CriticalMobState {}
        200: !type:DeadMobState {}
    - type: Appearance
      visuals:
      - type: RotationVisualizer
