- type: entity
  abstract: true
  parent: [BaseMob, MobCombat]
  id: MobElementalBase
  components:
  - type: Reactive
    groups:
      Acidic: [Touch]
  - type: Damageable
  - type: Injurable
    damageContainer: Inorganic
  - type: MovementSpeedModifier
    baseWalkSpeed : 2
    baseSprintSpeed : 3
  - type: MovedByPressure
  - type: StatusEffects
    allowed:
    - Electrocution
  - type: Pullable
  - type: Tag
    tags:
    - DoorBumpOpener
  - type: MobState
    allowedStates:
      - Alive
      - Dead
  - type: MobThresholds
    thresholds:
      0: Alive
      120: Dead
  - type: Stamina
    baseCritThreshold: 120
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 120
      behaviors:
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
  - type: ZombieImmune
  - type: ProtectedFromStepTriggers
  - type: StunVisuals

- type: entity
  abstract: true
  id: MobOreCrab
  name: ore crab
  parent: [ MobElementalBase, MobCombat ]
  components:
  - type: Sprite
    sprite: Mobs/Elemental/orecrab.rsi
    state: uranium_crab
  - type: HTN
    rootTask:
      task: SimpleHostileCompound
  - type: MeleeWeapon
    hidden: true
    soundHit:
      path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
    damage:
      types:
        Blunt: 6
  - type: MovementSpeedModifier
    baseWalkSpeed : 2
    baseSprintSpeed : 2.5
  - type: NpcFactionMember
    factions:
      - SimpleHostile
  - type: Injurable
    damageContainer: StructuralInorganic

- type: entity
  parent: MobOreCrab
  id: MobQuartzCrab
  description: An ore crab made from Quartz.
  suffix: Quartz
  components:
  - type: Sprite
    state: quartz_crab
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 40
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          SpaceQuartz1:
            min: 2
            max: 4
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  parent: MobOreCrab
  id: MobIronCrab
  description: An ore crab made from iron.
  suffix: Iron
  components:
  - type: Sprite
    state: iron_crab
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 5
  - type: MovementSpeedModifier
    baseWalkSpeed : 1.5
    baseSprintSpeed : 2
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 80
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          SteelOre1:
            min: 2
            max: 4
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  parent: MobOreCrab
  id: MobCoalCrab
  description: An ore crab made from coal.
  suffix: Coal
  components:
  - type: Sprite
    state: coal_crab
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 2.5
  - type: MovementSpeedModifier
    baseWalkSpeed : 1.0
    baseSprintSpeed : 1.5
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 100
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          Coal1:
            min: 2
            max: 4
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  parent: MobOreCrab
  id: MobUraniumCrab
  description: An ore crab made from uranium.
  suffix: Uranium
  components:
  - type: FactionException
  - type: NPCRetaliation
    attackMemoryLength: 10
  - type: NpcFactionMember
    factions:
      - SimpleNeutral
  - type: RadiationSource
    intensity: 2
    slope: 0.3
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 80
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          UraniumOre1:
            min: 1
            max: 3
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
  - type: PointLight
    radius: 2
    energy: 3
    color: "#06DF24"

- type: entity
  parent: MobOreCrab
  id: MobBananiumCrab
  description: An ore crab made from bananium.
  suffix: Bananium
  components:
  - type: Sprite
    state: bananium_crab
  - type: FactionException
  - type: NPCRetaliation
    attackMemoryLength: 10
  - type: NpcFactionMember
    factions:
      - SimpleNeutral
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 30
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          BananiumOre1:
            min: 1
            max: 3
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
  - type: Slippery
    slipData:
      launchForwardsMultiplier: 2
  - type: StepTrigger
    intersectRatio: 0.2
  - type: Fixtures
    fixtures:
      slips:
        shape:
          !type:PhysShapeCircle
          radius: 0.35
        hard: false
        layer:
          - SlipLayer
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.35
        density: 20
        mask:
        - MobMask
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 3

- type: entity
  parent: MobOreCrab
  id: MobSilverCrab
  description: An ore crab made from silver.
  suffix: Silver
  components:
  - type: Sprite
    state: silver_crab
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 5
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 70
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          SilverOre1:
            min: 1
            max: 3
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  parent: MobOreCrab
  id: MobGoldCrab
  description: An ore crab made from gold.
  suffix: Gold
  components:
  - type: Sprite
    state: gold_crab
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 5
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 70
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: GlassBreak
      - !type:SpawnEntitiesBehavior
        spawn:
          GoldOre1:
            min: 1
            max: 3
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  name: reagent slime
  id: ReagentSlime
  suffix: Water
  parent: [ MobAdultSlimes, MobCombat ]
  description: It consists of a liquid, and it wants to dissolve you in itself.
  components:
  - type: GhostRole
    prob: 0
    description: ghost-role-information-angry-slimes-description
    rules: ghost-role-information-angry-slimes-rules
    mindRoles:
    - MindRoleGhostRoleTeamAntagonist
    raffle:
      settings: short
  - type: NpcFactionMember
    factions:
    - SimpleHostile
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#75b1f0"
  - type: PointLight
    radius: 2.0
    energy: 3.5
    color: "#75b1f0" # Edited through the LiquidAnomalySystem
  - type: MobState
    allowedStates:
    - Alive
    - Dead
  - type: MobThresholds
    thresholds:
      0: Alive
      150: Dead
  - type: SlowOnDamage
    speedModifierThresholds:
      50: 0.4
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Water
        Quantity: 100
  - type: StatusEffects
    allowed:
    - Electrocution
  - type: MeleeWeapon
    soundHit:
      collection: AlienClaw
    animation: WeaponArcBite
    damage:
      types:
        Slash: 8
  - type: MeleeChemicalInjector
    solution: bloodstream
    transferAmount: 5
  - type: DamageStateVisuals
    states:
      Alive:
        Base: alive
      Dead:
        Base: dead
  - type: Tag
    tags:
      - FootstepSound
      - CannotSuicide
      - DoorBumpOpener
      - StunImmune
  - type: NoSlip
  - type: ZombieImmune
  - type: ExaminableSolution
    solution: bloodstream
  - type: InjectableSolution
    solution: bloodstream
  - type: DrainableSolution
    solution: bloodstream

- type: entity
  parent: MarkerBase
  id: ReagentSlimeSpawner
  name: Reagent Slime Spawner
  components:
  - type: Sprite
    layers:
      - state: red
      - sprite: Mobs/Aliens/elemental.rsi
        state: alive
  - type: EntityTableSpawner
    table: !type:GroupSelector
      children:
      - id: ReagentSlime
      - id: ReagentSlimeBeer
      - id: ReagentSlimePax
      - id: ReagentSlimeNocturine
      - id: ReagentSlimeTHC
      - id: ReagentSlimeBicaridine
      - id: ReagentSlimeToxin
      - id: ReagentSlimeNapalm
      - id: ReagentSlimeOmnizine
      - id: ReagentSlimeMuteToxin
      - id: ReagentSlimeNorepinephricAcid
      - id: ReagentSlimeEphedrine
      - id: ReagentSlimeRobustHarvest

- type: entity
  id: ReagentSlimeBeer
  parent: ReagentSlime
  suffix: Beer
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Beer
        Quantity: 100
  - type: PointLight
    color: "#cfa85f"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#cfa85f"

- type: entity
  id: ReagentSlimePax
  parent: ReagentSlime
  suffix: Pax
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Pax
        Quantity: 100
  - type: PointLight
    color: "#AAAAAA"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#AAAAAA"
  - type: MeleeChemicalInjector
    solution: bloodstream
    transferAmount: 1

- type: entity
  id: ReagentSlimeNocturine
  parent: ReagentSlime
  suffix: Nocturine
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Nocturine
        Quantity: 100
  - type: PointLight
    color: "#128e80"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#128e80"
  - type: MeleeChemicalInjector
    solution: bloodstream
    transferAmount: 3

- type: entity
  id: ReagentSlimeTHC
  parent: ReagentSlime
  suffix: THC
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: THC
        Quantity: 100
  - type: PointLight
    color: "#808080"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#808080"

- type: entity
  id: ReagentSlimeBicaridine
  parent: ReagentSlime
  suffix: Bicaridine
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Bicaridine
        Quantity: 100
  - type: PointLight
    color: "#ffaa00"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#ffaa00"

- type: entity
  id: ReagentSlimeToxin
  parent: ReagentSlime
  suffix: Toxin
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Toxin
        Quantity: 100
  - type: PointLight
    color: "#cf3600"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#cf3600"

- type: entity
  id: ReagentSlimeNapalm
  parent: ReagentSlime
  suffix: Napalm
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Napalm
        Quantity: 100
  - type: PointLight
    color: "#FA00AF"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#FA00AF"

- type: entity
  id: ReagentSlimeOmnizine
  parent: ReagentSlime
  suffix: Omnizine
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Omnizine
        Quantity: 100
  - type: PointLight
    color: "#fcf7f9"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#fcf7f9"

- type: entity
  id: ReagentSlimeMuteToxin
  parent: ReagentSlime
  suffix: Mute Toxin
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: MuteToxin
        Quantity: 100
  - type: PointLight
    color: "#0f0f0f"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#0f0f0f"

- type: entity
  id: ReagentSlimeNorepinephricAcid
  parent: ReagentSlime
  suffix: Norepinephric Acid
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: NorepinephricAcid
        Quantity: 100
  - type: PointLight
    color: "#96a8b5"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#96a8b5"

- type: entity
  id: ReagentSlimeEphedrine
  parent: ReagentSlime
  suffix: Ephedrine
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: Ephedrine
        Quantity: 100
  - type: PointLight
    color: "#D2FFFA"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#D2FFFA"

- type: entity
  id: ReagentSlimeRobustHarvest
  parent: ReagentSlime
  suffix: Robust Harvest
  components:
  - type: Bloodstream
    bloodReferenceSolution:
      reagents:
      - ReagentId: RobustHarvest
        Quantity: 100
  - type: PointLight
    color: "#3e901c"
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/elemental.rsi
    layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: alive
        color: "#3e901c"
