# SPDX-FileCopyrightText: 2023 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 I.K <45953835+notquitehadouken@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nairod <110078045+Nairodian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nim <128169402+Nimfar11@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 notquitehadouken <1isthisameme>
# SPDX-FileCopyrightText: 2024 AJCM <AJCM@tutanota.com>
# SPDX-FileCopyrightText: 2024 Alex Evgrashin <aevgrashin@yandex.ru>
# SPDX-FileCopyrightText: 2024 Alex Pavlenko <diraven@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alice "Arimah" Heurlin <30327355+arimah@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ArkiveDev <95712736+ArkiveDev@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 CaasGit <87243814+CaasGit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Doomsdrayk <robotdoughnut@comcast.net>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ghagliiarghii <68826635+Ghagliiarghii@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 HS <81934438+HolySSSS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Just-a-Unity-Dev <67359748+Just-a-Unity-Dev@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Morb <14136326+Morb0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Partmedia <kevinz5000@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Redfire1331 <125223432+Redfire1331@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Truoizys <153248924+Truoizys@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 neutrino <67447925+neutrino-laser@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 no <165581243+pissdemon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 osjarw <62134478+osjarw@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 redfire1331 <Redfire1331@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 yglop <95057024+yglop@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 youtissoum <51883137+youtissoum@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Арт <123451459+JustArt1m@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aineias1 <dmitri.s.kiselev@gmail.com>
# SPDX-FileCopyrightText: 2025 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Fishbait <Fishbait@git.ml>
# SPDX-FileCopyrightText: 2025 Froffy025 <scotttaco025@gmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 John Willis <143434770+CerberusWolfie@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2025 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rinary <72972221+Rinary1@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 fishbait <gnesse@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ss14-Starlight <ss14-Starlight@outlook.com>
# SPDX-FileCopyrightText: 2025 thebiggestbruh <marcus2008stoke@gmail.com>
# SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 whateverusername0 <whateveremail>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  name: basic slime
  id: BaseMobAdultSlime # Goob
  parent: [ SimpleMobBase, MobCombat ]
  abstract: true
  description: It looks so much like jelly. I wonder what it tastes like?
  components:
  - type: VentCrawler # goobstation - Ventcrawl
  - type: Sprite
    drawdepth: Mobs
    sprite: Mobs/Aliens/slimes.rsi
    layers:
    - map: [ "enum.DamageStateVisualLayers.Base" ]
      state: blue_adult_slime
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.30
        density: 80
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: MobThresholds
    thresholds:
      0: Alive
      120: Dead
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 4
  - type: FootstepModifier
    footstepSoundCollection:
      collection: FootstepSlime
  - type: Tag
    tags:
    - FootstepSound
    - DoorBumpOpener
  - type: Butcherable
    butcheringType: Knife
    spawned:
    - id: FoodMeatSlime
      amount: 2
  - type: Respirator
    damage:
      types:
        Asphyxiation: 0.2
    damageRecovery:
      types:
        Asphyxiation: -1.0
    maxSaturation: 15
  - type: Damageable
    damageContainer: Biological
    damageModifierSet: Slime
  - type: Bloodstream
    bloodReagent: Slime
    bloodlossDamage:
      types:
        Bloodloss:
          0.5
    bloodlossHealDamage:
      types:
        Bloodloss:
          -0.25
  - type: Barotrauma
    damage:
      types:
        Blunt: 0.45
  - type: Reactive
    groups:
      Flammable: [ Touch ]
      Extinguish: [ Touch ]
    reactions:
    - reagents: [ Water, SpaceCleaner ]
      methods: [ Touch ]
      effects:
      - !type:WashCreamPieReaction
    - reagents: [ Water ]
      methods: [ Touch ]
      effects:
      - !type:HealthChange
        scaleByQuantity: true
        damage:
          types:
            Caustic: 5 # Goobstation
      - !type:PopupMessage
        type: Local
        messages: [ "slime-hurt-by-water-popup" ]
        probability: 0.25
  - type: Body
    prototype: Slimes
    requiredLegs: 1
  - type: MeleeWeapon
    altDisarm: false
    soundHit:
        path: /Audio/Weapons/punch3.ogg
    angle: 0
    animation: WeaponArcPunch
    damage:
      types:
        Blunt: 6
        Structural: 4
        Caustic: 4
  - type: InteractionPopup
    successChance: 0.5
    interactSuccessString: petting-success-slimes
    interactFailureString: petting-failure-generic
  - type: Speech
    speechVerb: Slime
    speechSounds: Slime
  - type: TypingIndicator
    proto: slime

- type: entity
  name: basic slime
  id: MobAdultSlimes
  parent: BaseMobAdultSlime # Goob
  abstract: true
  description: It looks so much like jelly. I wonder what it tastes like?
  components:
  - type: LanguageKnowledge # Einstein Engines - Language
    speaks:
    - Bubblish
    understands:
    - Bubblish
  - type: GhostTakeoverAvailable
  - type: GhostRole
    makeSentient: true
    name: ghost-role-information-slimes-name
    description: ghost-role-information-slimes-description
    rules: ghost-role-information-nonantagonist-rules
    raffle:
      settings: short
  - type: Speech
    speechVerb: Slime
    speechSounds: Slime
    allowedEmotes: ['Squish', 'Bubble', 'Pop'] # Imp: add Bubble, Pop
  - type: TypingIndicator
    proto: slime
  - type: Vocal # Imp
    sounds: # Imp
      Male: AnimalSlime # Imp
      Female: AnimalSlime # Imp
      Unsexed: AnimalSlime # Imp
  - type: NpcFactionMember
    factions:
    - SimpleNeutral
  - type: HTN
    rootTask:
      task: SimpleHostileCompound

- type: entity
  name: blue slime
  id: MobAdultSlimesBlue
  parent: MobAdultSlimes
  components:
  - type: DamageStateVisuals
    states:
      Alive:
        Base: blue_adult_slime
      Dead:
        Base: blue_adult_slime_dead

- type: entity
  name: blue slime
  parent: MobAdultSlimesBlue
  id: MobAdultSlimesBlueAngry
  suffix: Angry
  components:
    - type: NpcFactionMember
      factions:
        - SimpleHostile
    - type: GhostRole
      description: ghost-role-information-angry-slimes-description
      rules: ghost-role-information-angry-slimes-rules
      mindRoles:
      - MindRoleGhostRoleTeamAntagonist
      raffle:
        settings: short

- type: entity
  name: green slime
  parent: MobAdultSlimes
  id: MobAdultSlimesGreen
  components:
    - type: Sprite
      layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: green_adult_slime
    - type: DamageStateVisuals
      states:
        Alive:
          Base: green_adult_slime
        Dead:
          Base: green_adult_slime_dead
    - type: MeleeWeapon
      damage:
        types:
          Blunt: 6
          Structural: 4
          Caustic: 1
          Poison: 4

- type: entity
  name: green slime
  parent: MobAdultSlimesGreen
  id: MobAdultSlimesGreenAngry
  suffix: Angry
  components:
    - type: NpcFactionMember
      factions:
        - SimpleHostile
    - type: GhostRole
      description: ghost-role-information-angry-slimes-description
      rules: ghost-role-information-angry-slimes-rules
      mindRoles:
      - MindRoleGhostRoleTeamAntagonist
      raffle:
        settings: short

- type: entity
  name: yellow slime
  parent: MobAdultSlimes
  id: MobAdultSlimesYellow
  components:
    - type: Sprite
      layers:
      - map: [ "enum.DamageStateVisualLayers.Base" ]
        state: yellow_adult_slime
    - type: DamageStateVisuals
      states:
        Alive:
          Base: yellow_adult_slime
        Dead:
          Base: yellow_adult_slime_dead
    - type: MeleeWeapon
      damage:
        types:
          Blunt: 6
          Structural: 4
          Caustic: 4

- type: entity
  name: yellow slime
  parent: MobAdultSlimesYellow
  id: MobAdultSlimesYellowAngry
  suffix: Angry
  components:
    - type: NpcFactionMember
      factions:
        - SimpleHostile
    - type: GhostRole
      description: ghost-role-information-angry-slimes-description
      rules: ghost-role-information-angry-slimes-rules
      mindRoles:
      - MindRoleGhostRoleTeamAntagonist
      raffle:
        settings: short
