[MIRROR] [NO-GBP] Warns viro of radioactive resonance absence [MDB IGNORE] (#22724)

* [NO-GBP] Warns viro of radioactive resonance absence (#77119)

There was no in-game way for the viro to know the radioactive resonance
sympton couldn't be rolled (during rad nebula)

Now it sends a fax to the virologist, or if there's no fax it sends a
supplypod straight at the virologist with a fax machine and then sends
the fax

🆑
qol: The virologist is warned when radioactive resonance cannot be
obtained
/🆑

* [NO-GBP] Warns viro of radioactive resonance absence

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-07-30 20:43:06 -04:00
committed by nevimer
co-authored by Time-Green
parent c4e083f561
commit 5e8bb32248
3 changed files with 38 additions and 1 deletions
@@ -572,6 +572,10 @@
//if engineering isnt valid, just send it to the bridge
send_supply_pod_to_area(supply_pack_shielding.generate(null), /area/station/command/bridge, /obj/structure/closet/supplypod/centcompod)
// Let the viro know resistence is futile
send_fax_to_area(new /obj/item/paper/fluff/radiation_nebula_virologist(), /area/station/medical/virology, "NT Virology Department", \
force = TRUE, force_pod_type = /obj/structure/closet/supplypod/centcompod)
//Disables radstorms, they don't really make sense since we already have the nebula causing storms
var/datum/round_event_control/modified_event = locate(/datum/round_event_control/radiation_storm) in SSevents.control
modified_event.weight = 0
+9 -1
View File
@@ -119,7 +119,7 @@
..()
///Small explanation for engineering on how to set-up the radioactive nebula shielding
/// Small explanation for engineering on how to set-up the radioactive nebula shielding
/obj/item/paper/fluff/radiation_nebula
name = "radioactive nebula shielding"
default_raw_text = {"EXTREME IMPORTANCE!!!! <br>
@@ -127,3 +127,11 @@
Shielding units passively generate tritium, so make sure to properly ventilate/isolate the area before setting up a shielding unit!
More circuit boards can be ordered through cargo. Consider setting up auxillary shielding units in-case of destruction, power loss or sabotage.
"}
/// Warns the viro that they can't use radioactive resonance
/obj/item/paper/fluff/radiation_nebula_virologist
name = "radioactive resonance"
default_raw_text = {"EXTREME IMPORTANCE!!!! <br>
During routine bloodscreening on employees working in the nebula, we found no traces of the sympton called 'Radioactive Resonance'. <br>
Something inside the nebula is interfering with it, be wary of a more shallow viral genepool.
"}
+25
View File
@@ -519,3 +519,28 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
return .
/// Sends a fax to a fax machine in an area! fax_area is a type, where all subtypes are also queried. If multiple machines, one is randomly picked
/// If force is TRUE, we send a droppod with a fax machine and fax the message to that fax machine
/proc/send_fax_to_area(obj/item/fax_item, area_type, sender, force = FALSE, force_pod_type)
var/list/fax_machines = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax)
var/list/valid_fax_machines = list()
for(var/obj/machinery/fax as anything in fax_machines) //get valid fax machines
var/area/fax_area = get_area(fax)
if(istype(fax_area, area_type))
valid_fax_machines += fax
// Pick a fax machine and send the fax
if(valid_fax_machines.len)
var/obj/machinery/fax/target_fax = pick(valid_fax_machines)
target_fax.receive(fax_item, sender)
else if(force) //no fax machines but we really gotte send? SEND A FAX MACHINE
var/obj/machinery/fax/new_fax_machine = new ()
send_supply_pod_to_area(new_fax_machine, area_type, force_pod_type)
addtimer(CALLBACK(new_fax_machine, TYPE_PROC_REF(/obj/machinery/fax, receive), fax_item, sender), 10 SECONDS)
else
return FALSE
return TRUE