- type: entity
  id: RMCSimpleMob
  name: abstract simple mob
  abstract: true
  components:
  - type: ShortExamine
  - type: RMCRevivable
  - type: RMCMedicalExamine
    simple: true
    deadText: rmc-medical-examine-dead-simple-mob
  - type: CrashLandable
  - type: StatusEffects
    allowed:
    - Stun
    - KnockedDown
    - SlowedDown
    - Stutter
    - Electrocution
    - ForcedSleep
    - TemporaryBlindness
    - Drunk
    - SlurredSpeech
    - RatvarianLanguage
    - PressureImmunity
    - Muted
    - Pacified
    - StaminaModifier
    - Flashed
    - Dazed
    - Blinded
    - Deaf
    - Unconscious

- type: entity
  id: RMCSmallHost
  name: abstract small host
  abstract: true
  components:
  - type: Infectable
  - type: Tackleable
  - type: Devourable
  - type: XenoNestable
  - type: RMCNightVisionVisible
  - type: InfectStopOnDeath
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    damageCap: 0
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: [RMCSimpleMob, MobMonkey, RMCSmallHost]
  id: CMMobMonkey
  name: monkey
  suffix: CM
  components:
  - type: GhostRole
    prob: 0

- type: entity
  parent: [RMCSimpleMob, MobKobold, RMCSmallHost]
  id: CMMobKobold
  name: kobold
  suffix: CM
  components:
  - type: GhostRole
    prob: 0

- type: entity
  parent: [RMCSimpleMob, MobMouse]
  id: CMMobMouse
  suffix: CM
  components:
  - type: GhostRole
    prob: 0
  - type: CrashLandable
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: [RMCSimpleMob, MobMouse1]
  id: CMMobMouse1
  suffix: CM
  components:
  - type: GhostRole
    prob: 0
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: [RMCSimpleMob, MobMouse2]
  id: CMMobMouse2
  suffix: CM
  components:
  - type: GhostRole
    prob: 0
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: CMMobMouse
  id: RMCMobMouseDoc
  name: Doc
  description: "Senior mouse researcher of the Almayer. Likes: cheese, experiments, explosions."

- type: entity
  name: rat
  parent: [RMCSimpleMob, SimpleMobBase]
  id: RMCMobRat
  description: It's a small laboratory rat.
  suffix: RMC
  components:
  - type: Body
    prototype: Mouse
  - type: Speech
    speechSounds: Squeak
    speechVerb: SmallMob
    allowedEmotes: ['Squeak']
  - type: Sprite
    drawdepth: SmallMobs
    sprite: _RMC14/Mobs/Animals/rat.rsi
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: rat-0
  - type: Item
    size: Tiny
    heldPrefix: 0
  - type: Clothing
    quickEquip: false
    sprite: Mobs/Animals/mouse.rsi
    equippedPrefix: 0
    slots:
    - HEAD
  - type: NpcFactionMember
    factions:
      - Mouse
  - type: HTN
    rootTask:
      task: MouseCompound
  - type: Physics
  - type: FaxableObject
    insertingState: inserting_mouse
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.2
        density: 100
        mask:
        - SmallMobMask
        layer:
        - SmallMobLayer
  - type: MobState
  - type: Deathgasp
  - type: MobStateActions
    actions:
      Critical:
      - ActionCritSuccumb
      - ActionCritFakeDeath
      - ActionCritLastWords
  - type: MobThresholds
    thresholds:
      0: Alive
      10: Critical
      20: Dead
  - type: MovementSpeedModifier
    baseWalkSpeed : 2.5
    baseSprintSpeed : 5
  - type: DamageStateVisuals
    states:
      Alive:
        Base: rat-0
      Critical:
        Base: dead-0
      Dead:
        Base: splat-0
  - type: Food
  - type: FlavorProfile
    flavors:
    - meaty
  - type: Thirst
    startingThirst: 25  # spawn with Okay thirst state
    thresholds:
      OverHydrated: 35
      Okay: 25
      Thirsty: 15
      Parched: 10
      Dead: 0
    baseDecayRate: 0.04
  - type: Hunger
    thresholds:
      Overfed: 35
      Okay: 25
      Peckish: 15
      Starving: 10
      Dead: 0
    baseDecayRate: 0.5 # I'm very hungry! Give me. The cheese.
  - type: Extractable
    grindableSolutionName: food
  - type: SolutionContainerManager
    solutions:
      food:
        reagents:
        - ReagentId: UncookedAnimalProteins
          Quantity: 3
  - type: Butcherable
    spawned:
    - id: FoodMeatRat
      amount: 1
  - type: ReplacementAccent
    accent: mouse
  - type: Tag
    tags:
    - Trash
    - VimPilot
    - ChefPilot
    - Mouse
    - Meat
  - type: Barotrauma
    damage:
      types:
        Blunt: 0.1
  - type: Vocal
    sounds:
      Male: Mouse
      Female: Mouse
      Unsexed: Mouse
    wilhelmProbability: 0.001
  # TODO: Remove CombatMode when Prototype Composition is added
  - type: CombatMode
  - type: MeleeWeapon
    soundHit:
      path: /Audio/Effects/bite.ogg
    angle: 0
    animation: WeaponArcBite
    damage:
      types:
        Piercing: 0
  - type: Bloodstream
    bloodMaxVolume: 50
  - type: CanEscapeInventory
  - type: MobPrice
    price: 50
  - type: BadFood
  - type: NonSpreaderZombie
  - type: FireVisuals
    sprite: Mobs/Effects/onfire.rsi
    normalState: Mouse_burning
  - type: FoodSequenceElement
    entries:
      Taco: RatTaco
      Burger: RatBurger
      Skewer: RatSkewer
  - type: CrashLandable
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: RMCMobRat
  id: RMCMobRatBrown
  suffix: RMC
  name: rat
  description: It's a big, disease-ridden rodent.
  components:
  - type: Sprite
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: rat-1
  - type: DamageStateVisuals
    states:
      Alive:
        Base: rat-1
      Critical:
        Base: dead-1
      Dead:
        Base: splat-1

- type: entity
  parent: RMCMobRatBrown
  id: RMCMobRatGray
  components:
  - type: Sprite
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: rat-2
  - type: DamageStateVisuals
    states:
      Alive:
        Base: rat-2
      Critical:
        Base: dead-2
      Dead:
        Base: splat-2

- type: entity
  parent: RMCMobRatBrown
  id: RMCMobRatBlack
  components:
  - type: Sprite
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: rat-3
  - type: DamageStateVisuals
    states:
      Alive:
        Base: rat-3
      Critical:
        Base: dead-3
      Dead:
        Base: splat-3

- type: entity
  parent: [RMCSimpleMob, MobCorgiPuppy]
  id: CMMobWiggles
  name: Mister Wiggles
  description: It's a corgi puppy. MISTER WIGGLES!! HE IS THE GREATEST!
  components:
  - type: WarpPoint
    follow: true
    location: Mister Wiggles
  - type: CrashLandable
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: [RMCSimpleMob, MobCatCalico]
  id: CMMobJones
  name: Jones
  description: A tough, old stray whose origin no one seems to know.
  components:
  - type: WarpPoint
    follow: true
    location: Jones
  - type: CrashLandable
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: [RMCSimpleMob, MobCatCalico]
  id: RMCMobOrion
  name: Orion
  description: A domesticated, feline pet. The collar says 'Orion'.
  components:
  - type: WarpPoint
    follow: true
    location: Orion
  - type: CrashLandable
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

- type: entity
  parent: [RMCSimpleMob, MobCat]
  id: RMCMobGarry
  name: Garry
  description: Her fur has the look and feel of velvet, and her tail quivers occasionally.
  components:
  - type: WarpPoint
    follow: true
    location: Garry
  - type: CrashLandable
  - type: PressureImmunity
  - type: Respirator
    minSaturation: 5.0
  - type: Temperature
    heatDamageThreshold: 423
    coldDamageThreshold: 0

# Spawners

- type: entity
  parent: MarkerBase
  id: CMSpawnMobMonkey
  name: monkey spawner
  suffix: RMC
  components:
  - type: Sprite
    layers:
    - state: monkey_spawn
      sprite: _RMC14/Markers/landmarks.rsi
  - type: ProportionalSpawner
    id: CMSpawnMobMonkey
    prototypes:
    - CMMobMonkey

- type: entity
  parent: MarkerBase
  id: CMSpawnMobKobold
  name: kobold spawner
  suffix: RMC
  components:
  - type: Sprite
    layers:
    - state: green
    - state: kobold
      sprite: Mobs/Animals/kobold.rsi
  - type: ProportionalSpawner
    id: CMSpawnMobMonkey
    prototypes:
    - CMMobKobold

- type: entity
  parent: SpawnMobMouse
  id: CMSpawnMobMouse
  suffix: CM
  components:
  - type: ConditionalSpawner
    prototypes:
    - CMMobMouse
    - CMMobMouse1
    - CMMobMouse2

- type: entity
  parent: MarkerBase
  id: RMCSpawnRatBlack
  name: rat spawner
  suffix: black
  components:
  - type: Sprite
    layers:
    - state: green
    - state: icon-3
      sprite: _RMC14/Mobs/Animals/rat.rsi
  - type: ConditionalSpawner
    prototypes:
    - RMCMobRatBlack

- type: entity
  parent: RMCSpawnRatBlack
  id: RMCSpawnRatGray
  suffix: gray
  components:
  - type: Sprite
    layers:
    - state: green
    - state: icon-2
      sprite: _RMC14/Mobs/Animals/rat.rsi
  - type: ConditionalSpawner
    prototypes:
    - RMCMobRatGray

- type: entity
  parent: RMCSpawnRatBlack
  id: RMCSpawnRatBrown
  suffix: brown
  components:
  - type: Sprite
    layers:
    - state: green
    - state: icon-1
      sprite: _RMC14/Mobs/Animals/rat.rsi
  - type: ConditionalSpawner
    prototypes:
    - RMCMobRatBrown

- type: entity
  parent: RMCSpawnRatBlack
  id: RMCSpawnRatWhite
  suffix: white
  components:
  - type: Sprite
    layers:
    - state: green
    - state: icon-0
      sprite: _RMC14/Mobs/Animals/rat.rsi
  - type: ConditionalSpawner
    prototypes:
    - RMCMobRat

- type: entity
  parent: MarkerBase
  id: CMSpawnMobWiggles
  name: Mr. Wiggles Spawner
  suffix: CM
  components:
  - type: Sprite
    layers:
    - state: green
    - state: puppy
      sprite: Mobs/Pets/corgi.rsi
  - type: ConditionalSpawner
    prototypes:
    - CMMobWiggles

- type: entity
  parent: MarkerBase
  id: CMSpawnMobJones
  name: Jones Spawner
  suffix: CM
  components:
  - type: Sprite
    layers:
    - state: green
    - state: cat2
      sprite: Mobs/Pets/cat.rsi
  - type: ConditionalSpawner
    prototypes:
    - CMMobJones

- type: entity
  parent: MarkerBase
  id: CMSpawnMobOrion
  name: Orion Spawner
  suffix: RMC
  components:
  - type: Sprite
    layers:
    - state: green
    - state: cat2
      sprite: Mobs/Pets/cat.rsi
  - type: ConditionalSpawner
    prototypes:
    - RMCMobOrion

- type: entity
  parent: MarkerBase
  id: RMCSpawnMobGarry
  name: Garry Spawner
  suffix: RMC
  components:
  - type: Sprite
    layers:
    - state: green
    - state: cat
      sprite: Mobs/Pets/cat.rsi
  - type: ConditionalSpawner
    prototypes:
    - RMCMobGarry

- type: entity
  parent: SpawnMobMouse
  id: RMCSpawnMobDoc
  name: doc spawner
  suffix: RMC
  components:
  - type: ConditionalSpawner
    prototypes:
    - RMCMobMouseDoc
