This commit is contained in:
AffectedArc07
2019-04-24 14:07:34 +01:00
parent 3ce39ba6ea
commit ec790efeaa
145 changed files with 896 additions and 925 deletions
+21 -21
View File
@@ -572,7 +572,7 @@ var/global/nologevent = 0
delay = delay * 10
message_admins("[key_name_admin(usr)] has initiated a server restart with a delay of [delay/10] seconds")
log_admin("[key_name(usr)] has initiated a server restart with a delay of [delay/10] seconds")
ticker.delay_end = 0
SSticker.delay_end = 0
feedback_add_details("admin_verb","R") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
world.Reboot("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key].", "end_error", "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", delay)
@@ -672,14 +672,14 @@ var/global/nologevent = 0
if(!check_rights(R_SERVER))
return
if(!ticker)
if(!SSticker)
alert("Unable to start the game as it is not set up.")
return
if(ticker.current_state == GAME_STATE_PREGAME)
if(SSticker.current_state == GAME_STATE_PREGAME)
if(config.start_now_confirmation)
if(alert(usr, "This is a live server. Are you sure you want to start now?", "Start game", "Yes", "No") != "Yes")
return
ticker.current_state = GAME_STATE_SETTING_UP
SSticker.current_state = GAME_STATE_SETTING_UP
log_admin("[key_name(usr)] has started the game.")
message_admins("[key_name_admin(usr)] has started the game.")
feedback_add_details("admin_verb","SN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -763,10 +763,10 @@ var/global/nologevent = 0
if(!check_rights(R_SERVER))
return
if(!ticker || ticker.current_state != GAME_STATE_PREGAME)
ticker.delay_end = !ticker.delay_end
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
if(!SSticker || SSticker.current_state != GAME_STATE_PREGAME)
SSticker.delay_end = !SSticker.delay_end
log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
message_admins("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
return //alert("Round end delayed", null, null, null, null, null)
going = !( going )
if(!( going ))
@@ -780,32 +780,32 @@ var/global/nologevent = 0
////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS
/proc/is_special_character(mob/M as mob) // returns 1 for specail characters and 2 for heroes of gamemode
if(!ticker || !ticker.mode)
if(!SSticker || !SSticker.mode)
return 0
if(!istype(M))
return 0
if((M.mind in ticker.mode.head_revolutionaries) || (M.mind in ticker.mode.revolutionaries))
if(ticker.mode.config_tag == "revolution")
if((M.mind in SSticker.mode.head_revolutionaries) || (M.mind in SSticker.mode.revolutionaries))
if(SSticker.mode.config_tag == "revolution")
return 2
return 1
if(M.mind in ticker.mode.cult)
if(ticker.mode.config_tag == "cult")
if(M.mind in SSticker.mode.cult)
if(SSticker.mode.config_tag == "cult")
return 2
return 1
if(M.mind in ticker.mode.syndicates)
if(ticker.mode.config_tag == "nuclear")
if(M.mind in SSticker.mode.syndicates)
if(SSticker.mode.config_tag == "nuclear")
return 2
return 1
if(M.mind in ticker.mode.wizards)
if(ticker.mode.config_tag == "wizard")
if(M.mind in SSticker.mode.wizards)
if(SSticker.mode.config_tag == "wizard")
return 2
return 1
if(M.mind in ticker.mode.changelings)
if(ticker.mode.config_tag == "changeling")
if(M.mind in SSticker.mode.changelings)
if(SSticker.mode.config_tag == "changeling")
return 2
return 1
if(M.mind in ticker.mode.abductors)
if(ticker.mode.config_tag == "abduction")
if(M.mind in SSticker.mode.abductors)
if(SSticker.mode.config_tag == "abduction")
return 2
return 1
if(isrobot(M))
+49 -49
View File
@@ -403,9 +403,9 @@
/datum/admins/proc/check_antagonists()
if(!check_rights(R_ADMIN)) return
if(ticker && ticker.current_state >= GAME_STATE_PLAYING)
if(SSticker && SSticker.current_state >= GAME_STATE_PLAYING)
var/dat = "<html><head><title>Round Status</title></head><body><h1><B>Round Status</B></h1>"
dat += "Current Game Mode: <B>[ticker.mode.name]</B><BR>"
dat += "Current Game Mode: <B>[SSticker.mode.name]</B><BR>"
dat += "Round Duration: <B>[round(ROUND_TIME / 36000)]:[add_zero(num2text(ROUND_TIME / 600 % 60), 2)]:[add_zero(num2text(ROUND_TIME / 10 % 60), 2)]</B><BR>"
dat += "<B>Emergency shuttle</B><BR>"
if(SSshuttle.emergency.mode < SHUTTLE_CALL)
@@ -418,10 +418,10 @@
else
dat += "ETA: <a href='?_src_=holder;edit_shuttle_time=1'>[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]</a><BR>"
dat += "<a href='?src=[UID()];delay_round_end=1'>[ticker.delay_end ? "End Round Normally" : "Delay Round End"]</a><br>"
if(ticker.mode.syndicates.len)
dat += "<a href='?src=[UID()];delay_round_end=1'>[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]</a><br>"
if(SSticker.mode.syndicates.len)
dat += "<br><table cellspacing=5><tr><td><B>Syndicates</B></td><td></td></tr>"
for(var/datum/mind/N in ticker.mode.syndicates)
for(var/datum/mind/N in SSticker.mode.syndicates)
var/mob/M = N.current
if(M)
dat += check_antagonists_line(M)
@@ -442,20 +442,20 @@
dat += "in [disk_loc.loc] at ([disk_loc.x], [disk_loc.y], [disk_loc.z])</td></tr>"
dat += "</table>"
if(ticker.mode.head_revolutionaries.len || ticker.mode.revolutionaries.len)
if(SSticker.mode.head_revolutionaries.len || SSticker.mode.revolutionaries.len)
dat += "<br><table cellspacing=5><tr><td><B>Revolutionaries</B></td><td></td></tr>"
for(var/datum/mind/N in ticker.mode.head_revolutionaries)
for(var/datum/mind/N in SSticker.mode.head_revolutionaries)
var/mob/M = N.current
if(!M)
dat += "<tr><td><i>Head Revolutionary not found!</i></td></tr>"
else
dat += check_antagonists_line(M, "(leader)")
for(var/datum/mind/N in ticker.mode.revolutionaries)
for(var/datum/mind/N in SSticker.mode.revolutionaries)
var/mob/M = N.current
if(M)
dat += check_antagonists_line(M)
dat += "</table><table cellspacing=5><tr><td><B>Target(s)</B></td><td></td><td><B>Location</B></td></tr>"
for(var/datum/mind/N in ticker.mode.get_living_heads())
for(var/datum/mind/N in SSticker.mode.get_living_heads())
var/mob/M = N.current
if(M)
dat += check_antagonists_line(M)
@@ -466,7 +466,7 @@
dat += "</table>"
if(GAMEMODE_IS_BLOB)
var/datum/game_mode/blob/mode = ticker.mode
var/datum/game_mode/blob/mode = SSticker.mode
dat += "<br><table cellspacing=5><tr><td><B>Blob</B></td><td></td><td></td></tr>"
dat += "<tr><td><i>Progress: [blobs.len]/[mode.blobwincount]</i></td></tr>"
@@ -479,67 +479,67 @@
dat += "<tr><td><i>Blob not found!</i></td></tr>"
dat += "</table>"
if(ticker.mode.blob_overminds.len)
dat += check_role_table("Blob Overminds", ticker.mode.blob_overminds)
if(SSticker.mode.blob_overminds.len)
dat += check_role_table("Blob Overminds", SSticker.mode.blob_overminds)
if(ticker.mode.changelings.len)
dat += check_role_table("Changelings", ticker.mode.changelings)
if(SSticker.mode.changelings.len)
dat += check_role_table("Changelings", SSticker.mode.changelings)
if(ticker.mode.wizards.len)
dat += check_role_table("Wizards", ticker.mode.wizards)
if(SSticker.mode.wizards.len)
dat += check_role_table("Wizards", SSticker.mode.wizards)
if(ticker.mode.raiders.len)
dat += check_role_table("Raiders", ticker.mode.raiders)
if(SSticker.mode.raiders.len)
dat += check_role_table("Raiders", SSticker.mode.raiders)
/*if(ticker.mode.ninjas.len)
dat += check_role_table("Ninjas", ticker.mode.ninjas)*/
if(ticker.mode.cult.len)
dat += check_role_table("Cultists", ticker.mode.cult, 0)
if(SSticker.mode.cult.len)
dat += check_role_table("Cultists", SSticker.mode.cult, 0)
dat += "<br> use <a href='?src=[UID()];cult_mindspeak=[UID()]'>Cult Mindspeak</a>"
if(GAMEMODE_IS_CULT)
var/datum/game_mode/cult/cult_round = ticker.mode
var/datum/game_mode/cult/cult_round = SSticker.mode
if(!cult_round.narsie_condition_cleared)
dat += "<br><a href='?src=[UID()];cult_nextobj=[UID()]'>complete objective (debug)</a>"
if(ticker.mode.traitors.len)
dat += check_role_table("Traitors", ticker.mode.traitors)
if(SSticker.mode.traitors.len)
dat += check_role_table("Traitors", SSticker.mode.traitors)
if(ticker.mode.shadows.len)
dat += check_role_table("Shadowlings", ticker.mode.shadows)
if(SSticker.mode.shadows.len)
dat += check_role_table("Shadowlings", SSticker.mode.shadows)
if(ticker.mode.shadowling_thralls.len)
dat += check_role_table("Shadowling Thralls", ticker.mode.shadowling_thralls)
if(SSticker.mode.shadowling_thralls.len)
dat += check_role_table("Shadowling Thralls", SSticker.mode.shadowling_thralls)
if(ticker.mode.abductors.len)
dat += check_role_table("Abductors", ticker.mode.abductors)
if(SSticker.mode.abductors.len)
dat += check_role_table("Abductors", SSticker.mode.abductors)
if(ticker.mode.abductees.len)
dat += check_role_table("Abductees", ticker.mode.abductees)
if(SSticker.mode.abductees.len)
dat += check_role_table("Abductees", SSticker.mode.abductees)
if(ticker.mode.vampires.len)
dat += check_role_table("Vampires", ticker.mode.vampires)
if(SSticker.mode.vampires.len)
dat += check_role_table("Vampires", SSticker.mode.vampires)
if(ticker.mode.vampire_enthralled.len)
dat += check_role_table("Vampire Thralls", ticker.mode.vampire_enthralled)
if(SSticker.mode.vampire_enthralled.len)
dat += check_role_table("Vampire Thralls", SSticker.mode.vampire_enthralled)
if(ticker.mode.devils.len)
dat += check_role_table("Devils", ticker.mode.devils)
if(SSticker.mode.devils.len)
dat += check_role_table("Devils", SSticker.mode.devils)
if(ticker.mode.xenos.len)
dat += check_role_table("Xenos", ticker.mode.xenos)
if(SSticker.mode.xenos.len)
dat += check_role_table("Xenos", SSticker.mode.xenos)
if(ticker.mode.superheroes.len)
dat += check_role_table("Superheroes", ticker.mode.superheroes)
if(SSticker.mode.superheroes.len)
dat += check_role_table("Superheroes", SSticker.mode.superheroes)
if(ticker.mode.supervillains.len)
dat += check_role_table("Supervillains", ticker.mode.supervillains)
if(SSticker.mode.supervillains.len)
dat += check_role_table("Supervillains", SSticker.mode.supervillains)
if(ticker.mode.greyshirts.len)
dat += check_role_table("Greyshirts", ticker.mode.greyshirts)
if(SSticker.mode.greyshirts.len)
dat += check_role_table("Greyshirts", SSticker.mode.greyshirts)
if(ticker.mode.eventmiscs.len)
dat += check_role_table("Event Roles", ticker.mode.eventmiscs)
if(SSticker.mode.eventmiscs.len)
dat += check_role_table("Event Roles", SSticker.mode.eventmiscs)
if(ts_spiderlist.len)
var/list/spider_minds = list()
@@ -559,8 +559,8 @@
count_spiderlings += 1
dat += "<table cellspacing=5><TR><TD>Growing TS on-station: [count_eggs] egg[count_eggs != 1 ? "s" : ""], [count_spiderlings] spiderling[count_spiderlings != 1 ? "s" : ""]. </TD></TR></TABLE>"
if(ticker.mode.ert.len)
dat += check_role_table("ERT", ticker.mode.ert)
if(SSticker.mode.ert.len)
dat += check_role_table("ERT", SSticker.mode.ert)
dat += "</body></html>"
usr << browse(dat, "window=roundstatus;size=400x500")
+33 -33
View File
@@ -6,7 +6,7 @@
message_admins("[key_name_admin(usr)] has attempted to override the admin panel!")
return
if(ticker.mode && ticker.mode.check_antagonists_topic(href, href_list))
if(SSticker.mode && SSticker.mode.check_antagonists_topic(href, href_list))
check_antagonists()
return
@@ -315,9 +315,9 @@
else if(href_list["delay_round_end"])
if(!check_rights(R_SERVER)) return
ticker.delay_end = !ticker.delay_end
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
message_admins("<span class='notice'>[key_name_admin(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].</span>", 1)
SSticker.delay_end = !SSticker.delay_end
log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
message_admins("<span class='notice'>[key_name_admin(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].</span>", 1)
href_list["secretsadmin"] = "check_antagonist"
else if(href_list["simplemake"])
@@ -1085,7 +1085,7 @@
else if(href_list["c_mode"])
if(!check_rights(R_ADMIN)) return
if(ticker && ticker.mode)
if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
var/dat = {"<B>What mode do you wish to play?</B><HR>"}
for(var/mode in config.modes)
@@ -1098,7 +1098,7 @@
else if(href_list["f_secret"])
if(!check_rights(R_ADMIN)) return
if(ticker && ticker.mode)
if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
if(master_mode != "secret")
return alert(usr, "The game mode has to be secret!", null, null, null, null)
@@ -1112,7 +1112,7 @@
else if(href_list["c_mode2"])
if(!check_rights(R_ADMIN|R_SERVER)) return
if(ticker && ticker.mode)
if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
master_mode = href_list["c_mode2"]
log_admin("[key_name(usr)] set the mode as [master_mode].")
@@ -1125,7 +1125,7 @@
else if(href_list["f_secret2"])
if(!check_rights(R_ADMIN|R_SERVER)) return
if(ticker && ticker.mode)
if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
if(master_mode != "secret")
return alert(usr, "The game mode has to be secret!", null, null, null, null)
@@ -1559,25 +1559,25 @@
alert("Couldn't locate cult mode datum! This shouldn't ever happen, tell a coder!")
return
var/datum/game_mode/cult/cult_round = ticker.mode
var/datum/game_mode/cult/cult_round = SSticker.mode
cult_round.bypass_phase()
message_admins("Admin [key_name_admin(usr)] has unlocked the Cult's next objective.")
log_admin("Admin [key_name_admin(usr)] has unlocked the Cult's next objective.")
else if(href_list["cult_mindspeak"])
var/input = stripped_input(usr, "Communicate to all the cultists with the voice of [ticker.cultdat.entity_name]", "Voice of [ticker.cultdat.entity_name]", "")
var/input = stripped_input(usr, "Communicate to all the cultists with the voice of [SSticker.cultdat.entity_name]", "Voice of [SSticker.cultdat.entity_name]", "")
if(!input)
return
for(var/datum/mind/H in ticker.mode.cult)
for(var/datum/mind/H in SSticker.mode.cult)
if (H.current)
to_chat(H.current, "<span class='danger'>[ticker.cultdat.entity_name]</span> murmurs, <span class='cultlarge'>[input]</span></span>")
to_chat(H.current, "<span class='danger'>[SSticker.cultdat.entity_name]</span> murmurs, <span class='cultlarge'>[input]</span></span>")
for(var/mob/dead/observer/O in GLOB.player_list)
to_chat(O, "<span class='danger'>[ticker.cultdat.entity_name]</span> murmurs, <span class='cultlarge'>[input]</span></span>")
to_chat(O, "<span class='danger'>[SSticker.cultdat.entity_name]</span> murmurs, <span class='cultlarge'>[input]</span></span>")
message_admins("Admin [key_name_admin(usr)] has talked with the Voice of [ticker.cultdat.entity_name].")
log_admin("[key_name(usr)] Voice of [ticker.cultdat.entity_name]: [input]")
message_admins("Admin [key_name_admin(usr)] has talked with the Voice of [SSticker.cultdat.entity_name].")
log_admin("[key_name(usr)] Voice of [SSticker.cultdat.entity_name]: [input]")
else if(href_list["adminplayerobservecoodjump"])
if(!check_rights(R_ADMIN)) return
@@ -1958,8 +1958,8 @@
kill_objective.target = H.mind
kill_objective.explanation_text = "Assassinate [H.real_name], the [H.mind.assigned_role]."
newtraitormind.objectives += kill_objective
ticker.mode.equip_traitor(newtraitor)
ticker.mode.traitors |= newtraitor.mind
SSticker.mode.equip_traitor(newtraitor)
SSticker.mode.traitors |= newtraitor.mind
to_chat(newtraitor, "<span class='danger'>ATTENTION:</span> It is time to pay your debt to the Syndicate...")
to_chat(newtraitor, "<B>You are now a traitor.</B>")
to_chat(newtraitor, "<B>Goal: <span class='danger'>KILL [H.real_name]</span>, currently in [get_area(H.loc)]</B>");
@@ -2341,7 +2341,7 @@
else if(href_list["traitor"])
if(!check_rights(R_ADMIN|R_MOD)) return
if(!ticker || !ticker.mode)
if(!SSticker || !SSticker.mode)
alert("The game hasn't started yet!")
return
@@ -2484,7 +2484,7 @@
else if(href_list["kick_all_from_lobby"])
if(!check_rights(R_ADMIN))
return
if(ticker && ticker.current_state == GAME_STATE_PLAYING)
if(SSticker && SSticker.current_state == GAME_STATE_PLAYING)
var/afkonly = text2num(href_list["afkonly"])
if(alert("Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby?","Confirmation","Yes","Cancel") != "Yes")
return
@@ -2573,7 +2573,7 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","TriAI")
if("gravity")
if(!(ticker && ticker.mode))
if(!(SSticker && SSticker.mode))
to_chat(usr, "Please wait until the game starts! Not sure how it will work otherwise.")
return
gravity_is_on = !gravity_is_on
@@ -2609,7 +2609,7 @@
message_admins("<span class='notice'>[key_name_admin(usr)] made all SMESs powered</span>", 1)
power_restore_quick()
if("prisonwarp")
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!", null, null, null, null, null)
return
feedback_inc("admin_secrets_fun_used",1)
@@ -2651,7 +2651,7 @@
H.loc = pick(prisonsecuritywarp)
prisonwarped += H
if("traitor_all")
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
var/objective = sanitize(copytext(input("Enter an objective"),1,MAX_MESSAGE_LEN))
@@ -2663,24 +2663,24 @@
if(H.stat == 2 || !H.client || !H.mind) continue
if(is_special_character(H)) continue
//traitorize(H, objective, 0)
ticker.mode.traitors += H.mind
SSticker.mode.traitors += H.mind
H.mind.special_role = SPECIAL_ROLE_TRAITOR
var/datum/objective/new_objective = new
new_objective.owner = H
new_objective.explanation_text = objective
H.mind.objectives += new_objective
ticker.mode.greet_traitor(H.mind)
SSticker.mode.greet_traitor(H.mind)
//ticker.mode.forge_traitor_objectives(H.mind)
ticker.mode.finalize_traitor(H.mind)
SSticker.mode.finalize_traitor(H.mind)
for(var/mob/living/silicon/A in GLOB.player_list)
ticker.mode.traitors += A.mind
SSticker.mode.traitors += A.mind
A.mind.special_role = SPECIAL_ROLE_TRAITOR
var/datum/objective/new_objective = new
new_objective.owner = A
new_objective.explanation_text = objective
A.mind.objectives += new_objective
ticker.mode.greet_traitor(A.mind)
ticker.mode.finalize_traitor(A.mind)
SSticker.mode.greet_traitor(A.mind)
SSticker.mode.finalize_traitor(A.mind)
message_admins("<span class='notice'>[key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]</span>", 1)
log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]")
@@ -2946,10 +2946,10 @@
if("showailaws")
output_ai_laws()
if("showgm")
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
else if(ticker.mode)
alert("The game mode is [ticker.mode.name]")
else if(SSticker.mode)
alert("The game mode is [SSticker.mode.name]")
else alert("For some reason there's a ticker, but not a game mode")
if("manifest")
var/dat = "<B>Showing Crew Manifest.</B><HR>"
@@ -3284,7 +3284,7 @@
return
G.report_message = description
message_admins("[key_name_admin(usr)] created \"[G.name]\" station goal.")
ticker.mode.station_goals += G
SSticker.mode.station_goals += G
modify_goals()
else if(href_list["showdetails"])
@@ -3408,7 +3408,7 @@
protect_objective.target = H.mind
protect_objective.explanation_text = "Protect [H.real_name], the [H.mind.assigned_role]."
hunter_mind.objectives += protect_objective
ticker.mode.traitors |= hunter_mob.mind
SSticker.mode.traitors |= hunter_mob.mind
to_chat(hunter_mob, "<span class='danger'>ATTENTION:</span> You are now on a mission!")
to_chat(hunter_mob, "<B>Goal: <span class='danger'>[killthem ? "MURDER" : "PROTECT"] [H.real_name]</span>, currently in [get_area(H.loc)]. </B>");
if(killthem)
+2 -2
View File
@@ -3,7 +3,7 @@
set category = "Debug"
set desc = "Shows a cinematic." // Intended for testing but I thought it might be nice for events on the rare occasion Feel free to comment it out if it's not wanted.
set hidden = 1
if(!ticker)
if(!SSticker)
return
switch(cinematic)
if("explosion")
@@ -14,4 +14,4 @@
override = input(src, "mode = ?","Enter Parameter", null) as anything in list("nuclear emergency", "fake", "no override")
if(0)
override = input(src, "mode = ?","Enter Parameter", null) as anything in list("blob", "nuclear emergency", "AI malfunction", "no override")
ticker.station_explosion_cinematic(parameter, override)
SSticker.station_explosion_cinematic(parameter, override)
+7 -7
View File
@@ -215,7 +215,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_SPAWN))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon/human))
@@ -233,7 +233,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_SPAWN))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
@@ -293,7 +293,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_SPAWN))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
if(ishuman(M))
@@ -313,7 +313,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_SPAWN))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
if(ishuman(M))
@@ -333,7 +333,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_SPAWN))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
if(ishuman(M))
@@ -405,7 +405,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_EVENT))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon/human))
@@ -818,7 +818,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if(!check_rights(R_SPAWN))
return
if(!ticker)
if(!SSticker)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon))
+2 -2
View File
@@ -7,7 +7,7 @@
set desc = "Spawns a group of players in the specified outfit."
if(!check_rights(R_EVENT))
return
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
if(alert("Do you want to spawn a Gimmick Team at YOUR CURRENT LOCATION?",,"Yes","No")=="No")
@@ -82,7 +82,7 @@
H.mind.store_memory("<B>[themission]</B><BR><BR>")
if(is_syndicate)
ticker.mode.traitors |= H.mind //Adds them to extra antag list
SSticker.mode.traitors |= H.mind //Adds them to extra antag list
players_spawned++
if(players_spawned >= teamsize)
+2 -2
View File
@@ -4,7 +4,7 @@ var/const/honksquad_possible = 6 //if more Commandos are needed in the future
var/global/sent_honksquad = 0
/client/proc/honksquad()
if(!ticker)
if(!SSticker)
to_chat(usr, "<font color='red'>The game hasn't started yet!</font>")
return
if(world.time < 6000)
@@ -95,7 +95,7 @@ var/global/sent_honksquad = 0
new_honksquad.mind.special_role = SPECIAL_ROLE_HONKSQUAD
new_honksquad.mind.offstation_role = TRUE
new_honksquad.add_language("Clownish")
ticker.mode.traitors |= new_honksquad.mind//Adds them to current traitor list. Which is really the extra antagonist list.
SSticker.mode.traitors |= new_honksquad.mind//Adds them to current traitor list. Which is really the extra antagonist list.
new_honksquad.equip_honksquad(honk_leader_selected)
return new_honksquad
@@ -10,7 +10,7 @@ var/global/sent_syndicate_infiltration_team = 0
if(!check_rights(R_ADMIN))
to_chat(src, "Only administrators may use this command.")
return
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
if(alert("Do you want to send in the Syndicate Infiltration Team?",,"Yes","No")=="No")
@@ -132,7 +132,7 @@ var/global/sent_syndicate_infiltration_team = 0
new_syndicate_infiltrator.mind.assigned_role = "Syndicate Infiltrator"
new_syndicate_infiltrator.mind.special_role = "Syndicate Infiltrator"
new_syndicate_infiltrator.mind.offstation_role = TRUE //they can flee to z2 so make them inelligible as antag targets
ticker.mode.traitors |= new_syndicate_infiltrator.mind //Adds them to extra antag list
SSticker.mode.traitors |= new_syndicate_infiltrator.mind //Adds them to extra antag list
new_syndicate_infiltrator.equip_syndicate_infiltrator(syndicate_leader_selected, uplink_tc, is_mgmt)
return new_syndicate_infiltrator
+6 -6
View File
@@ -175,7 +175,7 @@ client/proc/one_click_antag()
for(var/i = 0, i<numCultists, i++)
H = pick(candidates)
ticker.mode.add_cultist(H.mind)
SSticker.mode.add_cultist(H.mind)
candidates.Remove(H)
return 1
@@ -258,17 +258,17 @@ client/proc/one_click_antag()
qdel(A)
continue
for(var/datum/mind/synd_mind in ticker.mode.syndicates)
for(var/datum/mind/synd_mind in SSticker.mode.syndicates)
if(synd_mind.current)
if(synd_mind.current.client)
for(var/image/I in synd_mind.current.client.images)
if(I.icon_state == "synd")
qdel(I)
for(var/datum/mind/synd_mind in ticker.mode.syndicates)
for(var/datum/mind/synd_mind in SSticker.mode.syndicates)
if(synd_mind.current)
if(synd_mind.current.client)
for(var/datum/mind/synd_mind_1 in ticker.mode.syndicates)
for(var/datum/mind/synd_mind_1 in SSticker.mode.syndicates)
if(synd_mind_1.current)
var/I = image('icons/mob/mob.dmi', loc = synd_mind_1.current, icon_state = "synd")
synd_mind.current.client.images += I
@@ -417,7 +417,7 @@ client/proc/one_click_antag()
new_syndicate_commando.mind.special_role = SPECIAL_ROLE_SYNDICATE_DEATHSQUAD
new_syndicate_commando.mind.offstation_role = TRUE
//Adds them to current traitor list. Which is really the extra antagonist list.
ticker.mode.traitors += new_syndicate_commando.mind
SSticker.mode.traitors += new_syndicate_commando.mind
new_syndicate_commando.equip_syndicate_commando(syndicate_leader_selected)
return new_syndicate_commando
@@ -477,7 +477,7 @@ client/proc/one_click_antag()
break
new_vox.key = theghost.key
ticker.mode.traitors += new_vox.mind
SSticker.mode.traitors += new_vox.mind
to_chat(new_vox, "<span class='notice'>You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: <span class='danger'> [input]</span></span>")
to_chat(new_vox, "<span class='warning'>Don't forget to turn on your nitrogen internals!</span>")
+4 -4
View File
@@ -1,5 +1,5 @@
/client/proc/only_one()
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
@@ -14,7 +14,7 @@
var/datum/preferences/A = new() // Randomize appearance
A.copy_to(H)
ticker.mode.traitors += H.mind
SSticker.mode.traitors += H.mind
H.mind.special_role = SPECIAL_ROLE_TRAITOR
var/datum/objective/hijack/hijack_objective = new
@@ -58,7 +58,7 @@
world << sound('sound/music/thunderdome.ogg')
/client/proc/only_me()
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
@@ -66,7 +66,7 @@
if(H.stat == 2 || !(H.client)) continue
if(is_special_character(H)) continue
ticker.mode.traitors += H.mind
SSticker.mode.traitors += H.mind
H.mind.special_role = "[H.real_name] Prime"
var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone
+1 -1
View File
@@ -1,5 +1,5 @@
/client/proc/only_one_team()
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
+3 -3
View File
@@ -18,8 +18,8 @@
var/prayer_type = "PRAYER"
var/deity
if(usr.job == "Chaplain")
if(ticker && ticker.Bible_deity_name)
deity = ticker.Bible_deity_name
if(SSticker && SSticker.Bible_deity_name)
deity = SSticker.Bible_deity_name
cross = image('icons/obj/storage.dmi',"kingyellow")
font_color = "blue"
prayer_type = "CHAPLAIN PRAYER"
@@ -27,7 +27,7 @@
cross = image('icons/obj/storage.dmi',"tome")
font_color = "red"
prayer_type = "CULTIST PRAYER"
deity = ticker.cultdat.entity_name
deity = SSticker.cultdat.entity_name
log_say("(PRAYER) [msg]", usr)
msg = "<span class='notice'>[bicon(cross)]<b><font color=[font_color]>[prayer_type][deity ? " (to [deity])" : ""][mind && mind.isholy ? " (blessings: [mind.num_blessed])" : ""]:</font> [key_name(src, 1)] ([ADMIN_QUE(src,"?")]) ([ADMIN_PP(src,"PP")]) ([ADMIN_VV(src,"VV")]) ([ADMIN_SM(src,"SM")]) ([admin_jump_link(src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) ([ADMIN_SC(src,"SC")]) (<A HREF='?_src_=holder;Bless=[UID()]'>BLESS</A>) (<A HREF='?_src_=holder;Smite=[UID()]'>SMITE</A>):</b> [msg]</span>"
+16 -16
View File
@@ -437,11 +437,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("traitor")
SSjobs.AssignRank(new_character, new_character.mind.assigned_role, 0)
SSjobs.EquipRank(new_character, new_character.mind.assigned_role, 1)
ticker.mode.equip_traitor(new_character)
SSticker.mode.equip_traitor(new_character)
if("Wizard")
new_character.loc = pick(wizardstart)
//ticker.mode.learn_basic_spells(new_character)
ticker.mode.equip_wizard(new_character)
SSticker.mode.equip_wizard(new_character)
if("Syndicate")
var/obj/effect/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
if(synd_spawn)
@@ -858,7 +858,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Admin"
set name = "Toggle Deny Shuttle"
if(!ticker)
if(!SSticker)
return
if(!check_rights(R_ADMIN))
@@ -891,12 +891,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_SERVER|R_EVENT))
return
if(ticker && ticker.mode)
if(SSticker && SSticker.mode)
to_chat(usr, "Nope you can't do this, the game's already started. This only works before rounds!")
return
if(ticker.random_players)
ticker.random_players = 0
if(SSticker.random_players)
SSticker.random_players = 0
message_admins("Admin [key_name_admin(usr)] has disabled \"Everyone is Special\" mode.", 1)
to_chat(usr, "Disabled.")
return
@@ -914,7 +914,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
to_chat(usr, "<i>Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet</i>.")
ticker.random_players = 1
SSticker.random_players = 1
feedback_add_details("admin_verb","MER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_random_events()
@@ -1009,13 +1009,13 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_EVENT))
return
if(ticker.mode.ert_disabled)
ticker.mode.ert_disabled = 0
if(SSticker.mode.ert_disabled)
SSticker.mode.ert_disabled = 0
to_chat(usr, "<span class='notice'>ERT has been <b>Enabled</b>.</span>")
log_admin("Admin [key_name(src)] has enabled ERT calling.")
message_admins("Admin [key_name_admin(usr)] has enabled ERT calling.", 1)
else
ticker.mode.ert_disabled = 1
SSticker.mode.ert_disabled = 1
to_chat(usr, "<span class='warning'>ERT has been <b>Disabled</b>.</span>")
log_admin("Admin [key_name(src)] has disabled ERT calling.")
message_admins("Admin [key_name_admin(usr)] has disabled ERT calling.", 1)
@@ -1033,14 +1033,14 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!input)
return
if(!ticker)
if(!SSticker)
return
ticker.selected_tip = input
SSticker.selected_tip = input
// If we've already tipped, then send it straight away.
if(ticker.tipped)
ticker.send_tip_of_the_round()
if(SSticker.tipped)
SSticker.send_tip_of_the_round()
message_admins("[key_name_admin(usr)] sent a Tip of the round.")
log_admin("[key_name(usr)] sent \"[input]\" as the Tip of the Round.")
@@ -1055,12 +1055,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
holder.modify_goals()
/datum/admins/proc/modify_goals()
if(!ticker || !ticker.mode)
if(!SSticker || !SSticker.mode)
to_chat(usr, "<span class='warning'>This verb can only be used if the round has started.</span>")
return
var/dat = ""
for(var/datum/station_goal/S in ticker.mode.station_goals)
for(var/datum/station_goal/S in SSticker.mode.station_goals)
dat += "[S.name] - <a href='?src=[S.UID()];announce=1'>Announce</a> | <a href='?src=[S.UID()];remove=1'>Remove</a><br>"
dat += "<br><a href='?src=[UID()];add_station_goal=1'>Add New Goal</a>"
usr << browse(dat, "window=goals;size=400x400")
+5 -5
View File
@@ -4,7 +4,7 @@ var/const/commandos_possible = 6 //if more Commandos are needed in the future
var/global/sent_strike_team = 0
/client/proc/strike_team()
if(!ticker)
if(!SSticker)
to_chat(usr, "<span class='userdanger'>The game hasn't started yet!</span>")
return
if(sent_strike_team == 1)
@@ -86,9 +86,9 @@ var/global/sent_strike_team = 0
R.mind.assigned_role = SPECIAL_ROLE_DEATHSQUAD
R.mind.special_role = SPECIAL_ROLE_DEATHSQUAD
R.mind.offstation_role = TRUE
if(!(R.mind in ticker.minds))
ticker.minds += R.mind
ticker.mode.traitors += R.mind
if(!(R.mind in SSticker.minds))
SSticker.minds += R.mind
SSticker.mode.traitors += R.mind
R.key = ghost_mob.key
if(nuke_code)
R.mind.store_memory("<B>Nuke Code:</B> <span class='warning'>[nuke_code].</span>")
@@ -150,7 +150,7 @@ var/global/sent_strike_team = 0
new_commando.mind_initialize()
new_commando.mind.assigned_role = SPECIAL_ROLE_DEATHSQUAD
new_commando.mind.special_role = SPECIAL_ROLE_DEATHSQUAD
ticker.mode.traitors |= new_commando.mind//Adds them to current traitor list. Which is really the extra antagonist list.
SSticker.mode.traitors |= new_commando.mind//Adds them to current traitor list. Which is really the extra antagonist list.
new_commando.equip_death_commando(is_leader)
return new_commando
@@ -9,7 +9,7 @@ var/global/sent_syndicate_strike_team = 0
if(!src.holder)
to_chat(src, "Only administrators may use this command.")
return
if(!ticker)
if(!SSticker)
alert("The game hasn't started yet!")
return
if(sent_syndicate_strike_team == 1)
@@ -117,7 +117,7 @@ var/global/sent_syndicate_strike_team = 0
new_syndicate_commando.mind.assigned_role = SPECIAL_ROLE_SYNDICATE_DEATHSQUAD
new_syndicate_commando.mind.special_role = SPECIAL_ROLE_SYNDICATE_DEATHSQUAD
new_syndicate_commando.mind.offstation_role = TRUE
ticker.mode.traitors |= new_syndicate_commando.mind //Adds them to current traitor list. Which is really the extra antagonist list.
SSticker.mode.traitors |= new_syndicate_commando.mind //Adds them to current traitor list. Which is really the extra antagonist list.
new_syndicate_commando.equip_syndicate_commando(is_leader)
qdel(spawn_location)
return new_syndicate_commando
+5 -5
View File
@@ -2,21 +2,21 @@
set category = "Event"
set name = "Create AI Triumvirate"
if(ticker.current_state > GAME_STATE_PREGAME)
if(SSticker.current_state > GAME_STATE_PREGAME)
to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.")
return
if(SSjobs && ticker)
if(SSjobs && SSticker)
var/datum/job/job = SSjobs.GetJob("AI")
if(!job)
to_chat(usr, "Unable to locate the AI job")
return
if(ticker.triai)
ticker.triai = 0
if(SSticker.triai)
SSticker.triai = 0
to_chat(usr, "Only one AI will be spawned at round start.")
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled off triple AIs at round start.</span>", 1)
else
ticker.triai = 1
SSticker.triai = 1
to_chat(usr, "There will be an AI Triumvirate at round start.")
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled on triple AIs at round start.</span>", 1)
return