>datum/event and datum/event_control were renamed to datum/round_event and datum/round_event_control. This is because datum/event was already used by a different/more-general event queue system (used primarily on mechas)

Removed overriding of event values via feeding in an associative list into datum/round_event/New(). Instead you can do basic initializations (i.e. feed it constants) by doing new /datum/round_event{variablename=5;}(). This method is handled well by the compiler (it's the same method the maps use), so it will detect unrecognized variablenames etc.
More complex initializations for post setup() stuff can be done by accessing variables directly Event.variablename = whatever;
round_events now have a processing variable, which effectively pauses them.
This commit is contained in:
carnie
2013-04-08 07:42:46 +01:00
parent 2c3a67ae7e
commit 6a98fc89d0
32 changed files with 218 additions and 218 deletions
+30 -28
View File
@@ -1614,11 +1614,7 @@
else if(href_list["secretsfun"])
if(!check_rights(R_FUN)) return
var/list/overrides = list()
if(alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No") == "No")
overrides["announceWhen"] = -1
var/datum/round_event/E
var/ok = 0
switch(href_list["secretsfun"])
if("monkey")
@@ -1647,7 +1643,7 @@
feedback_add_details("admin_secrets_fun_used","TriAI")
if("gravity")
alert("WIP - event unavailable")
/* new /datum/event/weightless(overrides)
/* E = new /datum/round_event/weightless()
log_admin("[key_name(usr)] triggered a gravity-failure event.", 1)
message_admins("\blue [key_name_admin(usr)] triggered a gravity-failure event.", 1)
feedback_inc("admin_secrets_fun_used",1)
@@ -1796,44 +1792,44 @@
if("wave")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","MW")
new /datum/event/meteor_wave(overrides)
E = new /datum/round_event/meteor_wave()
if("gravanomalies")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","GA")
new /datum/event/gravitational_anomaly(overrides)
E = new /datum/round_event/gravitational_anomaly()
if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","STA")
new /datum/event/wormholes(overrides)
E = new /datum/round_event/wormholes()
if("goblob")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","BL")
message_admins("[key_name_admin(usr)] has spawned blob", 1)
new /datum/event/blob(overrides)
E = new /datum/round_event/blob()
if("aliens")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","AL")
message_admins("[key_name_admin(usr)] has spawned aliens", 1)
new /datum/event/alien_infestation(overrides)
E = new /datum/round_event/alien_infestation()
if("alien_silent") //replaces the spawn_xeno verb
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ALS")
create_xeno()
if("spiders")
new /datum/event/spider_infestation(overrides)
E = new /datum/round_event/spider_infestation()
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","SL")
message_admins("[key_name_admin(usr)] has spawned spiders", 1)
if("bluespaceanomaly")
new /datum/event/bluespace_anomaly(overrides)
E = new /datum/round_event/bluespace_anomaly()
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","BA")
message_admins("[key_name_admin(usr)] has triggered a bluespace anomaly", 1)
if("comms_blackout")
new /datum/event/communications_blackout(overrides)
E = new /datum/round_event/communications_blackout()
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","CB")
message_admins("[key_name_admin(usr)] triggered a communications blackout.", 1)
@@ -1841,9 +1837,9 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","SN")
message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
new /datum/event/ninja(list(overrides))
E = new /datum/round_event/ninja()
if("carp")
new /datum/event/carp_migration(overrides)
E = new /datum/round_event/carp_migration()
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","C")
message_admins("[key_name_admin(usr)] has spawned carp.", 1)
@@ -1851,29 +1847,27 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","R")
message_admins("[key_name_admin(usr)] has has irradiated the station", 1)
new /datum/event/radiation_storm(overrides)
E = new /datum/round_event/radiation_storm()
if("immovable")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","IR")
message_admins("[key_name_admin(usr)] has sent an immovable rod to the station", 1)
new /datum/event/immovable_rod(overrides)
E = new /datum/round_event/immovable_rod()
if("prison_break")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","PB")
message_admins("[key_name_admin(usr)] has allowed a prison break", 1)
new /datum/event/prison_break(overrides)
E = new /datum/round_event/prison_break()
if("lightsout")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","LO")
message_admins("[key_name_admin(usr)] has broke a lot of lights", 1)
overrides["lightsoutAmount"]=2
new /datum/event/electrical_storm(overrides)
E = new /datum/round_event/electrical_storm{lightsoutAmount=2}()
if("blackout")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","BO")
message_admins("[key_name_admin(usr)] broke all lights", 1)
overrides["lightsoutAmount"]=0
new /datum/event/electrical_storm(overrides)
E = new /datum/round_event/electrical_storm{lightsoutAmount=0}()
if("whiteout")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","WO")
@@ -1955,10 +1949,12 @@
if("Make Your Own")
AdminCreateVirus(usr.client)
if("Random")
new /datum/event/disease_outbreak(overrides)
E = new /datum/round_event/disease_outbreak()
if("Choose")
overrides["virus_type"] = input("Choose the virus to spread", "BIOHAZARD") as null|anything in typesof(/datum/disease)
new /datum/event/disease_outbreak(overrides)
var/virus = input("Choose the virus to spread", "BIOHAZARD") as null|anything in typesof(/datum/disease)
E = new /datum/round_event/disease_outbreak{}()
var/datum/round_event/disease_outbreak/DO = E
DO.virus_type = virus
if("retardify")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","RET")
@@ -1986,17 +1982,23 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","I")
message_admins("[key_name_admin(usr)] triggered an ion storm")
new /datum/event/ion_storm(overrides)
E = new /datum/round_event/ion_storm()
if("spacevines")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","K")
message_admins("[key_name_admin(usr)] has spawned spacevines", 1)
new /datum/event/spacevine(overrides)
E = new /datum/round_event/spacevine()
if("onlyone")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","OO")
usr.client.only_one()
// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
if(E)
E.processing = 0
if(E.announceWhen>0)
if(alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No") == "No")
E.announceWhen = -1
E.processing = 1
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if (ok)
+2 -2
View File
@@ -306,11 +306,11 @@ client/proc/one_click_antag()
/datum/admins/proc/makeAliens()
new /datum/event/alien_infestation(list("spawncount"=3))
new /datum/round_event/alien_infestation{spawncount=3}()
return 1
/datum/admins/proc/makeSpaceNinja()
new /datum/event/ninja()
new /datum/round_event/ninja()
return 1
/* DEATH SQUADS
+1 -1
View File
@@ -192,7 +192,7 @@ proc/cmd_admin_mute(whom, mute_type, automute = 0)
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
world << sound('sound/AI/ionstorm.ogg')
new /datum/event/ion_storm(list("botEmagChance"=0))
new /datum/round_event/ion_storm{botEmagChance=0}()
feedback_add_details("admin_verb","ION") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!