mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-28 15:47:15 +01:00
Fixes Gullion fish suicide (#94669)
## About The Pull Request This PR makes the "Gullion" fish suicide work as originally intended, meaning that if used in an environment with Oxygen it will petrify you permanently. This previously did not work because it was using an overcomplicated check; `check_gases` looks for a list of gases within specified bounds and returns the presence of unlisted gases (like Nitrogen which is basically everywhere you would expect Oxygen to be) as a failure state. We actually only care if there is a nonzero amount of oxygen present in our tile, which we can check much more simply. Also previously we never technically kill the mob, only left it permanently alive and petrified. This meant that via some pre-preparation you could teleport yourself out of the statue and then... be walking around with the suicide flag enabled while still alive? This seemed non-ideal and I figure that despite the vibes of "being a living statue that cannot do anything except scream silently in your head" is very cool, probably the desired outcome from players doing this is to die. So now it kills you. This suicide technically annihilates all of the objects you are wearing, because smashing the statue deletes everything upon your person. I guess I could have added a flag that unpetrifies all of the items you are wearing on death but the whole thing collapsing into dust (as it does now) is more satisfying... I reckon it's probably fine given that this fish is only caught from fishing inside Heretic rifts. ## Changelog 🆑 fix: Killing yourself with a Gullion fish in an oxygenated environment will correctly turn you into a statue fix: Killing yourself with a Gullion fish will kill you rather than leaving you as a living statue that can't do anything and forcing you to Ghost manually /🆑
This commit is contained in:
@@ -396,12 +396,13 @@
|
||||
visible_message(span_suicide("[user] swallows [src] whole! It looks like they're trying to commit suicide!"))
|
||||
forceMove(user)
|
||||
var/datum/gas_mixture/environment = user.loc.return_air()
|
||||
var/oxygen_in_air = check_gases(environment.gases, list(/datum/gas/oxygen))
|
||||
var/oxygen_in_air = locate(/datum/gas/oxygen) in environment.gases
|
||||
if(!oxygen_in_air || (status == FISH_DEAD))
|
||||
visible_message(span_suicide("[user] chokes and dies! (Wait, from the fish or from lack of air?)"))
|
||||
return OXYLOSS
|
||||
|
||||
user.petrify(statue_timer = INFINITY)
|
||||
user.death()
|
||||
visible_message(span_suicide("[user]'s skin turns into quartz upon contact with the oxygen in the air!'"))
|
||||
qdel(src)
|
||||
return MANUAL_SUICIDE
|
||||
|
||||
Reference in New Issue
Block a user