diff --git a/code/game/events/Events/ElectricalStorm.dm b/code/game/events/Events/ElectricalStorm.dm index dbaf669326d..5a7e01fe710 100644 --- a/code/game/events/Events/ElectricalStorm.dm +++ b/code/game/events/Events/ElectricalStorm.dm @@ -4,6 +4,9 @@ list/obj/machinery/light/Lights = list( ) list/obj/machinery/light/APCs = list( ) list/obj/machinery/light/Doors = list( ) + talk_out = 0 + has_talked = 0 + SafeFreq = 0 Announce() Lifetime = rand(90, 300) @@ -43,11 +46,10 @@ if(Door.z == 1) Doors += Door - sleep(rand(70,180)) + talk_out = rand(40,70) var/picked = 0 var/list/SafeTemp = list() - var/SafeFreq = 0 if(UnscrambledFrequencies["1459"]) SafeFreq = 1459 picked = 1 @@ -58,8 +60,6 @@ if(SafeFreq < 1489 && SafeFreq > 1441) picked = 1 - command_alert("The radio frequency [SafeFreq/10] has been identified as stable despite the interference.", "Station Central Computer System") - Tick() for(var/x = 0; x < 3; x++) if (prob(30)) @@ -68,6 +68,9 @@ DisruptAPC() if (prob(10)) DisableDoor() + if(talk_out <= ActiveFor && has_talked == 0) + command_alert("The radio frequency [SafeFreq/10] has been identified as stable despite the interference.", "Station Central Computer System") + has_talked = 1 Die() diff --git a/code/game/events/Events/VirusEpidemic.dm b/code/game/events/Events/VirusEpidemic.dm index cb7ad5760ae..9825853a149 100644 --- a/code/game/events/Events/VirusEpidemic.dm +++ b/code/game/events/Events/VirusEpidemic.dm @@ -5,7 +5,7 @@ virus2 = 0 Announce() - if((prob(66) && !virus) || virus2) + if(!virus) for(var/mob/living/carbon/human/H in world) if((H.virus2) || (H.stat == 2) || prob(30)) continue diff --git a/code/game/events/EventsMain.dm b/code/game/events/EventsMain.dm index 045d17c7484..bf32893d95f 100644 --- a/code/game/events/EventsMain.dm +++ b/code/game/events/EventsMain.dm @@ -6,7 +6,7 @@ */ -var/list/DisallowedEvents = list(/datum/event/spaceninja, /datum/event/prisonbreak, /datum/event/immovablerod) +var/list/DisallowedEvents = list(/datum/event/spaceninja, /datum/event/prisonbreak, /datum/event/immovablerod, /datum/event/gravitationalanomaly) var/list/EventTypes = typesof(/datum/event) - /datum/event - DisallowedEvents var/datum/event/ActiveEvent = null var/datum/event/LongTermEvent = null @@ -17,6 +17,7 @@ var/datum/event/LongTermEvent = null if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station) EventTypes |= /datum/event/spaceninja var/Type = pick(EventTypes) + EventTypes -= Type ActiveEvent = new Type() ActiveEvent.Announce() if (!ActiveEvent) @@ -39,11 +40,8 @@ client/proc/Force_Event_admin(Type as null|anything in typesof(/datum/event)) src << "There is an active event." return if(istype(Type,/datum/event/viralinfection)) - var/answer = alert("Do you want this to be a random disease or do you have something in mind?",,"Virus2","Random","Choose") - if(answer=="Random") - Force_Event(/datum/event/viralinfection) - message_admins("[key_name_admin(usr)] has triggered a virus outbreak", 1) - else if(answer == "Choose") + var/answer = alert("Do you want this to be a random disease or do you have something in mind?",,"Virus2","Choose") + if(answer == "Choose") var/list/viruses = list("fake gbs","gbs","magnitis","wizarditis",/*"beesease",*/"brain rot","cold","retrovirus","flu","pierrot's throat","rhumba beat") var/V = input("Choose the virus to spread", "BIOHAZARD") in viruses Force_Event(/datum/event/viralinfection, V) @@ -66,10 +64,6 @@ client/proc/Force_Event_admin(Type as null|anything in typesof(/datum/event)) var/datum/event/viralinfection/V = ActiveEvent V.virus = args ActiveEvent = V - else if(istype(ActiveEvent,/datum/event/viralinfection) && args && args == "virus2") - var/datum/event/viralinfection/V = ActiveEvent - V.virus2 = 1 - ActiveEvent = V ActiveEvent.Announce() if (!ActiveEvent) return diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index c334b3e7c52..f3fbb98ebf1 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -118,7 +118,7 @@ var/global/datum/controller/gameticker/ticker spawn(0) while(1) - sleep(5000+rand(4000,7000)) + sleep(5000+rand(6000,9000)) SpawnEvent() //Start master_controller.process() diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/radio/radio.dm index ee3574af44b..5891ea2b9ea 100644 --- a/code/game/objects/radio/radio.dm +++ b/code/game/objects/radio/radio.dm @@ -231,9 +231,12 @@ var/list/heard_voice = list() // voice message var/list/heard_garbled = list() // garbled message var/turf/cl = get_turf(M) + var/zlev = 25 for (var/mob/R in receive) var/turf/gl = get_turf(R) + if(zlev == 25 && !(scrambleoverride || scramble) && (gl.z == cl.z) || !istype(src, /obj/item/device/radio/headset)) + zlev = 75 if (R.client && R.client.STFU_radio) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. continue if (R.say_understands(M) && ((gl.z == cl.z) || !istype(src, /obj/item/device/radio/headset))) @@ -357,7 +360,7 @@ R.show_message(rendered, 2) if (length(heard_garbled)) - quotedmsg = M.say_quote(stars(message)) + quotedmsg = M.say_quote(stars(message, zlev)) var/rendered = "[part_a]Unknown[part_b][quotedmsg][part_c]" for (var/mob/R in heard_garbled)