From 35bf0648ae838d16885fa8f6459fcd50e88a2210 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 20 Feb 2013 23:05:48 +0100 Subject: [PATCH] Fixes events being broken. The proc to get active playercounts was utterly broken, which led to there only being events that needed no specific requirements. Fixed, and made events more common(the only reason people were pissed about so many events was that only the annoying ones would spawn ever). --- code/modules/events/event_dynamic.dm | 65 ++++++++++++++++------------ code/modules/events/event_manager.dm | 4 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 731cc56551..4366293cd5 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -73,6 +73,15 @@ if(!sent_ninja_to_station && toggle_space_ninja) possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5) + // Debug code below here, very useful for testing so don't delete please. + /*var/debug_message = "Firing random event. " + for(var/V in active_with_role) + debug_message += "#[V]:[active_with_role[V]] " + debug_message += "||| " + for(var/V in possibleEvents) + debug_message += "[V]:[possibleEvents[V]]" + message_admins(debug_message)*/ + var/picked_event = pickweight(possibleEvents) if(!picked_event) return @@ -160,32 +169,32 @@ for(var/mob/M in player_list) if(!M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive continue - switch(role) - if("Engineer") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module") - active_with_role["Engineer"]++ - if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer")) - active_with_role["Engineer"]++ - if("Medical") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module") - active_with_role["Medical"]++ - if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor")) - active_with_role["Medical"]++ - if("Security") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module") - active_with_role["Security"]++ - if(M.mind.assigned_role in security_positions) - active_with_role["Security"]++ - if("Scientist") - if(M.mind.assigned_role in list("Research Director", "Scientist")) - active_with_role["Scientist"]++ - if("AI") - if(M.mind.assigned_role == "AI") - active_with_role["AI"]++ - if("Cyborg") - if(M.mind.assigned_role == "Cyborg") - active_with_role["Cyborg"]++ - if("Janitor") - if(M.mind.assigned_role == "Janitor") - active_with_role["Janitor"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module") + active_with_role["Engineer"]++ + if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer")) + active_with_role["Engineer"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module") + active_with_role["Medical"]++ + if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor")) + active_with_role["Medical"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module") + active_with_role["Security"]++ + if(M.mind.assigned_role in security_positions) + active_with_role["Security"]++ + + if(M.mind.assigned_role in list("Research Director", "Scientist")) + active_with_role["Scientist"]++ + + if(M.mind.assigned_role == "AI") + active_with_role["AI"]++ + + if(M.mind.assigned_role == "Cyborg") + active_with_role["Cyborg"]++ + + if(M.mind.assigned_role == "Janitor") + active_with_role["Janitor"]++ + return active_with_role diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 855e4d969b..8cc24df656 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 20000 //20 minutes -var/eventTimeUpper = 45000 //45 minutes +var/eventTimeLower = 15000 //15 minutes +var/eventTimeUpper = 30000 //30 minutes var/scheduledEvent = null