mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 11:36:24 +01:00
[MIRROR] Fixes former blobs being able to potentially respawn when having their mind transferred to a new body [MDB IGNORE] (#22915)
* Fixes former blobs being able to potentially respawn when having their mind transferred to a new body (#77242) ## About The Pull Request This PR fixes an oversight allowing blobs to "respawn" after having their mind placed in a new body, this is caused by the blob antag datum being left present in the mind after the blob is killed. ## Why It's Good For The Game This is an upstream PR to deal with an issue that occurs due to a downstream mechanic https://github.com/Skyrat-SS13/Skyrat-tg/issues/22772. That being said, in any kind of scenario where we don't make a new mind, this glitch can occur and end up creating issues. here's a example of me getting the glitch to work by ctrl+shift+clicking my ghost after they were killed as a blob  ## Changelog 🆑 fix: former blobs are no longer able to respawn after having their mind transferred to a new body. /🆑 * Fixes former blobs being able to potentially respawn when having their mind transferred to a new body --------- Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
var/datum/action/innate/blobpop/pop_action
|
||||
/// Initial points for a human blob
|
||||
var/starting_points_human_blob = OVERMIND_STARTING_POINTS
|
||||
/// Has the blob already popped inside of the round? This is here to prevent blobs from "respawning"
|
||||
var/has_already_popped = FALSE
|
||||
|
||||
/datum/antagonist/blob/roundend_report()
|
||||
var/basic_report = ..()
|
||||
@@ -26,6 +28,8 @@
|
||||
owner.announce_objectives()
|
||||
if(!isovermind(owner.current))
|
||||
to_chat(owner.current, span_notice("Use the pop ability to place your blob core! It is recommended you do this away from anyone else, as you'll be taking on the entire crew!"))
|
||||
else
|
||||
has_already_popped = TRUE
|
||||
|
||||
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/blobalert.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)
|
||||
|
||||
@@ -74,7 +78,7 @@
|
||||
objectives += main
|
||||
|
||||
/datum/antagonist/blob/apply_innate_effects(mob/living/mob_override)
|
||||
if(isovermind(owner.current))
|
||||
if(isovermind(owner.current) || has_already_popped)
|
||||
return FALSE
|
||||
if(!pop_action)
|
||||
pop_action = new
|
||||
@@ -131,6 +135,7 @@
|
||||
old_body.gib()
|
||||
blob_cam.place_blob_core(placement_override, pop_override = TRUE)
|
||||
playsound(get_turf(blob_cam), 'sound/ambience/antag/blobalert.ogg', 50, FALSE)
|
||||
blobtag.has_already_popped = TRUE
|
||||
|
||||
notify_ghosts(
|
||||
"A Blob host has burst in [get_area_name(blob_cam.blob_core)]",
|
||||
|
||||
Reference in New Issue
Block a user