From 8d3735f2977d0d48dd7cf487906cc5c6e807c0aa Mon Sep 17 00:00:00 2001 From: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:05:17 -0800 Subject: [PATCH] Blob Fake Announcements are now followed by a clarification 60 to 180 seconds later. (#928) Draft because untested. ## About The Pull Request Blob Fake Announcements are now followed by a clarification 20 to 40 seconds later. ## Why It's Good For The Game Prevents issues of Dynamic fucking up and putting everyone on red alert status for no real reason (fucking over antags). ## Changelog :cl: BurgerBB balance: Blob Fake Announcements are now followed by a clarification 60 to 180 seconds later. /:cl: --------- Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com> --- .../code/modules/events/ghost_role/blob.dm | 39 +++++++++++++++++++ tgstation.dme | 1 + 2 files changed, 40 insertions(+) create mode 100644 modular_zubbers/code/modules/events/ghost_role/blob.dm diff --git a/modular_zubbers/code/modules/events/ghost_role/blob.dm b/modular_zubbers/code/modules/events/ghost_role/blob.dm new file mode 100644 index 00000000000..85120126828 --- /dev/null +++ b/modular_zubbers/code/modules/events/ghost_role/blob.dm @@ -0,0 +1,39 @@ + +/datum/round_event/ghost_role/blob/announce(fake) + . = ..() + if(fake) + var/unlucky_victim = "your mother" //debug text that should never trigger but should tell coders that something went wrong without breaking immersion + var/unlucky_victim_fatty_score = 0 + //Get the fattest person + for(var/mob/living/carbon/human/possible_fatty as anything in GLOB.human_list) + + if(!possible_fatty.mind) + continue + + if(possible_fatty.stat == DEAD) + continue //Too mean + + if(possible_fatty.name != possible_fatty.real_name) + continue //Not possible to pick up on sensors. + + var/turf/possible_fatty_turf = get_turf(possible_fatty) + + if(!possible_fatty_turf || !is_station_level(possible_fatty_turf.z)) + continue + + var/possible_fatty_score = possible_fatty.nutrition + if(possible_fatty.has_quirk(/datum/quirk/overweight)) + possible_fatty_score = possible_fatty_score * 1.5 + 1000 + + if(possible_fatty_score > unlucky_victim_fatty_score) + unlucky_victim = "[possible_fatty]" //We don't use .name here because we want "The" to be affixed to it if needed. + unlucky_victim_fatty_score = possible_fatty_score + + addtimer(CALLBACK(src,PROC_REF(lose_some_weight_fatty),unlucky_victim),rand(60 SECONDS,180 SECONDS)) + +/datum/round_event/ghost_role/blob/proc/lose_some_weight_fatty(victim) + priority_announce( + "It appears that the level 5 biohazard aboard [station_name()] was a false alarm, as our sensors appeared to have mistakenly labeled [victim] as a level 5 biohazard. \ + All crewmembers are reminded to practice healthy eating habbits as part of Nanotrasen's Safe and Healthy Eating program.", + "Biohazard Alert" + ) diff --git a/tgstation.dme b/tgstation.dme index c0db095e0e5..8cccfd92fc9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8271,6 +8271,7 @@ #include "modular_zubbers\code\modules\dynamic\midround_rulesets.dm" #include "modular_zubbers\code\modules\emotes\scream_datums.dm" #include "modular_zubbers\code\modules\emotes\species_screams.dm" +#include "modular_zubbers\code\modules\events\ghost_role\blob.dm" #include "modular_zubbers\code\modules\experisci\experiment\types\scanning_fish.dm" #include "modular_zubbers\code\modules\fishing\fishing_minigame.dm" #include "modular_zubbers\code\modules\fluff\flora\ash_flora.dm"