Fixes runtimes caused by get_atom_on_turf and reverts an unintentional balance change to stabilized crossbreeds (#90500)

## About The Pull Request

get_atom_on_turf would return the last movable in chain, even if it was
passed a type, which is not the behavior most people would expect and
thus had led to errors in multiple other segments of code. Additionally,
#90436 also has unintentionally made stabilized crossbreeds work
regardless of their storage depth which was an intentional limiter -
this restores said behavior.

- Closes #90498
- Closes #90497

## Why It's Good For The Game

Runtimes bad, and so are unintentional change to game's balance. 

## Changelog
🆑
fix: Fixed runtimes caused by stabilized crossbreeds
fix: Fixed an unintentional buff to stabilized crossbreeds, they now
once again need to be put in your backpack or pockets.
/🆑
This commit is contained in:
SmArtKar
2025-04-09 21:34:06 +02:00
committed by GitHub
parent cf402a2b98
commit 7a6e8e08ab
6 changed files with 30 additions and 9 deletions
@@ -76,7 +76,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
to_chat(target, span_warning("You aren't able to activate \the [src] anymore!"))
// Has the user thrown it away or otherwise disposed of it such that it's no longer in their hands or in some storage connected to them?
if(!(get_atom_on_turf(src, /mob) == user))
if(get_atom_on_turf(src, /mob) != user)
if(user == target)
to_chat(user, span_warning("\The [src] is no longer in your possession!"))
else