## About The Pull Request
closes#88743 . the issue is while they'd ignore ur command since its
impossible, the emote would still appear, which i now realize was a
mistake
## Why It's Good For The Game
fixes being able to tell animals to commit atrocious acts
## Changelog
🆑
fix: radial pet commanding emotes will now not appear if the command is
impossible to execute
/🆑
Renames all uses of caller, as they (currently) shadow the new byond var
and will in future error
Ups our "wan if compiled after" experiement compile version to 516
Adds an alternate 516 unit test
## About The Pull Request
this PR improves the UX of pet commands a bit. i decided to expand on
their radial menu. You can now hold shift and hover over your pet to
display a menu of commands which you can choose from. alternatively, you
can still type out commands in chat
https://github.com/user-attachments/assets/9da7f7ea-58a3-4fd6-b040-45cc05cda51d
## Why It's Good For The Game
makes pet commands easier to give out when you're managing more than 1
pet. also fixes the fishing command not working.
## Changelog
🆑
qol: holding shift and hovering over your pet will display a list of
commands you can click from
fix: fixes the fishing pet command not working
/🆑
## About The Pull Request
This PR reintroduces #85759, #85892 and #85894.
#85892 has post-wallening arrows, but it isn't a big deal because they
fit the top-down or 3/4 style we've for a lot of things.
## Why It's Good For The Game
Reintroducing lost features and improvements. Remember to remove the
'Lost in the wallening revert' label from those PRs when this is merged.
## Changelog
N/A
## About The Pull Request

Shift + middle clicking while wearing a mining headset will open a
callout radial, after moving your mouse over one of the options a
callout emote will appear where you pointed (No need to click on the
radial button). Callouts have a 3 second cooldown to prevent spam and
glow in the dark due to how dark lavaland is (normal point emotes do
not)
There are 6 options: pointing, danger, attack, mine, defend and
reposition. Your callouts are colored in your runechat color. This is
done via a component so later if needed it could be added to other
headsets/mobs/items. Callouts also can initiate basic mob orders, being
a better way to command your minebots in combat.
Additionally, they also boost your speech back to normal levels in
low-pressure environments, ensuring that your runechat is still nice and
readable.
## Why It's Good For The Game
This would make coop mining much more enjoyable, as stopping to type
mid-fight is more often than not a death sentence on lavaland. With
arcmining's vents cooperating is actually beneficial, and I feel like we
should incentivize miners to do it more often by providing them with
tools for it.
## Changelog
🆑
add: Mining headsets now allow you to make callouts via pointing. You
can use them to communicate with fellow miners or order your army of
bots and raptors!
add: Mining headsets keep your voice loud and clear in low-pressure
environments (not vacuum!)
/🆑
## About The Pull Request
Lobstrosities can now be raised from aquarium icemoon/lavaland chrabs.
First of all, you've to get a live chrab, an aquarium, and some fish
feed. Second, you place the chrab inside the aquarium and turn the
'allow breeding' settting on (should probably rename it to a more apt
name now). Keep the chrab well fed, and possibly with some friends and
props in the same aquarium until it develops into a hopefully calm
juveline lobstrosity and plops out of the aquarium (it can take some
time). From there you can tame it by feeding it its favorite food: arms
and lavaloop fish, and wait another dozen minutes for it to mature into
a fully grown lobstrosity.
Juveline lobstrosities are basically smaller and weaker lobstrosities,
if not slightly faster in some ways. Unlike their taller counterparts,
they can be tamed. Once done so, they'll retain their tamedness once
grown up. Regardless, tamed lobstrosities can be given the pet command
to fish for things by pointing at them. Thanks BenMatrix for the
profound fisher component, woo.
The chrab's weigth and size influence the growth speed of the first
stage faster, meaning bigger chrabs (may require crossbreeding) will
turn into juveline lobstrosities quickly. Amongst other things
influencing the resulting mob are fish traits:
Several traits have been given effects that apply to the mob, such as
nocturnal regeneration, being venomous or being able to fly akin space
carps. Also a new one that prevents the resulting lobstrosity from fully
developing
Now tested.
## Why It's Good For The Game
I'm building upon fishing and aquarium stuff, which has been an interest
of mine in a good while, though most of it doesn't have that many
practical uses, I'm slowly trying to make it cooler, and chasm chrabs
growing into lobstrosities is pretty much in line with the fluff texts
for the fish.
Eventually I'll have to add tips inside fishing toolboxes, otherwise
people won't know even half of it.
## Changelog
🆑
add: You can raise lobstrosities from chasm chrabs inside an aquarium
with the 'allow breeding' setting on. Keep the fish well fed, healthy
and not lonely if you don't want an hostile one.
add: Juveline lobstrosities (from chasms, plasma rivers, or aquariums,
xenobio too) can be tamed with arms and lavaloop fishes.
add: For lobstrosities grown from aquariums, they can have additional
effects based on the fish traits they had in the aquarium, like being
venomous or even flying.
/🆑
## About The Pull Request
Thanks goodness they've done the signal already for the deadchat control
component.
## Why It's Good For The Game
This will fix#78640.
## Changelog
🆑
fix: Regal rats (and others), won't be punished by the automute system
for repeating the same command several times.
/🆑
## About The Pull Request
[Implements the backend required to make targeting datums
global](https://github.com/tgstation/tgstation/commit/6901ead12e419530b7f646ea21094d4432d7385e)
It's inconsistent with the rest of basic ai for these to have a high
degree of state, plus like, such a waste yaknow?
[Implements
GET_TARGETING_STRATEGY](https://github.com/tgstation/tgstation/commit/d79c29134d03424a9f8bacd64c08cb41775fe8c0)
Regexes used:
new.*(/datum/targetting_datum[^,(]*)\(*\)* -> GET_TARGETING_STRATEGY($1)
Renamed all instances of targetting to targeting (also targetting datum
-> targeting strategy)
I've used GET_TARGETING_STRATEGY at the source where the keys are
actually used, rather then in the listing. This works out just fine.
## Why It's Good For The Game
Not a misspelled name through the whole codebase, very slightly less
memory load for basically no downside (slight cpu cost maybe but not a
significant one.
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
## About The Pull Request
Replaces weakref usage in AI blackboards with deleting signals
All blackboard var setting must go through setters rather than directly
## Why It's Good For The Game
This both makes it a ton easier to develop AI for, and also makes it
harder for hard deletes to sneak in, as has been seen with recent 515
prs showing hard deletes in AI blackboards
(To quantify "making it easier to develop AI", I found multiple bugs in
existing AI code due to the usage of weakrefs.)
I'm looking for `@Jacquerel` `@tralezab` 's opinions on the matter, also
maybe `@LemonInTheDark` if they're interested
## Changelog
🆑 Melbert
refactor: Mob ai refactored once again
/🆑
About The Pull Request
Chiefly this refactors dogs to use the newer component/datum system for "pet which follows instructions". It also refactors it a little bit because I had better ideas while working on this than I had last week. Specifically, instead of passing around keys we just stick a weakref to our currently active behaviour in the blackboard. Basically the same but skipping an unecessary step.
Additionally it adds a component for the previous "befriending a mob by clicking it repeatedly" behaviour which hopefully we won't use too much because it's not very exciting (I am planning on replacing it for dogs some time after Christmas).
The biggest effort in here was making the Fetch command more generic, which includes multiple behaviours (which might be used on their own?) and another component (for holding an item without hands).
Additionally I noticed that dogs would keep following my instructions after they died.
This seems unideal, and would be unideal for virtually any AI controller, so I added it as an AI_flag just in case there's some circumstance where you do want to process AI on a dead mob.
Finally this should replicate all behaviour Ian already had plus "follow" (from rats) and a new bonus easter egg reaction, however I noticed that the fetch command is supposed to have Ian eat any food that you try to get him to fetch.
This has been broken for some time and I will be away from my desk for a couple weeks pretty soon, so I wrote the behaviour for this but left it unused. I will come back to this in the future, once I figure out a way to implement it which does not require adding the "you can hit this" flag to every edible item.
Also I had to refit the recent addition of dogs barking at felinids to fit into this, with a side effect that now dogs won't get mad at a Felinid they are friends with. This... feels like intended behaviour anyway?
Why It's Good For The Game
It's good for these to work the same way instead of reimplementing the same behaviour in multiple files.
Being able to have Ian (or other dogs) follow you around the station is both fun and cute, and also makes him significantly more vulnerable to being murdered.
Changelog
cl
add: Ian has learned some new tricks, tell him what a good boy he is!
add: Ian will come on a walk with you, if you are his friend.
refactor: Ian's tricks work the same way as some other mobs' tricks and should be extendable to future mobs.
fix: Dogs no longer run at the maximum possible speed for a mob at all times.
add: When Ian gets old, he also slows down. Poor little guy.
add: Dogs will no longer dislike the presence of Felinids who have taken the time to befriend them.
/cl
## About The Pull Request
Another atomisation of #71421 but I had a fun idea while I was testing
it.
This adds a component based on the existing system for giving
instructions to tamed carp or dogs, but hopefully more modular.
It also gives it to the rat minions of a regal rat.
The basic function allows the mob to listen and react to spoken
commands, which passes things to its AI blackboard. Additionally if you
alt-click a commandable mob it will show a radial menu which both allows
you to select a command, and also contains tooltips explaining what they
do and what audible words trigger it.
<details>
<summary>Video</summary>
https://user-images.githubusercontent.com/7483112/204308693-0eccebec-75c9-411c-81c5-5aa0d682d1a5.mp4
</details>
Now if you riot some rats, you can alt click on them individually to
give them specific orders (more useful for other creatures than rats),
or you can speak out loud to command your legion.
Rats aren't very smart so you can't give them many instructions, but
this is expandable for other creatures.
Additional change: Mice don't squeak if stepped on by other mice because
this made an absolutely unholy noise and I am not sure there's a way to
get non-dense mobs to spread out.
## Why It's Good For The Game
Allows for giving more mobs the ability to be tamed and instructable by
their owner, without copy/pasting code which lives inside a specific
mob.
Yelling at your rats to give them commands is funny. It also adds the
possibility of telling your rats to stop biting someone if they have
agreed to your demands, allowing for more courtly roleplay.
When Regal Rat is converted to a basic mob its AI can also give other
AIs instructions by yelling at them which I think is a good feature.
## Changelog
🆑
add: The followers of Regal Rats will now respond to simple
instructions, if given by their rightful lord. Except frogs. They're too
busy licking themselves and watching the colours.
/🆑