- type: entity
  parent: BaseMobHuman
  name: Urist McGoblin
  id: MobGoblinBase
  abstract: true
  components:
  - type: Sprite
    scale: 0.86, 0.75 # Increased from "0.8, 0.7" to "0.86, 0.75" to somewhat compensate for fixture change, odd numbers because I wanted to keep the proportions
  - type: HumanoidAppearance
    species: Goblin
    hideLayersOnEquip:
    - Hair
    - HeadTop
    - Snout # Nose, tusks
  - type: Fixtures
    fixtures: # TODO: This needs a second fixture just for mob collisions.
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.3 # Increased for 0.28 to 0.3 to avoid issues with firing weapons near fixtures.
        density: 135
        restitution: 0.0
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: Body
    prototype: Goblin
  - type: Damageable
    damageModifierSet: Goblin
  - type: MeleeWeapon
    soundHit:
      collection: Punch
    animation: WeaponArcClaw
    damage:
      types:
        Slash: 3
#        Poison: 1 # Too Stinky
  - type: Speech
    speechSounds: Alto
    speechVerb: Goblin
    allowedEmotes:
    - GoblinMutter
    - GoblinThroatSinging
    - Hiss
    - Belch
  - type: DamageOnHighSpeedImpact
    damage:
      types:
        Blunt: 1
  - type: Stamina
  - type: PseudoItem
    shape: # Parallelogram, 16 squares (vs. 26 for felinid bean) - TODO: fix odd rotation, swapped X/Y values.
      - 0,0,0,3
      - 1,1,1,4
      - 2,2,2,5
      - 3,3,3,6
    storedRotation: -67.5 # Bug: must be half the angle.
  - type: Vocal
    wilhelm: "/Audio/_NF/Voice/Goblin/goblin_cackle_5.ogg"
    sounds:
      Male: MaleGoblin
      Female: FemaleGoblin
      Unsexed: MaleGoblin
  - type: Goblin
  - type: NpcFactionMember
    factions:
    - NanoTrasen
    - Goblin
  - type: DamageVisuals
    thresholds: [ 10, 20, 30, 50, 70, 100 ]
    targetLayers:
    - "enum.HumanoidVisualLayers.Chest"
    - "enum.HumanoidVisualLayers.Head"
    - "enum.HumanoidVisualLayers.LArm"
    - "enum.HumanoidVisualLayers.LLeg"
    - "enum.HumanoidVisualLayers.RArm"
    - "enum.HumanoidVisualLayers.RLeg"
    damageOverlayGroups:
      Brute:
        sprite: Mobs/Effects/brute_damage.rsi
        color: "#5c7500"
      Burn:
        sprite: Mobs/Effects/burn_damage.rsi
  - type: Bloodstream
    bloodReagent: GoblinBlood
  - type: Butcherable
    spawned:
    - id: FoodMeatGoblin
      amount: 3
  - type: GoblinAccent
  - type: TypingIndicator
    proto: goblin
  - type: SlowOnDamage
    speedModifierThresholds:
      60: 0.85  # 0.7 is base speed.
      80: 0.75  # 0.5 is base speed.
  - type: Reactive
    groups:
      Flammable: [ Touch ]
      Extinguish: [ Touch ]
    reactions:
    - reagents: [ Water, SpaceCleaner, SoapReagent ]
      methods: [ Touch ]
      effects:
      - !type:WashCreamPieReaction
    - reagents: [ Water, SpaceCleaner, SoapReagent ]
      methods: [ Touch ]
      effects:
      - !type:Emote
        emote: Scream
        probability: 0.2
  - type: Rummager # DeltaV Code
  - type: AlwaysTriggerMousetrap # DeltaV Code
  - type: Inventory
    speciesId: goblin
    femaleDisplacements:
      jumpsuit:
        sizeMaps:
          32:
            sprite: Mobs/Species/Human/displacement.rsi
            state: jumpsuit-female

- type: entity
  save: false
  name: Urist McGoblin
  parent: MobHumanDummy
  id: MobGoblinDummy
  categories: [ HideSpawnMenu ]
  description: A dummy goblin meant to be used in character setup.
  components:
  - type: HumanoidAppearance
    species: Goblin
