# SPDX-FileCopyrightText: 2022 Anthemic <93178783+jproads@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jezithyr <Jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2022 Justin Trotter <trotter.justin@gmail.com>
# SPDX-FileCopyrightText: 2022 Morb <14136326+Morb0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2023 Arendian <137322659+Arendian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 DrSmugleaf <drsmugleaf@gmail.com>
# SPDX-FileCopyrightText: 2023 Filler <130583174+FillerVK@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Jezithyr <jezithyr@gmail.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 Nairod <110078045+Nairodian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 OttoMaticode <124523848+OttoMaticode@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Thom <119594676+ItsMeThom@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 lzk228 <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 12rabbits <53499656+12rabbits@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AJCM <AJCM@tutanota.com>
# SPDX-FileCopyrightText: 2024 Adeinitas <147965189+adeinitas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.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 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ArkiveDev <95712736+ArkiveDev@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@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 Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Dimastra <65184747+Dimastra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Dimastra <dimastra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Doomsdrayk <robotdoughnut@comcast.net>
# SPDX-FileCopyrightText: 2024 DrEnzyme <DrEnzyme@gmail.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Elysium206 <151651971+Elysium206@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Floofi <126319569+Shadowtheprotogen546@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ghagliiarghii <68826635+Ghagliiarghii@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Golinth <amh2023@gmail.com>
# SPDX-FileCopyrightText: 2024 Gtheglorious <125694692+Gtheglorious@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 HS <81934438+HolySSSS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Hrosts <35345601+Hrosts@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ian <ignaz.k@live.de>
# SPDX-FileCopyrightText: 2024 JIPDawg <51352440+JIPDawg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <JIPDawg93@gmail.com>
# SPDX-FileCopyrightText: 2024 Joel Zimmerman <JoelZimmerman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kevin Zheng <kevinz5000@gmail.com>
# SPDX-FileCopyrightText: 2024 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kukutis96513 <146854220+Kukutis96513@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 LittleNyanCat <littlenyancat204@gmail.com>
# SPDX-FileCopyrightText: 2024 Lye <128915833+Lyroth001@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 MetalSage <74924875+MetalSage@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MetalSage <metalsage.official@gmail.com>
# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MureixloI <132683811+MureixloI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 NakataRin <45946146+NakataRin@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 OrangeMoronage9622 <whyteterry0092@gmail.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 Pieter-Jan Briers <pieterjan.briers@gmail.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 PopGamer46 <yt1popgamer@gmail.com>
# SPDX-FileCopyrightText: 2024 PrPleGoo <PrPleGoo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PursuitInAshes <pursuitinashes@gmail.com>
# SPDX-FileCopyrightText: 2024 QueerNB <176353696+QueerNB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Rane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Redfire1331 <125223432+Redfire1331@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Repo <47093363+Titian3@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Saphire Lattice <lattice@saphi.re>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@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 Spessmann <156740760+Spessmann@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Stalen <33173619+stalengd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TakoDragon <69509841+BackeTako@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Timemaster99 <57200767+Timemaster99@users.noreply.github.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 Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
# SPDX-FileCopyrightText: 2024 VMSolidus <evilexecutive@gmail.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Verm <32827189+Vermidia@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Vigers Ray <60344369+VigersRay@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 WarMechanic <69510347+WarMechanic@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deathride58 <deathride58@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 dffdff2423 <dffdff2423@gmail.com>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 foboscheshir <156405958+foboscheshir@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 marbow <152051971+marboww@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 mhamster <81412348+mhamsterr@users.noreply.github.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 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 shamp <140359015+shampunj@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stellar-novas <stellar_novas@riseup.net>
# SPDX-FileCopyrightText: 2024 strO0pwafel <153459934+strO0pwafel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stroopwafel <j.o.luijkx@student.tudelft.nl>
# SPDX-FileCopyrightText: 2024 superjj18 <gagnonjake@gmail.com>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 to4no_fix <156101927+chavonadelal@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 voidnull000 <18663194+voidnull000@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 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Roudenn <romabond091@gmail.com>
# SPDX-FileCopyrightText: 2025 Timfa <timfalken@hotmail.com>
# SPDX-FileCopyrightText: 2025 YourUsername <you@example.com>
# SPDX-FileCopyrightText: 2025 chromiumboy <50505512+chromiumboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 godisdeadLOL <169250097+godisdeadLOL@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  save: false
  abstract: true
  parent: BaseMob
  id: MobRobotic
  components:
  - type: LagCompensation
  - type: Reactive
    groups:
      Acidic: [Touch]
  - type: Clickable
  - type: Damageable
    damageContainer: Inorganic
  - type: InteractionOutline
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.35
        density: 50
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: MovedByPressure
  - type: Physics
    bodyType: KinematicController # Same for all inheritors
  - type: StatusEffects
    allowed:
    - Stun
    - KnockedDown
    - SlowedDown
    - Stutter
    - Electrocution
  - type: Repairable
    doAfterDelay: 8
    fuelCost: 15
  - type: Pullable
  - type: Tag
    tags:
    - DoorBumpOpener
    - Unimplantable
    - SiliconMob
  - type: MobState
    allowedStates:
      - Alive
      - Dead
  - type: MobThresholds
    thresholds:
      0: Alive
      120: Dead
    stateAlertDict:
      Alive: BorgHealth
      Dead: BorgDead
    showOverlays: false
  - type: Speech
    speechVerb: Robotic
    speechSounds: Borg
  - type: TypingIndicator
    proto: robot
  - type: Vocal
    sounds:
      Unsexed: UnisexSilicon
  - type: Emoting
  - type: ZombieImmune
  - type: ProtectedFromStepTriggers
  - type: NoSlip
  - type: Insulated
  - type: LanguageKnowledge # Einstein Engines - Languages # Goob moved to MobRobotic since it is parent for MobSiliconBase
    speaks:
    - TauCetiBasic
    - RobotTalk
    understands:
    - TauCetiBasic
    - RobotTalk

# Used for bots
- type: entity
  save: false
  abstract: true
  parent: MobRobotic
  id: MobSiliconBase
  components:
  - type: NpcFactionMember
    factions:
    - SimpleNeutral
  - type: Access
    tags:
    - BasicSilicon
  - type: IntrinsicRadioReceiver
  #- type: IntrinsicRadioTransmitter
  #  channels:
  #  - Binary # Goobstation - replaced with collective mind
  - type: ActiveRadio
    channels:
    - Common
    # - Binary # Goobstation - replaced with collective mind
  # Goobstation
  - type: CollectiveMind
    defaultChannel: Binary
    channels:
    - Binary
  - type: HealthExaminable
    examinableTypes:
    - Blunt
    - Slash
    - Piercing
    - Heat
    - Shock
    locPrefix: silicon
  - type: NameIdentifier
    group: Silicon
  - type: MovementSpeedModifier
    baseWalkSpeed : 3
    baseSprintSpeed : 4
  - type: Stamina
    critThreshold: 120
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 100
      behaviors:
      - !type:TriggerBehavior
    - trigger:
        !type:DamageTrigger
        damage: 120
      behaviors:
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
  - type: Input
    context: "human"
  - type: InputMover
  - type: MobMover
  - type: GuideHelp
    guides:
    - Robotics
  - type: Tag
    tags:
    - DoorBumpOpener
    - Bot
    - Unimplantable
    - SiliconMob
  - type: Body
    bodyType: Simple
    prototype: Bot
  - type: Speech
    speechVerb: Robotic
    speechSounds: Pai #couldn't decide if this should be borg or pai sounds so I flipped a coin.

- type: entity
  parent: MobSiliconBase
  id: MobFireBot
  name: firebot
  description: A little fire extinguishing bot. He looks rather anxious.
  components:
  - type: Sprite
    sprite: Mobs/Silicon/Bots/firebot.rsi
    state: firebot
  - type: Construction
    graph: FireBot
    node: bot
  - type: HTN
    rootTask:
      task: FirebotCompound
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 10
        reagents:
        - ReagentId: Water
          Quantity: 10
  - type: SolutionRegeneration
    solution: spray
    generated:
      reagents:
        - ReagentId: Water
          Quantity: 10
  - type: Spray
    transferAmount: 10
    pushbackAmount: 60
    spraySound:
      path: /Audio/Effects/extinguish.ogg
    sprayedPrototype: ExtinguisherSpray
    vaporAmount: 1
    vaporSpread: 90
    sprayVelocity: 3.0
  - type: UseDelay
    delay: 2
  - type: InteractionPopup
    interactSuccessString: petting-success-firebot
    interactFailureString: petting-failure-firebot
    interactSuccessSound:
      path: /Audio/Ambience/Objects/periodic_beep.ogg
  - type: Vocalizer
  - type: DatasetVocalizer
    dataset: FirebotAd

- type: entity
  parent: MobSiliconBase
  id: MobHonkBot
  name: honkbot
  description: Horrifying.
  components:
  - type: SpamEmitSound
    minInterval: 2
    maxInterval: 12
    sound:
      collection: BikeHorn
      params:
        variation: 0.125
  - type: Sprite
    sprite: Mobs/Silicon/Bots/honkbot.rsi
    state: honkbot
  - type: HTN
    rootTask:
      task: HonkbotCompound
  - type: Slippery
    slipData:
      launchForwardsMultiplier: 2
  - type: Speech
    speechVerb: Cluwne
  - type: StepTrigger
    intersectRatio: 0.2
  - type: StepTriggerImmune # Goobstation
    whitelist:
      types:
      - Shard
  - 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
        layer: # Goobstation
        - MobLayer
  - type: Construction
    graph: HonkBot
    node: bot
  - type: GhostRole
    makeSentient: true
    name: ghost-role-information-honkbot-name
    description: ghost-role-information-honkbot-description
    rules: ghost-role-information-freeagent-rules
    mindRoles:
    - MindRoleGhostRoleFreeAgentHarmless
    raffle:
      settings: default
  - type: GhostTakeoverAvailable
  - type: InteractionPopup
    interactSuccessString: petting-success-honkbot
    interactFailureString: petting-failure-honkbot
    interactSuccessSound:
      path: /Audio/Items/bikehorn.ogg
      params:
        variation: 0.125

- type: entity
  parent: MobHonkBot
  id: MobJonkBot
  name: jonkbot
  description: Horrifying.
  components:
  - type: SpamEmitSound
    sound:
      collection: CluwneHorn
      params:
        variation: 0.125
  - type: Sprite
    state: jonkbot
  - type: Construction
    graph: JonkBot
    node: bot
  - type: GhostRole
    makeSentient: true
    name: ghost-role-information-jonkbot-name
    description: ghost-role-information-jonkbot-description
    rules: ghost-role-information-freeagent-rules
    mindRoles:
    - MindRoleGhostRoleFreeAgentHarmless
    raffle:
      settings: default
  - type: InteractionPopup
    interactSuccessSound:
      path: /Audio/Items/brokenbikehorn.ogg
      params:
        variation: 0.125
  - type: Vocal
    sounds:
      Unsexed: Cluwne
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: Default
    maxIntensity: 20
    totalIntensity: 10
    intensitySlope: 5
    canCreateVacuum: false

- type: entity
  parent: MobSiliconBase
  id: MobCleanBot
  name: cleanbot
  description: The creep of automation now threatening space janitors.
  components:
  - type: Sprite
    sprite: Mobs/Silicon/Bots/cleanbot.rsi
    state: cleanbot
  - type: Construction
    graph: CleanBot
    node: bot
  - type: SentienceTarget
    flavorKind: station-event-random-sentience-flavor-mechanical
  - type: Absorbent
    pickupAmount: 10
  - type: UseDelay
    delay: 2
  - type: SolutionRegeneration
    solution: absorbed
    generated:
      reagents:
        - ReagentId: Water
          Quantity: 10
  - type: SolutionPurge
    solution: absorbed
    preserve:
      - Water
    quantity: 10
  - type: SolutionContainerManager
    solutions:
      absorbed:
        maxVol: 50
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 3
  - type: HTN
    rootTask:
      task: CleanbotCompound
  - type: DrainableSolution
    solution: drainBuffer
  - type: InteractionPopup
    interactSuccessString: petting-success-cleanbot
    interactFailureString: petting-failure-cleanbot
    interactSuccessSound:
      path: /Audio/Ambience/Objects/periodic_beep.ogg
  - type: Item # Goobstation
    size: Large
  - type: StationAiVision # Goobstation - AI can see through NT silicon
    range: 0

- type: entity
  parent:
  - MobSiliconBase
  - ShowMedicalIcons
  - StripableInventoryBase
  id: MobMedibot
  name: medibot
  description: No substitute for a doctor, but better than nothing.
  components:
  - type: Medibot
    treatments:
      Alive:
        reagent: Tricordrazine
        quantity: 30
        minDamage: 0
        maxDamage: 50
      Critical:
        reagent: Inaprovaline
        quantity: 15
  - type: EmaggableMedibot
    replacements:
      # when you are fine, medibot will help you go sleep
      Alive:
        reagent: ChloralHydrate
        quantity: 15
      # when you are crit, medibot will help you have fun
      Critical:
        reagent: SpaceDrugs
        quantity: 25
  - type: RandomSprite
    available:
        - enum.DamageStateVisualLayers.Base:
            medibot: ""
          enum.DamageStateVisualLayers.BaseUnshaded:
            powered: Rainbow
  - type: Sprite
    sprite: _Goobstation/Mobs/Silicon/Bots/medibot.rsi
    layers:
      - state: medibot
        map: [ "enum.DamageStateVisualLayers.Base" ]
      - state: powered
        map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ]
        shader: unshaded
  - type: HTN
    rootTask:
      task: MedibotCompound
  - type: Construction
    graph: MediBot
    node: bot
  - type: SentienceTarget
    flavorKind: station-event-random-sentience-flavor-mechanical
  - type: Anchorable
  - type: InteractionPopup
    interactSuccessString: petting-success-medibot
    interactFailureString: petting-failure-medibot
    interactSuccessSpawn: EffectHearts
    interactSuccessSound:
      path: /Audio/Animals/cat_meow.ogg
  - type: ShowHealthBars
    damageContainers:
    - Biological
  - type: ShowHealthIcons
    damageContainers:
    - Biological
  - type: Advertise
    pack: MedibotAds
  - type: Vocalizer
  - type: DatasetVocalizer
    dataset: MedibotAds
  - type: Inventory
    templateId: medibot
  - type: DoAfter
  - type: StationAiVision # Goobstation - AI can see through NT silicon
    range: 1

- type: entity
  parent:
  - MobSiliconBase
  - StripableInventoryBase
  id: MobMimeBot
  name: mimebot
  description: Why not give the mimebot a friendly wave?
  components:
  - type: Sprite
    layers:
    - map: ["enum.DamageStateVisualLayers.Base"]
      state: mimebot
      sprite: Mobs/Silicon/Bots/mimebot.rsi
  - type: MimePowers
  - type: Construction
    graph: MimeBot
    node: bot
  - type: GhostRole
    makeSentient: true
    name: ghost-role-information-mimebot-name
    description: ghost-role-information-mimebot-description
    rules: ghost-role-information-freeagent-rules
    mindRoles:
    - MindRoleGhostRoleFreeAgentHarmless
    raffle:
      settings: default
  - type: GhostTakeoverAvailable
  - type: InteractionPopup
    interactSuccessString: petting-success-mimebot
    interactFailureString: petting-failure-mimebot
  - type: Inventory
    templateId: head

- type: entity
  parent: MobSiliconBase
  id: MobSupplyBot
  name: supplybot
  description: Delivers cargo!
  components:
  - type: Sprite
    sprite: Mobs/Silicon/Bots/supplybot.rsi
    layers:
    - map: ["enum.DamageStateVisualLayers.Base", "movement"]
      state: supplybot
  - type: SpriteMovement
    movementLayers:
      movement:
        state: supplybot-moving
    noMovementLayers:
      movement:
        state: supplybot
  - type: GhostRole
    makeSentient: true
    name: ghost-role-information-supplybot-name
    description: ghost-role-information-supplybot-description
    rules: ghost-role-information-nonantagonist-rules
    raffle:
      settings: default
  - type: GhostTakeoverAvailable
  - type: Construction
    graph: SupplyBot
    node: bot
  - type: Access
    tags:
    - Cargo
    - Maintenance
    - Salvage
  - type: Dumpable
  - type: Storage
    maxItemSize: Huge
    grid:
    - 0,0,9,3
  - type: UserInterface
    interfaces:
      enum.StorageUiKey.Key:
        type: StorageBoundUserInterface
  - type: ContainerContainer
    containers:
      storagebase: !type:Container
        ents: []
  - type: UnpoweredFlashlight
  - type: PointLight
    enabled: false
    radius: 3.5
    softness: 2
    mask: /Textures/Effects/LightMasks/cone.png
    autoRot: true
  - type: FootstepModifier
    footstepSoundCollection:
      collection: FootstepBorg
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Bot
    - Unimplantable
  - type: ActiveRadio
    channels:
    # - Binary # Goobstation - replaced with collective mind
    - Common
    - Supply
  - type: StationAiVision # Goobstation - AI can see through NT silicon
    range: 1
  - type: Puller
    needsHands: false
