]> git.smokeofanarchy.ru Git - space-station-14.git/commit
Adds HugBot (#37557)
authorCentronias <charlie.t.santos@gmail.com>
Sat, 11 Oct 2025 00:51:12 +0000 (17:51 -0700)
committerGitHub <noreply@github.com>
Sat, 11 Oct 2025 00:51:12 +0000 (00:51 +0000)
commitd3f85701f74ae8c54e830656f0ed39331c5f9915
tree7ad83b185afca7f53b9abfd01301588edf97f7f6
parentad708eec3b0d8795cf305b1ec21403d2e955456e
Adds HugBot (#37557)

* - hugbot
  - bdy with two arms because it needs two arms to hug
  - is constructable from:
    - box of hugs
    - proximity sensor
    - two borg arms
  - lots of voice lines
  - kinda like a medibot, it chases you down and then hugs you
    - except if it's emagged, then it punches you :)
    - it has a 2m cooldown per person by default

- MeleeAttackOperator
  - Read the doc, but it's an operator which makes the NPC hit a target exactly once assuming it's in range.
  - Used to make the hugbot attack
- RaiseEventForOwnerOperator
  - Read the doc, but it's an operator which raises an event on the owning NPC.
  - Used to make the hugbot hug extra code, specifically for the cooldown

- Changes to existing code:
  - `ComponentFilter : UtilityQueryFilter` gets `RetainWithComp` added which, as the name implies, retains entities with the specified comps rather than removing them. Basically, it lets you negate the filter.
  - `SpeakOperator : HTNOperator`'s `speech` field can use a `LocalizedDataSet` instead of just a locstring now
    - (I updated all of the existing usages for this)
  -

* two arms

* wait what if we just used mimebot arms so it doesn't look awful

* smort
24 files changed:
Content.Client/Silicons/Bots/HugBotSystem.cs [new file with mode: 0644]
Content.Server/NPC/HTN/Preconditions/IsEmaggedPrecondition.cs [new file with mode: 0644]
Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/Melee/MeleeAttackOperator.cs [new file with mode: 0644]
Content.Server/NPC/HTN/PrimitiveTasks/Operators/SpeakOperator.cs
Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/RaiseEventForOwnerOperator.cs [new file with mode: 0644]
Content.Server/NPC/Queries/Queries/ComponentFilter.cs
Content.Server/NPC/Systems/NPCUtilitySystem.cs
Content.Server/Silicons/Bots/HugBotSystem.cs [new file with mode: 0644]
Content.Server/Silicons/Bots/RecentlyHuggedByHugBotComponent.cs [new file with mode: 0644]
Content.Shared/Silicons/Bots/HugBotComponent.cs [new file with mode: 0644]
Content.Shared/Silicons/Bots/SharedHugBotSystem.cs [new file with mode: 0644]
Resources/Locale/en-US/_Moffstation/recipes/tags.ftl [new file with mode: 0644]
Resources/Locale/en-US/npc/hugbot.ftl [new file with mode: 0644]
Resources/Prototypes/Body/Prototypes/bot.yml
Resources/Prototypes/Catalog/hugbot.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
Resources/Prototypes/NPCs/debug.yml
Resources/Prototypes/NPCs/firebot.yml
Resources/Prototypes/NPCs/hugbot.yml [new file with mode: 0644]
Resources/Prototypes/NPCs/medibot.yml
Resources/Prototypes/Recipes/Crafting/Graphs/bots/hugbot.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Crafting/bots.yml
Resources/Textures/Mobs/Silicon/Bots/hugbot.rsi/hugbot.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/Bots/hugbot.rsi/meta.json [new file with mode: 0644]