187 Commits

Author SHA1 Message Date
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00
MrMelbert 42f4df09a7 Tweaks ai escape_captivity behavior (#94224)
## About The Pull Request

Now: AI will break chairs they're buckled in
After PR: Ai will prefer to resist out of chairs if possible

Fixes #94222 , partially

Really I think this shouldn't be a subtree, orrrrr if it is it should be
enabled by combat.
It's weird that buckling a pet into a pet bed encourages them to get up
ASAP.
If a mob is completely docile or otherwise not trying to act, they
shouldn't freak out and break whatever they're sat in.

Alternatively pets need a behavior for seeking out a bed (but that's
more effort)

## Changelog

🆑 Melbert
fix: AI mobs will prefer to resist out of simple buckles (like being sat
in a chair or bed) rather than try to break the chair.
/🆑
2025-11-30 17:26:11 -07:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
Cirrial 31d4eb04f1 Fix Stoat Steal Behaviour (and some other AI stuff hopefully) (#94153)
## About The Pull Request

Two main things. 

Multiple instances of use of a proc in AI controllers seemingly assuming
the default behaviour will work for them, but what ends up happening is
`search_tactic` gets redefined and redefined with no defaut search range
parameter, so nothing ends up passed to the `search_tactic` child procs,
so they all call `oview` with `null` and this... somehow doesn't
runtime? Has behaviour that works some of the time??? I hate this
fucking language. Anyway.

Stoat steal items behaviour was completely broken and apparently was not
tested once since it was merged in. I've made the corrections I can, but
I haven't figured out why stoat AI never enters idle, so we have a
behaviour that leads to the stoat running up to an item, grabbing it,
and then just staying there, unmoving. I've sunk too many hours into
this, I'm just going to call it fixed and let someone else figure out
what exciting additions there need to be to a behaviour that was never
functional in the first place.

## Why It's Good For The Game

i don't know man i just want the pain to stop 

okay, generally speaking, when people write AI behaviours, they want
those AI behaviours to do something and not just silently fail for six
months or longer

## Changelog
🆑
fix: Stoats have a chance to try and grab items like they always should
have.
/🆑
2025-11-28 13:35:53 +02:00
Roxy d0ca474789 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 2025-11-05 19:43:07 -05:00
SmArtKar 1c6c506936 Raptor Rework - Ranching and Companionship (#93564) 2025-11-01 22:13:29 +11:00
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
die 0204ab8fdd Canreach refactor (#93165)
## About The Pull Request
ports https://github.com/DaedalusDock/daedalusdock/pull/1144
ports https://github.com/DaedalusDock/daedalusdock/pull/1147

full credit to @Kapu1178 for the juice

instead of `reacher.CanReach(target)` we now do
`target.CanBeReachedBy(reacher)`, this allows us to give special
behavior to atoms which we want to reach, which is exactly what I need
for a feature I'm working on.
## Why It's Good For The Game
allows us to be more flexible with reachability
## Changelog
🆑
refactor: refactored how reaching items works, report any oddities with
being unable to reach something you should be able to!
/🆑
2025-10-07 20:28:59 +02:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
MrMelbert 750ca9d2ec Two as anything greps (and some other cleanup) (#92974) 2025-09-20 13:44:28 -04:00
Ben10Omintrix 0c34b84939 fixes tamed pets sometimes attacking one another (#92200)
## About The Pull Request
tamed pets would not let previous grudges go so theyd attack one another
even after theyve both been tamed by the same owner. this fixes that

## Why It's Good For The Game
fixes tamed pets sometimes attacking one another

## Changelog
🆑
fix: fixes tamed pets sometimes attacking one another
/🆑
2025-07-30 17:37:23 -04:00
Ben10Omintrix d94f974df3 fixes tamed pets sometimes attacking one another (#92200)
## About The Pull Request
tamed pets would not let previous grudges go so theyd attack one another
even after theyve both been tamed by the same owner. this fixes that

## Why It's Good For The Game
fixes tamed pets sometimes attacking one another

## Changelog
🆑
fix: fixes tamed pets sometimes attacking one another
/🆑
2025-07-20 12:52:20 +02:00
SmArtKar fae3d97ea0 Pets no longer instantly resist out of your grip when picked up (#92059)
## About The Pull Request

Closes #92034

## Changelog
🆑
fix: Pets no longer instantly resist out of your grip when picked up
/🆑
2025-07-11 18:04:54 -04:00
SmArtKar 1ca3d7e79f Pets no longer instantly resist out of your grip when picked up (#92059)
## About The Pull Request

Closes #92034

## Changelog
🆑
fix: Pets no longer instantly resist out of your grip when picked up
/🆑
2025-07-11 08:11:52 +02:00
Jacquerel 5bd8784918 Most hostile mobs can no longer be trapped by closets, chairs, and aggro grabs (#91652) 2025-06-21 22:36:04 -04:00
Jacquerel e3dee6810e Most hostile mobs can no longer be trapped by closets, chairs, and aggro grabs (#91652) 2025-06-21 03:21:22 +02:00
Ben10Omintrix fb2e22a5fc weasels (stoats) (#91030)
## About The Pull Request
adds stoats to the game! 

![stoatsss](https://github.com/user-attachments/assets/d22a5041-3249-40f4-8599-229c72dc4a19)

these are relatively friendly animals u can find in maints. they'll hunt
down mice and other smaller vermin (making them a janitor's best friend)
,and are nimble enough to crawl through pipes. They also love stealing
things as they will drag random objects they find lying around them.
additionally, you may find disposal bins that are shaking, this means
there's a stoat inside rummaging it for food. clicking eject or throwing
anything in the bin will cause the stoat to immediately jump out scared.
u can also tame them by feeding them eggs or dead mice.

## Why It's Good For The Game
further expands the mob pool of maints, establishing some sort of
ecosystem.

## Changelog
🆑
add: added stoats to the game
/🆑
2025-05-29 16:16:12 -04:00
Ben10Omintrix 9765cccc34 weasels (stoats) (#91030)
## About The Pull Request
adds stoats to the game! 

![stoatsss](https://github.com/user-attachments/assets/d22a5041-3249-40f4-8599-229c72dc4a19)

these are relatively friendly animals u can find in maints. they'll hunt
down mice and other smaller vermin (making them a janitor's best friend)
,and are nimble enough to crawl through pipes. They also love stealing
things as they will drag random objects they find lying around them.
additionally, you may find disposal bins that are shaking, this means
there's a stoat inside rummaging it for food. clicking eject or throwing
anything in the bin will cause the stoat to immediately jump out scared.
u can also tame them by feeding them eggs or dead mice.

## Why It's Good For The Game
further expands the mob pool of maints, establishing some sort of
ecosystem.

## Changelog
🆑
add: added stoats to the game
/🆑
2025-05-27 18:16:21 +02:00
Jacquerel 9968f94721 Regal Rat cleanup & minor changes (#91012)
## About The Pull Request

Since #90505 added another entry to it the Regal Rat Riot ability, which
turns maintenance creatures into versions loyal to the rat, has become
sort of unmanageable (and to be honest it was a bit gross to start
with).
Instead of having a big if/else list (which was making the same range
check multiple times...) that sets stats on a bunch of mobs, I delegated
it to the mobs themselves and instead of changing some stats of the
existing mobs we just turn them into a new mob which can be spawned or
placed separately by mappers or admins if they want.

Other stuff I changed:

Riot (the ability which transforms mobs into minions) no longer spawns a
mouse if it fails to find anything. Instead you have a chance to fish
mice out of disposals bins while digging out trash and items.

Domain is now a toggle which activates itself every 6 seconds rather
than a button you manually click every 6 seconds.

Riot makes a visual effect when used.

Rare Pepe randomisation is done via a random spawner instead of the mob
modifying a bunch of its own properties in Initialise.

A bunch of mobs now automatically follow you after being tamed. I wrote
this assuming I was going to add it to the rioted mobs but then didn't
end up doing that because you might want them to immediately attack
someone.
My rule of thumb is that if I think you'd want the mob to attack someone
the moment it is befriended I didn't add this and if you wouldn't I did.

I changed some of the regal rat minion names, and some of them can now
spawn from gold slime which couldn't before.

## Why It's Good For The Game

This proc sucked and now it's nicer.

As for the other changes;
- A tamed mob immediately following you is nice feedback and saves you a
click as it's likely to be your first action. Also removes some admin
panel shitcode I added.
- I changed Domain to a toggle because you generally want to use it on
cooldown and someone suggested it on this PR and it sounded like a good
idea.
- I saw someone in Discord complaining that the previous flow of
recruiting rats by hitting Riot with nothing around to summon one,
waiting, hitting it again to convert one rat, and waiting again was
tedious and annoying which I agree with.
This method improves the quality of life by separating these two actions
but _also_ as a side effect reduces a regal rat's ability to secretly
stockpile 50 rats in a hidden maintenance room because most disposal
bins are in slightly more visible areas, they'll actually need to go and
make a mess somewhere someone can see them.


## Changelog

🆑
balance: Regal Rats can now grab mice out of disposal bins, and no
longer spawn them with the Riot ability.
balance: The Riot ability no longer needs to be used once for each
slightly different kind of mob in your radius.
balance: The Regal Rat Domain ability is now toggled on and off.
balance: Several kinds of mob will immediately start following you once
tamed.
balance: Rats, hostile frogs, and evil snails can be created via gold
slime reaction.
/🆑
2025-05-15 16:05:41 -04:00
Jacquerel 96976c0b9a Regal Rat cleanup & minor changes (#91012)
## About The Pull Request

Since #90505 added another entry to it the Regal Rat Riot ability, which
turns maintenance creatures into versions loyal to the rat, has become
sort of unmanageable (and to be honest it was a bit gross to start
with).
Instead of having a big if/else list (which was making the same range
check multiple times...) that sets stats on a bunch of mobs, I delegated
it to the mobs themselves and instead of changing some stats of the
existing mobs we just turn them into a new mob which can be spawned or
placed separately by mappers or admins if they want.

Other stuff I changed:

Riot (the ability which transforms mobs into minions) no longer spawns a
mouse if it fails to find anything. Instead you have a chance to fish
mice out of disposals bins while digging out trash and items.

Domain is now a toggle which activates itself every 6 seconds rather
than a button you manually click every 6 seconds.

Riot makes a visual effect when used.

Rare Pepe randomisation is done via a random spawner instead of the mob
modifying a bunch of its own properties in Initialise.

A bunch of mobs now automatically follow you after being tamed. I wrote
this assuming I was going to add it to the rioted mobs but then didn't
end up doing that because you might want them to immediately attack
someone.
My rule of thumb is that if I think you'd want the mob to attack someone
the moment it is befriended I didn't add this and if you wouldn't I did.

I changed some of the regal rat minion names, and some of them can now
spawn from gold slime which couldn't before.

## Why It's Good For The Game

This proc sucked and now it's nicer.

As for the other changes;
- A tamed mob immediately following you is nice feedback and saves you a
click as it's likely to be your first action. Also removes some admin
panel shitcode I added.
- I changed Domain to a toggle because you generally want to use it on
cooldown and someone suggested it on this PR and it sounded like a good
idea.
- I saw someone in Discord complaining that the previous flow of
recruiting rats by hitting Riot with nothing around to summon one,
waiting, hitting it again to convert one rat, and waiting again was
tedious and annoying which I agree with.
This method improves the quality of life by separating these two actions
but _also_ as a side effect reduces a regal rat's ability to secretly
stockpile 50 rats in a hidden maintenance room because most disposal
bins are in slightly more visible areas, they'll actually need to go and
make a mess somewhere someone can see them.


## Changelog

🆑
balance: Regal Rats can now grab mice out of disposal bins, and no
longer spawn them with the Riot ability.
balance: The Riot ability no longer needs to be used once for each
slightly different kind of mob in your radius.
balance: The Regal Rat Domain ability is now toggled on and off.
balance: Several kinds of mob will immediately start following you once
tamed.
balance: Rats, hostile frogs, and evil snails can be created via gold
slime reaction.
/🆑
2025-05-11 04:52:20 +03:00
Ben10Omintrix 914a85d562 snails (#90505)
## About The Pull Request
adds snails to the game

![image](https://github.com/user-attachments/assets/f1745795-695f-443a-827e-1f1987d4fdb6)

these are harmless critters you can find in maints. they love eating all
variety of fruits, and are gravitated towards snail people, where
they'll dance around them.

you can also pick them up and put them on your head.

finally, you can also grab them and put them in hydrotrays (they will
swim around in it very slowly). they'll help ur plants grow as they act
as natural weed-repellants, as they'll eat weeds that grow in trays.

![image](https://github.com/user-attachments/assets/512f0974-d0d1-4f90-a540-c03d1c969328)


## Why It's Good For The Game
there's not that many mobs you can usually find in maints, currently
there's only mice and cockroaches, this helps expand the pools a bit.

## Changelog
🆑
add: adds snails to the game. (keep them away from salt!)
/🆑
2025-05-08 19:19:40 -04:00
Jacquerel 64a9e34881 Improve Ice Whelp behaviour (#90771)
## About The Pull Request

Fixes #90767
This PR redesigns ice whelps somewhat

As before they have two fire breath attacks, one of which is a line and
one of which is a point blank AOE
Unlike before, the aspect of forecasting that the attack is coming is
now part of the ability and not a component only used by ice whelps (I
didn't like the component) and comes with visuals


![dreamseeker_cANE799XYB](https://github.com/user-attachments/assets/bd10926f-d136-40dd-8d21-8a8e9c14bafa)

![dreamseeker_O8hjbivgT0](https://github.com/user-attachments/assets/21f78e1b-727b-438a-b013-a6f9d8c210f8)

Also unlike before, the line breath is longer and comes out faster
(because it's frankly pretty trivial to avoid) and the point blank
effect has been upgraded to effect every tile in a circular area within
3 spaces of the drake

The drake will now use the "every nearby tile" attack if you are close
by when its abilities come off cooldown, and the longer ranged one if
you're not

## Why It's Good For The Game

This fixes Ice Drakes using their breath attack literally once and never
again and might make them slightly more interesting to fight
Their slow speed and inaccurate targeting I think still means that
they're not very threatening on their own, but that'd need a more
substantial redesign to fix

## Changelog

🆑
balance: Ice Whelps now switch between their breath attacks depending on
the situation
fix: Ice Whelps will use their breath attacks more than once per
encounter
/🆑
2025-05-08 19:16:03 -04:00
Ben10Omintrix a708c8e8da snails (#90505)
## About The Pull Request
adds snails to the game

![image](https://github.com/user-attachments/assets/f1745795-695f-443a-827e-1f1987d4fdb6)

these are harmless critters you can find in maints. they love eating all
variety of fruits, and are gravitated towards snail people, where
they'll dance around them.

you can also pick them up and put them on your head.

finally, you can also grab them and put them in hydrotrays (they will
swim around in it very slowly). they'll help ur plants grow as they act
as natural weed-repellants, as they'll eat weeds that grow in trays.

![image](https://github.com/user-attachments/assets/512f0974-d0d1-4f90-a540-c03d1c969328)


## Why It's Good For The Game
there's not that many mobs you can usually find in maints, currently
there's only mice and cockroaches, this helps expand the pools a bit.

## Changelog
🆑
add: adds snails to the game. (keep them away from salt!)
/🆑
2025-05-05 13:29:14 +01:00
Jacquerel 52ed369990 Improve Ice Whelp behaviour (#90771)
## About The Pull Request

Fixes #90767
This PR redesigns ice whelps somewhat

As before they have two fire breath attacks, one of which is a line and
one of which is a point blank AOE
Unlike before, the aspect of forecasting that the attack is coming is
now part of the ability and not a component only used by ice whelps (I
didn't like the component) and comes with visuals


![dreamseeker_cANE799XYB](https://github.com/user-attachments/assets/bd10926f-d136-40dd-8d21-8a8e9c14bafa)

![dreamseeker_O8hjbivgT0](https://github.com/user-attachments/assets/21f78e1b-727b-438a-b013-a6f9d8c210f8)

Also unlike before, the line breath is longer and comes out faster
(because it's frankly pretty trivial to avoid) and the point blank
effect has been upgraded to effect every tile in a circular area within
3 spaces of the drake

The drake will now use the "every nearby tile" attack if you are close
by when its abilities come off cooldown, and the longer ranged one if
you're not

## Why It's Good For The Game

This fixes Ice Drakes using their breath attack literally once and never
again and might make them slightly more interesting to fight
Their slow speed and inaccurate targeting I think still means that
they're not very threatening on their own, but that'd need a more
substantial redesign to fix

## Changelog

🆑
balance: Ice Whelps now switch between their breath attacks depending on
the situation
fix: Ice Whelps will use their breath attacks more than once per
encounter
/🆑
2025-05-04 14:41:50 -07:00
Jacquerel 6a556355e8 Replace basic mob attack telegraph with slower reaction times (#90585)
## About The Pull Request

This PR removes the `basic_mob_attack_telegraph` component from all mobs
which were using it and instead implements an attack delay directly into
the basic melee AI behaviour.
This delay simulates "moving your mouse into position", human reaction
times, and the fact that the previous implentation of simple mobs would
only try to melee attack on a predictable timer you could "juke" around.

The way that this delay works is that it starts as soon as the mob
enters melee range and resets if you are ever out of the mob's reach, so
there will be no delay if you are foolish enough (or unfortunately
preventing from doing otherwise) to continue standing next to a mob but
there is enough of a one to duck in and out of melee range with a
goliath while using a crusher without getting hit, although trying to
run past one usually won't work.

This delay defaults to 0.3 seconds which in my testing experience was
roughly enough to dip in and out of range without getting hit but not
enough to run all the way past a mob without getting hit. It can be
overriden via the blackboard, although currently no mob does this.
I _was_ testing this locally with no latency though so I guess we'll
listen out to see if miners start yelling.

## Why It's Good For The Game

The visible attack broadcast is very cool but its visibility made melee
combat with any mob that had it significantly easier to such a degree
that any mob with it on could not really be expected to do melee damage
to any character that wasn't suffering some kind of immobilisation
effect which was never really the intention.

Removing it also removes any additional handicap that was applied to
sapient versions of these mobs, which was never really necessary or
intended in the first place.

I did not remove the component entirely from the game for two reasons:
- Out of the hope that there is some use for it somewhere, because I
think it's cool, but more importantly:
- Because it's still being used by simple mob megafauna as a workaround
for a bug we couldn't figure out.

## Changelog

🆑
balance: Most mobs will now hesitate for a moment before attacking
rather than instantly hitting anything that enters melee range, to
better simulate human behaviour. Please report if this delay seems too
short, or too long.
balance: Most mobs which telegraphed their basic attacks on you now will
not do that
/🆑
2025-04-29 17:56:54 -06:00
Jacquerel d14e446fad Mice can play synthesisers (#90610)
## About The Pull Request


![image](https://github.com/user-attachments/assets/9d4ce934-bb40-4b05-8d25-5bfb4998c3cd)
This PR allows mice to play synthesisers, which they will prioritise
over running away from people if they see one (but eating cheese is more
important than that).

## Why It's Good For The Game


![85786433-3946-4a94-a863-c12999082023_373x306](https://github.com/user-attachments/assets/f32c2ea3-6a85-4060-9bfb-1d8555feb35b)

## Changelog

🆑
add: Mice can play synthesisers
/🆑
2025-04-29 17:55:19 -06:00
Jacquerel 809eab4258 Replace basic mob attack telegraph with slower reaction times (#90585)
## About The Pull Request

This PR removes the `basic_mob_attack_telegraph` component from all mobs
which were using it and instead implements an attack delay directly into
the basic melee AI behaviour.
This delay simulates "moving your mouse into position", human reaction
times, and the fact that the previous implentation of simple mobs would
only try to melee attack on a predictable timer you could "juke" around.

The way that this delay works is that it starts as soon as the mob
enters melee range and resets if you are ever out of the mob's reach, so
there will be no delay if you are foolish enough (or unfortunately
preventing from doing otherwise) to continue standing next to a mob but
there is enough of a one to duck in and out of melee range with a
goliath while using a crusher without getting hit, although trying to
run past one usually won't work.

This delay defaults to 0.3 seconds which in my testing experience was
roughly enough to dip in and out of range without getting hit but not
enough to run all the way past a mob without getting hit. It can be
overriden via the blackboard, although currently no mob does this.
I _was_ testing this locally with no latency though so I guess we'll
listen out to see if miners start yelling.

## Why It's Good For The Game

The visible attack broadcast is very cool but its visibility made melee
combat with any mob that had it significantly easier to such a degree
that any mob with it on could not really be expected to do melee damage
to any character that wasn't suffering some kind of immobilisation
effect which was never really the intention.

Removing it also removes any additional handicap that was applied to
sapient versions of these mobs, which was never really necessary or
intended in the first place.

I did not remove the component entirely from the game for two reasons:
- Out of the hope that there is some use for it somewhere, because I
think it's cool, but more importantly:
- Because it's still being used by simple mob megafauna as a workaround
for a bug we couldn't figure out.

## Changelog

🆑
balance: Most mobs will now hesitate for a moment before attacking
rather than instantly hitting anything that enters melee range, to
better simulate human behaviour. Please report if this delay seems too
short, or too long.
balance: Most mobs which telegraphed their basic attacks on you now will
not do that
/🆑
2025-04-16 18:03:17 -07:00
Jacquerel 2c7cedcbf1 Mice can play synthesisers (#90610)
## About The Pull Request


![image](https://github.com/user-attachments/assets/9d4ce934-bb40-4b05-8d25-5bfb4998c3cd)
This PR allows mice to play synthesisers, which they will prioritise
over running away from people if they see one (but eating cheese is more
important than that).

## Why It's Good For The Game


![85786433-3946-4a94-a863-c12999082023_373x306](https://github.com/user-attachments/assets/f32c2ea3-6a85-4060-9bfb-1d8555feb35b)

## Changelog

🆑
add: Mice can play synthesisers
/🆑
2025-04-15 19:19:06 +02:00
Jacquerel b6a664be01 Makes some admin prompts more clear (#89579)
## About The Pull Request

I saw some admins complaining that the prompts for these input fields
were not very clear so I made them clearer.

## Why It's Good For The Game

Makes it more obvious what the thing you are doing will actually do.

## Changelog

🆑
spellcheck: Makes some VV input prompts clearer to read and use
/🆑
2025-03-12 16:41:41 -04:00
Jacquerel d96f38b044 Admin verb to apply mob random speech behaviour (#89382)
## About The Pull Request

Separate verb and PR from #89375 because this is something you'd apply
on top of a mob with existing behaviour, or one you've used the other
verb on.
This will probably conflict with my other PR but that's my problem.

This adds a shortcut for making mobs say/emote stuff randomly on a timer
from a list of things you have specified.
Doing this via VV is possible but sufficiently complicated that I don't
think anyone would ever bother.
As with the other PR you can optionally do this to mobs who already have
a client if you want them to randomly burp every so often or something.

I briefly flirted with the idea of replacing all
`/datum/ai_planning_subtree/random_speech` subtypes with blackboard ones
but... I think probably actually we save some memory _and_ sanity by not
doing that.
A bunch of mobs on totally different typepaths use the `/insect` subtype
for instance, and I don't think it would be an improvement to paste the
same four vars into all of their blackboards.

## Why It's Good For The Game

This one is frankly more niche than the other PR probably but it is
plausibly useful if you are setting up some kind of VV creature.
2025-03-12 16:01:50 -04:00
Jacquerel 380ce322a6 Apply AI Controller Admin Verb (#89375)
## About The Pull Request

Melbert asked me to make this and I thought it'd be relatively easy and
plausibly useful so I did.

This PR adds a feature to the VV menu for mobs which allows you to apply
and configure an AI controller from a list of templates.
It's not as versatile as coding one would be, but it should be able to
accomodate a lot of generic scenarios.

Some examples of basic stuff you can set it up to do:
- Give Ian a machine gun he will fire at nearby people while staying
within a specified min/max range.
- Have Poly fire brimstone beams on cooldown at whoever is nearby
(although she won't bother trying to line up cardinally).
- Assign a gorilla to be someone's personal bodyguard which will follow
them around and attack anyone who hurts them.

I have also made an executive decision to remove the restriction that
basic ai controllers can only be placed on basic mobs.
We've removed _most_ non-basic simple mobs from the game, and also have
more recently updated most AI behaviours to work agnostically of whether
they are assigned to a basic mob or not... which means that they'll
largely work on carbons.

Coincidentally, this feature makes sure to ask if you want an AI
controller to remain active on a mob which already has a client.
Assigning an active AI controller to a live player which forces their
character to automatically attempt to run away from whoever the last
person to attack them was is ~~not recommended behaviour because it's
largely untested~~ highly recommended behaviour because I think it's
very funny (makes it very hard to play though).

I'm gonna do another PR some time which cleans up `random_speech` so
it's configurable and then let you slap that on whoever as well.

## Why It's Good For The Game

Enables a greater level of admin abuse.

## Changelog

🆑
admin: Added easier tooling for admins to add or change the AI
controllers on mobs
/🆑
2025-03-12 15:45:46 -04:00
Jacquerel 3042b35e64 Makes some admin prompts more clear (#89579)
## About The Pull Request

I saw some admins complaining that the prompts for these input fields
were not very clear so I made them clearer.

## Why It's Good For The Game

Makes it more obvious what the thing you are doing will actually do.

## Changelog

🆑
spellcheck: Makes some VV input prompts clearer to read and use
/🆑
2025-02-21 13:44:13 -05:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
Jacquerel d7264ce0f3 Admin verb to apply mob random speech behaviour (#89382)
## About The Pull Request

Separate verb and PR from #89375 because this is something you'd apply
on top of a mob with existing behaviour, or one you've used the other
verb on.
This will probably conflict with my other PR but that's my problem.

This adds a shortcut for making mobs say/emote stuff randomly on a timer
from a list of things you have specified.
Doing this via VV is possible but sufficiently complicated that I don't
think anyone would ever bother.
As with the other PR you can optionally do this to mobs who already have
a client if you want them to randomly burp every so often or something.

I briefly flirted with the idea of replacing all
`/datum/ai_planning_subtree/random_speech` subtypes with blackboard ones
but... I think probably actually we save some memory _and_ sanity by not
doing that.
A bunch of mobs on totally different typepaths use the `/insect` subtype
for instance, and I don't think it would be an improvement to paste the
same four vars into all of their blackboards.

## Why It's Good For The Game

This one is frankly more niche than the other PR probably but it is
plausibly useful if you are setting up some kind of VV creature.
2025-02-14 14:06:27 -06:00
Jacquerel f1d3994c95 Apply AI Controller Admin Verb (#89375)
## About The Pull Request

Melbert asked me to make this and I thought it'd be relatively easy and
plausibly useful so I did.

This PR adds a feature to the VV menu for mobs which allows you to apply
and configure an AI controller from a list of templates.
It's not as versatile as coding one would be, but it should be able to
accomodate a lot of generic scenarios.

Some examples of basic stuff you can set it up to do:
- Give Ian a machine gun he will fire at nearby people while staying
within a specified min/max range.
- Have Poly fire brimstone beams on cooldown at whoever is nearby
(although she won't bother trying to line up cardinally).
- Assign a gorilla to be someone's personal bodyguard which will follow
them around and attack anyone who hurts them.

I have also made an executive decision to remove the restriction that
basic ai controllers can only be placed on basic mobs.
We've removed _most_ non-basic simple mobs from the game, and also have
more recently updated most AI behaviours to work agnostically of whether
they are assigned to a basic mob or not... which means that they'll
largely work on carbons.

Coincidentally, this feature makes sure to ask if you want an AI
controller to remain active on a mob which already has a client.
Assigning an active AI controller to a live player which forces their
character to automatically attempt to run away from whoever the last
person to attack them was is ~~not recommended behaviour because it's
largely untested~~ highly recommended behaviour because I think it's
very funny (makes it very hard to play though).

I'm gonna do another PR some time which cleans up `random_speech` so
it's configurable and then let you slap that on whoever as well.

## Why It's Good For The Game

Enables a greater level of admin abuse.

## Changelog

🆑
admin: Added easier tooling for admins to add or change the AI
controllers on mobs
/🆑
2025-02-12 17:09:48 -07:00
Jacquerel 08ad79e2da AI mobs won't suicide every time they ventcrawl (#89328)
## About The Pull Request

Some kind of refactor to how AI behaviours work kind of messed this one
up, all of its return values that ended the proc and stopped the suicide
timer were relying on a return value... from a proc called in a timer
that could never possibly get sent as the return value for the relevant
proc.
I fixed it to just call `finish_behaviour` instead.

## Changelog

🆑
fix: AI-controlled ventcrawling mobs (botanical spiderlings and legioned
monkeys) can once more do so without killing themselves shortly
afterwards.
/🆑
2025-02-05 19:00:12 +01:00
Jacquerel 940e2d31cf tgstation is back online and you are a horrible goose (#89204)
## About The Pull Request

Converts geese to basic mobs.
Nobody else did this one because two separate other developers have said
they started and then examining what the goose does made them feel
mildly ill, but I am stronger.

I will admit though I wasn't 100% committed to making it work exactly
the same way, I rewrote the entire system to use interfaces I like more
(read: I put all this shit in a status effect which means any mob can be
given the ability to vomit out everything in its contents) and if that
means the behaviour is only "inspired by" that didn't bother me that
much.

**Geese:**
- Wander randomly around.
- Peck people who attack them.
- Occasionally start pecking other nearby animals for absolutely no
reason.
- Eat any food they randomly wander within one tile of, but don't seek
it out further than that.
- Eat anything made of plastic that they randomly wander within one tile
of.
- Choke to death over 30 seconds if they eat anything made of plastic.
- Vomit out whatever it was that they choked on when they die.
- Honk (this is new).

The more famous subtype of goose is Birdboat. Birdboat is a unique goose
present on several maps with some additional behaviour.

**Birdboat:**
- Is chill and doesn't start pecking people for no reason.
- Is occasionally possessed by ghosts.
- Builds up an internal vomit-meter as he eats things. Moving around and
just sort of generally hanging will start rolling dice to find out when
Birdboat's tummy gets upset.
- May start vomiting instead of choking to death on plastic, thereby
saving his own life.
- Vomits out everything that he just ate while running around, making a
mess of the floor.
- Starts eating everything he just vomited out again.

Unlike regular geese who just eat your food and it's gone, Birdboat's
miraculous digestion preserves all of the food he eats so if he consumes
the entire kitchen counter it will eventually come back out again the
way it went in. Although you might not want to eat it any more.

The precise way in which this manifests may be slightly different, but
largely this is also what these animals did before.

Other stuff:

I noticed a bunch of find/set behaviours were not setting a search
range? I think that means they were never finding anything?
I did not actually test any of them to see if they were broken, but it's
possible that a bunch of broken AI behaviours like "climbing trees" may
now actually start triggering because they have a search radius greater
than an orange of 0.

I added "keep this in contents instead of deleting it" as a parameter
for generic eating and slapped it on the goldgrub, as it is used in two
places and may end up being used in more.

## Why It's Good For The Game

This kills off the last user of the `retaliate` subtype and makes our
list so so much closer to finish.
It's like... a couple of bots, a handful of oddballs (I'll probably
handle these soon), and then just the mining bosses and minibosses to
go.

If you give a human the vomit goose ability (now that I made it work on
any mob) they will eject all their organs and body parts via the mouth
until they die, if you don't do the brain or heart first you can vomit
your own head off.

## Changelog

🆑
refactor: Geese have been moved to the basic mob subsystem, please
report any unusual behaviour.
/🆑

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2025-01-27 14:54:34 +02:00
StaringGasMask bae82830f2 Fixes a few bugs with stargazer targeting and attacks (#89068)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Fixes #89060 and a few other inconsistencies that I think aren't
reported yet. In particular, these are:
- Ordering the Stargazer to attack a window, machinery, and essentially
anything that isn't a wall or person will result in refusal. This
behavior was different.
- The spell to remotely command the Stargazer doesn't work.
- The shift-hover radial menu is weirdly offset.

I'm still trying to figure out what makes the mob not attack windows
unlike before, so I'll set it as a draft until I fix it.

## Why It's Good For The Game

Summoning an elder god bound to your will would be even better if it was
actually bound to your will.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
fix: The Stargazer, a cosmic heretic's ascension, can be properly
commanded once more.
code: Basic mob pets can now target objects, or objects and walls by
using two new targeting strategies.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2025-01-23 23:07:59 +02:00
jimmyl 92a585cb3a new icebox ruin: outpost 31 + megafauna (technically???) (#88714)
## About The Pull Request
<details>
<summary> expand to spoil the fun of exploring something for yourself
</summary>

firstly, the new ruin: outpost 31
its layout is vaguely based off an official map of the Outpost 31 from
the Thing movie but i ran out of space halfway


![image](https://github.com/user-attachments/assets/6db1aa9f-40d3-4693-897b-01e32b3ee1d2)

the boss drops a keycard for the storage room that you cant get in
otherwise, containing its own special item, and other stuff probably
useful for crew
crusher loot: trophy that heals you on each hit

the ruin is guarded by like 3 flesh blobs, very resilient (and slow)
masses of flesh that deal 3 brute damage, not harmful in melee but WILL
attempt to grab and devour/assimilate you which is FAR more lethal



https://github.com/user-attachments/assets/542cc6d0-f4ee-4598-9677-a03170c6c1c3



Boss: The Thing (with creative liberties otherwise this thing would
instakill you if it was true to source material)
difficulty: medium apparently idk mining jesus beat it with 400ms or so
HP: 1800
It is a much higher ranking changeling than those infiltrating SS13
It has 3 phases, 600hp each. Depleting its phase health will turn it
invincible and it will heal back half in 10 seconds. In order to prevent
this, the two Molecular Accelerators must be overloaded by interacting
with them to blast the changeling with deadly scifi magic or whatever
they do, forcing it to shed its form further and go to the next phase.
Not necessary for phase 3 because it literally just dies then

it focuses mostly on meleeing you and making certain tiles impassable
for you with 1hp tendrils, all attacks are telegraphed so theres no dumb
instakills here

it alternates between aoe abilities and abilities 

melee behavior:
- if too far, charge at target (charges twice on phase 3)
- too close, shriek (unavailable in phase 1) (technically AOE but its
more like a melee ability you know??)
- otherwise just try to melee

Shriek: if the player is too close emit a confusing shriek that makes
them confused and drop items

aoe behavior (phase 2, 3 only):
1: Puts 4 tendrils in a line cardinally
2: Puts tendrils around itself
3. Puts a patch of tendrils around and under the target, 3x3 in phase 3
4. Phase 3 only - spits patches of acid into the air that hurt when
stepped on

_(crusher is hard ok)_


https://github.com/user-attachments/assets/cbb98209-d3f0-470d-b0e8-4e310c5b709c



unique megafauna loot for this boss is like 1 AI-Uplink brain
its like a BORIS module but for humans i think you can figure out what
that means
while in a human shell they cannot roll non-malf midrounds and cannot be
converted, and cannot be mindswapped
the human MUST have all robotic organs (minus tongue because its not in
the exosuit fab and that kinda sucks to get)
will undeploy if polymorphed



https://github.com/user-attachments/assets/abcc277a-995a-4fa7-b980-0549b6b7cf52



</details>

## Why It's Good For The Game

icebox is severely lacking in actual good ruins (fuck that one fountain
ruin)
i feel that the loot given by megafauna has been and still apparently is
exclusively to make the victor more powerful, which kinda sucks because
thats just powergaming???? the loot of this boss is more crewsided,
specifically aiding the AI in a VERY limited quantity (1), so its not
anything good for powergamers, good for crew if the AI is not rogue

## Changelog
🆑
add: outpost 31, the icebox ruin. Also its associated mobs, and
megafauna, and loot. Im not spoiling anything, find it yourself.
/🆑

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2025-01-23 18:33:05 +01:00
Jacquerel 2aeeed086f Basic Dark Wizards (#89147)
## About The Pull Request

Simple animal Dark Wizard => Basic mob Dark Wizard.
This mob is I think used in literally one ruin, and very occasionally
spawned in deathmatch.
They don't really do anything except shoot you with slowing projectiles
and hit you with sticks.

I gave them a version of blink with a longer cooldown that they use when
attacked in melee range purely to make them very marginally more
wizard-like, and they will also now try to back away from you while
shooting you instead of running towards you.

They will also retaliate against anyone who attacks them including as a
response to friendly fire from other Dark Wizards, because I think it is
funny if they have very little loyalty to each other and that's a fun
thing to trigger when you are playing Doom.

Finally, we have a component called "revenge ability" which is mostly a
standin for AI responses to getting attacked. I made all existing uses
of it turn off if you're controlled by a sapient player who can hit
those buttons themselves, because they can choose when they want to use
those abilities themselves.

## Why It's Good For The Game

The march of progress is almost complete

## Changelog

🆑
refactor: refactored some code
balance: Dark Wizards now teleport when attacked, but are more likely to
turn on their allies
/🆑
2025-01-22 20:50:07 -07:00
Ben10Omintrix 7d9386bdce Turtles (#87493)
## About The Pull Request
adds turtles to the game! but these aren't your typical turtles. 

![turtlestates](https://github.com/user-attachments/assets/b9d35a32-5f04-4255-bbac-d1ed57b2abb1)

these are flora-turtles, with giant trees growing on their shells. These
trees can emit fields which affects nearby hydroponic plants. Initially,
the trees start out as young buds, from there the tree can evolve into
different types depending on what you feed the turtle.

Feeding them pesticides causes the tree to blossom to be purple. this
tree's fields will help kill some pests and weeds in nearby plants.

Feeding them nutrients gives you the green tree, the fields will heal
nearby plants

Feeding them mutators like uranium or left 4 zed gives you the yellow
tree. the fields increase instability of plants

The turtle will emit these fields every once in a while, ONLY when its
feeling happy. therefore you'll have to pet it, clean it and feed it
every once in a while to keep it satisfied. You can view the turtle's
happiness by shift clicking it.


https://github.com/user-attachments/assets/a47136a1-06a1-419e-acc2-2f6f4468e296

The turtle only eats seeds. after eating a seed, itll process it and
spit out its corresponding fruit! (for example, feeding it an apple seed
gives you an apple). itll also sometimes playfully headbutt your legs
and it loves going around smelling the scent from nearby plants

you can get these turtles by fishing the hydroponics tray or by ordering
them through cargo.

## Why It's Good For The Game
adds a new fun way for botanists to take care of their plants. While
these turtles alone arent enough to fully replace plant dedicated
nutrients, they add small extra support.

## Changelog
🆑
add: adds flora-turtles. obtainable through cargo or by fishing from the
hydroponics tray
/🆑
2024-12-23 00:35:45 +01:00
MrMelbert 72491a5e41 Fix monkeys ignoring grabs while restrained/in crit (#88041)
## About The Pull Request

Fixes #84338

When handcuffed or crit, you are unable to resist even a passive grab,
you are truly helpless

Yet monkeys ignore this

They ignore this because the code handling above is on the client:
`/client/proc/Process_Grab()`

The ideal fix for this is to move it off the client, but that carries a
bunch of order of operations shenanigans so I'll leave that for a more
in depth refactor of this kinda stuff

In the meanwhile we can simply tell AI controllers not to move if
grabbed and incapacitated (barring stasis)

## Changelog

🆑 Melbert
fix: Monkeys no longer ignore basic rules such as "you can't escape a
passive grab if you're cuffed or in crit"
/🆑
2024-11-21 18:18:47 +01:00
Ben10Omintrix d2c8e10e26 Repairbots (#86084)
## About The Pull Request
adds repairbots to the game!

![repairbot](https://github.com/user-attachments/assets/8c492c7c-6c12-4095-89f6-cc97ae1edbc0)

this pr serves as a massive rework and buff to floorbots. i was a bit
sad that they dont get built much anymore so ive given them tons of more
utilities and uses.
Repairbots still inherit to place tiles and repair breaches. but they
can now rebuild walls, rebuild windows and repair structure and
machinery. Also Ive given them voicelines to add more character to them.
In short, they are very depressed with their job (however they express
their happy go lucky attitude when u emag them where they will start
deconstructing the station)

to demonstrate capabilities, here's a slightly sped up clip of some
repairbots patching up an area that was maxcapped 4 times:

https://github.com/user-attachments/assets/bddac3b0-1984-4571-85d3-c5283dd7c0de

When repairbots feel threatened, they will retract into their little
toolbox which u can pick up and hold in ur hand, either to conveniently
carry and plop them down at breached sites, or to bash skull with it

U can build them using a toolbox, proximity sensor, cyborg arm and a
conveyor belt

## Why It's Good For The Game
refactors floorbots and makes them alot more useful tools for engineers
to use


## Changelog
🆑
refactor: floorbots have been refactored, please report any bugs
add: adds repairbots to the game!
/🆑
2024-11-19 15:19:44 -05:00
Ben10Omintrix 8492ff7d69 slightly redoes how animals hunt for food (#87166)
## About The Pull Request
before, if u wanted to make ur animal hunt for food, u had to give them
the find food subtree, the attacking subtree, and had to edit their
targeting stratedgy to include items. this makes it so u only have to
give them just 1 subtree which will handle everything it needs to. also
makes it alot more customizable, u can now set a hunger cooldown for ur
animals, and cute emotes for them to play after eating food

## Why It's Good For The Game
makes it more convenient for future devs to include food hunting
behaviors to their animals, while also making it more customizable

## Changelog
🆑
code: animals' food hunting behavior has been refactored, please report
any bugs
/🆑
2024-11-16 00:42:55 -08:00
Ben10Omintrix 454f1ae114 fixes meteor heart AI runtimes (#87813)
## About The Pull Request
fixes a few runtimes with the meteor heart's sleep behavior, mostly
because it was trying to add an element to a blackboard key list,
eventhough said key wasnt a list.

## Why It's Good For The Game
fixes meteor heart AI runtimes
2024-11-13 12:39:48 -06:00
Ben10Omintrix 42d04dc857 [no gbp] fixes penguin ai runtimes (#87543) 2024-10-30 15:22:52 +01:00
Ben10Omintrix f698cea0f4 fixes ai controllers resetting their targets post do_afters (#87426)
## About The Pull Request
mobs would disregard you for a bit if they went through a do_after, such
as goldgrub digging or medbots healing. this fixes that

## Why It's Good For The Game
fixes ai controllers resetting their targets post do_afters

## Changelog
🆑
fix: fixes ai controllers resetting their targets post do_afters
/🆑
2024-10-25 01:49:00 +02:00
Ben10Omintrix 3905d5ec49 penguins can now fish (and fishing ai expansions) (#87267)
## About The Pull Request
penguins are now able to fish! they will drill water holes in ice using
their beaks and catch fish from there. also expands the fishing ai a bit
to make it a bit more customizable. animals will now fish only when
they're hungry, otherwise there will be a cooldown between every fishing
attempt, defaulted to 45 seconds but can be edited depending on the mob.

## Why It's Good For The Game
makes the fishing behavior alot more generic, before it was only
compatible with lobstrosities but this makes it so it can be applied to
any mob. also reduces lobstrosity fishing frequency by a tad bit as they
were too spammy before.

## Changelog
🆑
add: penguins will now fish from water holes
/🆑
2024-10-24 17:06:00 +02:00
Ben10Omintrix a99a1e6383 slightly redoes how animals hunt for food (#87166)
## About The Pull Request
before, if u wanted to make ur animal hunt for food, u had to give them
the find food subtree, the attacking subtree, and had to edit their
targeting stratedgy to include items. this makes it so u only have to
give them just 1 subtree which will handle everything it needs to. also
makes it alot more customizable, u can now set a hunger cooldown for ur
animals, and cute emotes for them to play after eating food

## Why It's Good For The Game
makes it more convenient for future devs to include food hunting
behaviors to their animals, while also making it more customizable

## Changelog
🆑
code: animals' food hunting behavior has been refactored, please report
any bugs
/🆑
2024-10-15 13:18:37 +13:00
Ben10Omintrix 6897f33767 AI controllers interactions refactor (#86492)
## About The Pull Request
refactors all behaviors to work through clicking. also removes some now
redundant behaviors. in the future ill try to generalize more of these
behaviors

## Why It's Good For The Game
makes AI controllers work through clicks which may help with swing
combat implementation

## Changelog
🆑
refactor: basic mob AI interactions has been refactored. please report
any bugs
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-10-03 03:44:41 +02:00