From 799116095c283b65bfce9f61deedee63403fcb98 Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Thu, 30 Mar 2017 17:46:48 -0400 Subject: [PATCH 1/2] Improves false events --- code/modules/events/false_alarm.dm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/code/modules/events/false_alarm.dm b/code/modules/events/false_alarm.dm index 3fba86ca377..a411197b01b 100644 --- a/code/modules/events/false_alarm.dm +++ b/code/modules/events/false_alarm.dm @@ -4,25 +4,19 @@ weight = 20 max_occurrences = 5 +/datum/round_event_control/canSpawnEvent(players_amt, gamemode) + return ..() && length(gather_false_events()) + /datum/round_event/falsealarm announceWhen = 0 endWhen = 1 /datum/round_event/falsealarm/announce() - var/list/events_list = list() var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) var/gamemode = ticker.mode.config_tag - for(var/datum/round_event_control/E in SSevent.control) - if(!E.canSpawnEvent(players_amt, gamemode)) - continue - - var/datum/round_event/event = E.typepath - if(initial(event.announceWhen) <= 0) - continue - events_list += E - + var/events_list = gather_false_events() var/datum/round_event_control/event_control = pick(events_list) if(event_control) var/datum/round_event/Event = new event_control.typepath() @@ -30,4 +24,13 @@ Event.kill() //do not process this event - no starts, no ticks, no ends Event.announce() //just announce it like it's happening +/proc/gather_false_events() + . = list() + for(var/datum/round_event_control/E in SSevent.control) + if(!E.canSpawnEvent(players_amt, gamemode)) + continue + var/datum/round_event/event = E.typepath + if(initial(event.announceWhen) <= 0) + continue + . += E From d3b117de0e945185bbfba1049998e662addfacc4 Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Thu, 30 Mar 2017 17:53:11 -0400 Subject: [PATCH 2/2] Whoops --- code/modules/events/false_alarm.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/events/false_alarm.dm b/code/modules/events/false_alarm.dm index a411197b01b..7441766a83f 100644 --- a/code/modules/events/false_alarm.dm +++ b/code/modules/events/false_alarm.dm @@ -12,11 +12,10 @@ endWhen = 1 /datum/round_event/falsealarm/announce() - var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) var/gamemode = ticker.mode.config_tag - var/events_list = gather_false_events() + var/events_list = gather_false_events(players_amt, gamemode) var/datum/round_event_control/event_control = pick(events_list) if(event_control) var/datum/round_event/Event = new event_control.typepath() @@ -24,7 +23,7 @@ Event.kill() //do not process this event - no starts, no ticks, no ends Event.announce() //just announce it like it's happening -/proc/gather_false_events() +/proc/gather_false_events(players_amt, gamemode) . = list() for(var/datum/round_event_control/E in SSevent.control) if(!E.canSpawnEvent(players_amt, gamemode))