mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 02:24:11 +01:00
SSticker
This commit is contained in:
+21
-21
@@ -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))
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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,5 +1,5 @@
|
||||
/client/proc/only_one_team()
|
||||
if(!ticker)
|
||||
if(!SSticker)
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
if(used)
|
||||
to_chat(user, "<span class='warning'>[src] is out of power!</span>")
|
||||
return FALSE
|
||||
if(!(user.mind in ticker.mode.syndicates))
|
||||
if(!(user.mind in SSticker.mode.syndicates))
|
||||
to_chat(user, "<span class='danger'>AUTHENTICATION FAILURE. ACCESS DENIED.</span>")
|
||||
return FALSE
|
||||
if(checking)
|
||||
@@ -62,27 +62,27 @@
|
||||
/obj/item/antag_spawner/nuke_ops/spawn_antag(client/C, turf/T, kind, datum/mind/user)
|
||||
var/mob/living/carbon/human/M = new/mob/living/carbon/human(T)
|
||||
|
||||
var/agent_number = LAZYLEN(ticker.mode.syndicates)
|
||||
var/agent_number = LAZYLEN(SSticker.mode.syndicates)
|
||||
M.real_name = "[syndicate_name()] Operative #[agent_number]"
|
||||
|
||||
set_syndicate_values(C, M)
|
||||
ticker.mode.create_syndicate(M.mind)
|
||||
ticker.mode.equip_syndicate(M, 0)
|
||||
ticker.mode.update_syndicate_id(M.mind, FALSE)
|
||||
SSticker.mode.create_syndicate(M.mind)
|
||||
SSticker.mode.equip_syndicate(M, 0)
|
||||
SSticker.mode.update_syndicate_id(M.mind, FALSE)
|
||||
|
||||
/obj/item/antag_spawner/nuke_ops/proc/set_syndicate_values(client/C, mob/living/M)
|
||||
M.key = C.key
|
||||
|
||||
ticker.mode.syndicates += M.mind
|
||||
ticker.mode.update_synd_icons_added(M.mind)
|
||||
SSticker.mode.syndicates += M.mind
|
||||
SSticker.mode.update_synd_icons_added(M.mind)
|
||||
|
||||
M.mind.assigned_role = SPECIAL_ROLE_NUKEOPS
|
||||
M.mind.special_role = SPECIAL_ROLE_NUKEOPS
|
||||
M.mind.offstation_role = TRUE
|
||||
|
||||
M.faction = list("syndicate")
|
||||
ticker.mode.forge_syndicate_objectives(M.mind)
|
||||
ticker.mode.greet_syndicate(M.mind)
|
||||
SSticker.mode.forge_syndicate_objectives(M.mind)
|
||||
SSticker.mode.greet_syndicate(M.mind)
|
||||
|
||||
//////SYNDICATE BORG
|
||||
/obj/item/antag_spawner/nuke_ops/borg_tele
|
||||
@@ -115,7 +115,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/item/antag_spawner/nuke_ops/borg_tele/spawn_antag(client/C, turf/T, datum/mind/user)
|
||||
if(!(user in ticker.mode.syndicates))
|
||||
if(!(user in SSticker.mode.syndicates))
|
||||
used = FALSE
|
||||
return
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
set_syndicate_values(user.current.client, R)
|
||||
|
||||
L.key = C.key
|
||||
ticker.mode.greet_syndicate(L.mind)
|
||||
SSticker.mode.greet_syndicate(L.mind)
|
||||
|
||||
///////////SLAUGHTER DEMON
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
S.key = C.key
|
||||
S.mind.assigned_role = S.name
|
||||
S.mind.special_role = S.name
|
||||
ticker.mode.traitors += S.mind
|
||||
SSticker.mode.traitors += S.mind
|
||||
var/datum/objective/assassinate/KillDaWiz = new /datum/objective/assassinate
|
||||
KillDaWiz.owner = S.mind
|
||||
KillDaWiz.target = user.mind
|
||||
@@ -264,7 +264,7 @@
|
||||
M.mind.assigned_role = SPECIAL_ROLE_MORPH
|
||||
M.mind.special_role = SPECIAL_ROLE_MORPH
|
||||
to_chat(M, M.playstyle_string)
|
||||
ticker.mode.traitors += M.mind
|
||||
SSticker.mode.traitors += M.mind
|
||||
var/datum/objective/assassinate/KillDaWiz = new /datum/objective/assassinate
|
||||
KillDaWiz.owner = M.mind
|
||||
KillDaWiz.target = user.mind
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/obj/effect/mob_spawn/attack_ghost(mob/user)
|
||||
var/mob/dead/observer/O = user
|
||||
if(ticker.current_state != GAME_STATE_PLAYING || !loc || !ghost_usable)
|
||||
if(SSticker.current_state != GAME_STATE_PLAYING || !loc || !ghost_usable)
|
||||
return
|
||||
if(!uses)
|
||||
to_chat(user, "<span class='warning'>This spawner is out of charges!</span>")
|
||||
|
||||
@@ -83,7 +83,7 @@ obj/item/clothing/shoes/magboots/syndie/advance //For the Syndicate Strike Team
|
||||
|
||||
/obj/item/clothing/shoes/magboots/wizard/attack_self(mob/user)
|
||||
if(user)
|
||||
if(user.mind in ticker.mode.wizards)
|
||||
if(user.mind in SSticker.mode.wizards)
|
||||
if(magpulse) //faint blue light when shoes are turned on gives a reason to turn them off when not needed in maint
|
||||
set_light(0)
|
||||
else
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
|
||||
if(candidates.len >= 2)
|
||||
//Oh god why we can't have static functions
|
||||
var/number = ticker.mode.abductor_teams + 1
|
||||
var/number = SSticker.mode.abductor_teams + 1
|
||||
|
||||
var/datum/game_mode/abduction/temp
|
||||
if(ticker.mode.config_tag == "abduction")
|
||||
temp = ticker.mode
|
||||
if(SSticker.mode.config_tag == "abduction")
|
||||
temp = SSticker.mode
|
||||
else
|
||||
temp = new
|
||||
|
||||
@@ -42,10 +42,10 @@
|
||||
temp.make_abductor_team(number,preset_scientist=scientist_mind,preset_agent=agent_mind)
|
||||
temp.post_setup_team(number)
|
||||
|
||||
ticker.mode.abductor_teams++
|
||||
SSticker.mode.abductor_teams++
|
||||
|
||||
if(ticker.mode.config_tag != "abduction")
|
||||
ticker.mode.abductors |= temp.abductors
|
||||
if(SSticker.mode.config_tag != "abduction")
|
||||
SSticker.mode.abductors |= temp.abductors
|
||||
processing = 1 //So it will get gc'd
|
||||
return 1
|
||||
else
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
GLOB.respawnable_list -= C.client
|
||||
var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc)
|
||||
new_xeno.key = C.key
|
||||
if(ticker && ticker.mode)
|
||||
ticker.mode.xenos += new_xeno.mind
|
||||
if(SSticker && SSticker.mode)
|
||||
SSticker.mode.xenos += new_xeno.mind
|
||||
|
||||
spawncount--
|
||||
successSpawn = 1
|
||||
|
||||
@@ -59,7 +59,7 @@ var/list/karma_spenders = list()
|
||||
if(config.disable_karma)
|
||||
to_chat(src, "<span class='warning'>Karma is disabled.</span>")
|
||||
return FALSE
|
||||
if(!ticker || !GLOB.player_list.len || (ticker.current_state == GAME_STATE_PREGAME))
|
||||
if(!SSticker || !GLOB.player_list.len || (SSticker.current_state == GAME_STATE_PREGAME))
|
||||
to_chat(src, "<span class='warning'>You can't award karma until the game has started.</span>")
|
||||
return FALSE
|
||||
if(client.karma_spent || (ckey in karma_spenders))
|
||||
|
||||
@@ -320,11 +320,11 @@
|
||||
if(!bibledelay)
|
||||
|
||||
var/obj/item/storage/bible/B = new /obj/item/storage/bible(src.loc)
|
||||
if(ticker && ( ticker.Bible_icon_state && ticker.Bible_item_state) )
|
||||
B.icon_state = ticker.Bible_icon_state
|
||||
B.item_state = ticker.Bible_item_state
|
||||
B.name = ticker.Bible_name
|
||||
B.deity_name = ticker.Bible_deity_name
|
||||
if(SSticker && ( SSticker.Bible_icon_state && SSticker.Bible_item_state) )
|
||||
B.icon_state = SSticker.Bible_icon_state
|
||||
B.item_state = SSticker.Bible_item_state
|
||||
B.name = SSticker.Bible_name
|
||||
B.deity_name = SSticker.Bible_deity_name
|
||||
|
||||
bibledelay = 1
|
||||
spawn(60)
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/obj/machinery/smartfridge/black_box/process()
|
||||
..()
|
||||
if(!memory_saved && ticker.current_state == GAME_STATE_FINISHED)
|
||||
if(!memory_saved && SSticker.current_state == GAME_STATE_FINISHED)
|
||||
WriteMemory()
|
||||
|
||||
/obj/machinery/smartfridge/black_box/proc/WriteMemory()
|
||||
|
||||
@@ -6,7 +6,7 @@ As such, they can either help or harm other aliens. Help works like the human he
|
||||
In all, this is a lot like the monkey code. /N
|
||||
*/
|
||||
/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M)
|
||||
if(!ticker)
|
||||
if(!SSticker)
|
||||
to_chat(M, "You cannot attack people before the game has started.")
|
||||
return
|
||||
|
||||
|
||||
@@ -93,8 +93,8 @@
|
||||
spawn(6)
|
||||
var/mob/living/carbon/alien/larva/new_xeno = new(owner.drop_location())
|
||||
new_xeno.key = C.key
|
||||
if(ticker && ticker.mode)
|
||||
ticker.mode.xenos += new_xeno.mind
|
||||
if(SSticker && SSticker.mode)
|
||||
SSticker.mode.xenos += new_xeno.mind
|
||||
new_xeno.mind.name = new_xeno.name
|
||||
new_xeno.mind.assigned_role = SPECIAL_ROLE_XENOMORPH
|
||||
new_xeno.mind.special_role = SPECIAL_ROLE_XENOMORPH
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
if(H.mind)
|
||||
H.mind.kills += "[key_name(src)]"
|
||||
|
||||
if(ticker && ticker.mode)
|
||||
if(SSticker && SSticker.mode)
|
||||
// log_world("k")
|
||||
sql_report_death(src)
|
||||
|
||||
|
||||
@@ -1961,7 +1961,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
|
||||
if(7) // Pride
|
||||
log_game("[src] was influenced by the sin of pride.")
|
||||
O = new /datum/objective/sintouched/pride
|
||||
ticker.mode.sintouched += src.mind
|
||||
SSticker.mode.sintouched += src.mind
|
||||
src.mind.objectives += O
|
||||
var/obj_count = 1
|
||||
to_chat(src, "<span class='notice> Your current objectives:")
|
||||
|
||||
@@ -362,7 +362,7 @@ This function restores all organs.
|
||||
|
||||
if(LAssailant && ishuman(LAssailant)) //superheros still get the comical hit markers
|
||||
var/mob/living/carbon/human/H = LAssailant
|
||||
if(H.mind && H.mind in (ticker.mode.superheroes || ticker.mode.supervillains || ticker.mode.greyshirts))
|
||||
if(H.mind && H.mind in (SSticker.mode.superheroes || SSticker.mode.supervillains || SSticker.mode.greyshirts))
|
||||
var/list/attack_bubble_recipients = list()
|
||||
var/mob/living/user
|
||||
for(var/mob/O in viewers(user, src))
|
||||
|
||||
@@ -267,7 +267,7 @@ emp_act
|
||||
apply_effect(5, WEAKEN, armor)
|
||||
AdjustConfused(15)
|
||||
if(prob(I.force + ((100 - health)/2)) && src != user && I.damtype == BRUTE)
|
||||
ticker.mode.remove_revolutionary(mind)
|
||||
SSticker.mode.remove_revolutionary(mind)
|
||||
|
||||
if(bloody)//Apply blood
|
||||
if(wear_mask)
|
||||
|
||||
@@ -309,7 +309,7 @@
|
||||
slyness = 75
|
||||
|
||||
/mob/living/carbon/human/interactive/proc/InteractiveProcess()
|
||||
if(ticker.current_state == GAME_STATE_FINISHED)
|
||||
if(SSticker.current_state == GAME_STATE_FINISHED)
|
||||
saveVoice()
|
||||
voice_saved = TRUE
|
||||
doProcess()
|
||||
@@ -364,12 +364,12 @@
|
||||
traitorScale = (slyness + smartness) + rand(-10,10)
|
||||
traitorType = inPers
|
||||
|
||||
ticker.mode.traitors += mind
|
||||
SSticker.mode.traitors += mind
|
||||
mind.special_role = SPECIAL_ROLE_TRAITOR
|
||||
var/datum/mindslaves/slaved = new()
|
||||
slaved.masters += mind
|
||||
mind.som = slaved
|
||||
ticker.mode.update_traitor_icons_added(mind)
|
||||
SSticker.mode.update_traitor_icons_added(mind)
|
||||
|
||||
switch(traitorType)
|
||||
if(SNPC_BRUTE) // SMASH KILL RAAARGH
|
||||
|
||||
@@ -333,11 +333,11 @@
|
||||
|
||||
/datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
|
||||
//Vampire code
|
||||
if(user.mind && user.mind.vampire && (user.mind in ticker.mode.vampires) && !user.mind.vampire.draining && user.zone_sel && user.zone_sel.selecting == "head" && target != user)
|
||||
if(user.mind && user.mind.vampire && (user.mind in SSticker.mode.vampires) && !user.mind.vampire.draining && user.zone_sel && user.zone_sel.selecting == "head" && target != user)
|
||||
if((NO_BLOOD in target.dna.species.species_traits) || target.dna.species.exotic_blood || !target.blood_volume)
|
||||
to_chat(user, "<span class='warning'>They have no blood!</span>")
|
||||
return
|
||||
if(target.mind && target.mind.vampire && (target.mind in ticker.mode.vampires))
|
||||
if(target.mind && target.mind.vampire && (target.mind in SSticker.mode.vampires))
|
||||
to_chat(user, "<span class='warning'>Your fangs fail to pierce [target.name]'s cold flesh</span>")
|
||||
return
|
||||
if(SKELETON in target.mutations)
|
||||
|
||||
@@ -50,11 +50,11 @@
|
||||
if(class == "Superhero")
|
||||
W.assignment = "Superhero"
|
||||
W.rank = "Superhero"
|
||||
ticker.mode.superheroes += H.mind
|
||||
SSticker.mode.superheroes += H.mind
|
||||
else if(class == "Supervillain")
|
||||
W.assignment = "Supervillain"
|
||||
W.rank = "Supervillain"
|
||||
ticker.mode.supervillains += H.mind
|
||||
SSticker.mode.supervillains += H.mind
|
||||
W.icon_state = "lifetimeid"
|
||||
W.SetOwnerInfo(H)
|
||||
W.UpdateName()
|
||||
@@ -157,7 +157,7 @@
|
||||
/obj/effect/proc_holder/spell/targeted/recruit/cast(list/targets,mob/living/user = usr)
|
||||
for(var/mob/living/carbon/human/target in targets)
|
||||
var/obj/item/organ/external/head/head_organ = target.get_organ("head")
|
||||
if(ticker.mode.greyshirts.len >= 3)
|
||||
if(SSticker.mode.greyshirts.len >= 3)
|
||||
to_chat(user, "<span class='warning'>You have already recruited the maximum number of henchmen.</span>")
|
||||
if(!in_range(user, target))
|
||||
to_chat(user, "<span class='warning'>You need to be closer to enthrall [target].</span>")
|
||||
@@ -218,7 +218,7 @@
|
||||
to_chat(target, "<span class='deadsay'><b>You have decided to enroll as a henchman for [user]. You are now part of the feared 'Greyshirts'.</b></span>")
|
||||
to_chat(target, "<span class='deadsay'><b>You must follow the orders of [user], and help [user.p_them()] succeed in [user.p_their()] dastardly schemes.</span>")
|
||||
to_chat(target, "<span class='deadsay'>You may not harm other Greyshirt or [user]. However, you do not need to obey other Greyshirts.</span>")
|
||||
ticker.mode.greyshirts += target.mind
|
||||
SSticker.mode.greyshirts += target.mind
|
||||
target.set_species(/datum/species/human)
|
||||
head_organ.h_style = "Bald"
|
||||
head_organ.f_style = "Shaved"
|
||||
|
||||
@@ -89,8 +89,8 @@
|
||||
mind.store_memory("Time of death: [station_time_timestamp("hh:mm:ss", timeofdeath)]", 0)
|
||||
GLOB.respawnable_list += src
|
||||
|
||||
if(ticker && ticker.mode)
|
||||
ticker.mode.check_win()
|
||||
if(SSticker && SSticker.mode)
|
||||
SSticker.mode.check_win()
|
||||
if(mind && mind.devilinfo) // Expand this into a general-purpose death-response system when appropriate
|
||||
mind.devilinfo.beginResurrectionCheck(src)
|
||||
|
||||
|
||||
@@ -691,7 +691,7 @@
|
||||
return name
|
||||
|
||||
/mob/living/update_gravity(has_gravity)
|
||||
if(!ticker)
|
||||
if(!SSticker)
|
||||
return
|
||||
if(has_gravity)
|
||||
clear_alert("weightless")
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
return G
|
||||
|
||||
/mob/living/attack_slime(mob/living/carbon/slime/M)
|
||||
if(!ticker)
|
||||
if(!SSticker)
|
||||
to_chat(M, "You cannot attack people before the game has started.")
|
||||
return
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M)
|
||||
if(!ticker)
|
||||
if(!SSticker)
|
||||
to_chat(M, "You cannot attack people before the game has started.")
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -101,7 +101,7 @@ var/datum/cameranet/cameranet = new()
|
||||
|
||||
/datum/cameranet/proc/updateVisibility(atom/A, opacity_check = 1)
|
||||
|
||||
if(!ticker || (opacity_check && !A.opacity))
|
||||
if(!SSticker || (opacity_check && !A.opacity))
|
||||
return
|
||||
majorChunkChange(A, 2)
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ var/global/list/empty_playable_ai_cores = list()
|
||||
mind.objectives.Cut()
|
||||
mind.special_role = null
|
||||
else
|
||||
if(ticker.mode.name == "AutoTraitor")
|
||||
var/datum/game_mode/traitor/autotraitor/current_mode = ticker.mode
|
||||
if(SSticker.mode.name == "AutoTraitor")
|
||||
var/datum/game_mode/traitor/autotraitor/current_mode = SSticker.mode
|
||||
current_mode.possible_traitors.Remove(src)
|
||||
|
||||
// Ghost the current player and disallow them to return to the body
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/mob/living/silicon/Login()
|
||||
SetSleeping(0)
|
||||
if(mind && ticker && ticker.mode)
|
||||
ticker.mode.remove_revolutionary(mind, 1)
|
||||
ticker.mode.remove_cultist(mind, 1)
|
||||
ticker.mode.remove_wizard(mind)
|
||||
ticker.mode.remove_changeling(mind)
|
||||
ticker.mode.remove_vampire(mind)
|
||||
ticker.mode.remove_thrall(mind, 0)
|
||||
ticker.mode.remove_shadowling(mind)
|
||||
ticker.mode.remove_abductor(mind)
|
||||
..()
|
||||
if(mind && SSticker && SSticker.mode)
|
||||
SSticker.mode.remove_revolutionary(mind, 1)
|
||||
SSticker.mode.remove_cultist(mind, 1)
|
||||
SSticker.mode.remove_wizard(mind)
|
||||
SSticker.mode.remove_changeling(mind)
|
||||
SSticker.mode.remove_vampire(mind)
|
||||
SSticker.mode.remove_thrall(mind, 0)
|
||||
SSticker.mode.remove_shadowling(mind)
|
||||
SSticker.mode.remove_abductor(mind)
|
||||
..()
|
||||
|
||||
@@ -50,8 +50,8 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
card.setPersonality(pai)
|
||||
card.looking_for_personality = 0
|
||||
|
||||
ticker.mode.update_cult_icons_removed(card.pai.mind)
|
||||
ticker.mode.update_rev_icons_removed(card.pai.mind)
|
||||
SSticker.mode.update_cult_icons_removed(card.pai.mind)
|
||||
SSticker.mode.update_rev_icons_removed(card.pai.mind)
|
||||
|
||||
pai_candidates -= candidate
|
||||
usr << browse(null, "window=findPai")
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
to_chat(user, "<span class='warning'>You swipe the sequencer across [src]'s interface and watch its eyes flicker.</span>")
|
||||
|
||||
if(jobban_isbanned(src, ROLE_SYNDICATE))
|
||||
ticker.mode.replace_jobbanned_player(src, ROLE_SYNDICATE)
|
||||
SSticker.mode.replace_jobbanned_player(src, ROLE_SYNDICATE)
|
||||
|
||||
to_chat(src, "<span class='warning'>You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script. You sense you have five minutes before the drone server detects this and automatically shuts you down.</span>")
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/obj/machinery/drone_fabricator/process()
|
||||
|
||||
if(ticker.current_state < GAME_STATE_PLAYING)
|
||||
if(SSticker.current_state < GAME_STATE_PLAYING)
|
||||
return
|
||||
|
||||
if(stat & NOPOWER || !produce_drones)
|
||||
@@ -98,7 +98,7 @@
|
||||
to_chat(usr, "<span class='warning'>You are banned from playing drones and cannot spawn as a drone.</span>")
|
||||
return
|
||||
|
||||
if(!ticker || ticker.current_state < 3)
|
||||
if(!SSticker || SSticker.current_state < 3)
|
||||
to_chat(src, "<span class='warning'>You can't join as a drone before the game starts!</span>")
|
||||
return
|
||||
|
||||
|
||||
@@ -1340,9 +1340,9 @@ var/list/robot_verbs_default = list(
|
||||
mind.special_role = SPECIAL_ROLE_ERT
|
||||
if(cyborg_unlock)
|
||||
crisis = 1
|
||||
if(!(mind in ticker.minds))
|
||||
ticker.minds += mind
|
||||
ticker.mode.ert += mind
|
||||
if(!(mind in SSticker.minds))
|
||||
SSticker.minds += mind
|
||||
SSticker.mode.ert += mind
|
||||
|
||||
/mob/living/silicon/robot/ert/gamma
|
||||
crisis = 1
|
||||
|
||||
@@ -29,21 +29,21 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/New()
|
||||
..()
|
||||
if(!ticker.mode)//work around for maps with runes and cultdat is not loaded all the way
|
||||
if(!SSticker.mode)//work around for maps with runes and cultdat is not loaded all the way
|
||||
name = "[const_type] ([rand(1, 1000)])"
|
||||
real_name = const_type
|
||||
icon_living = const_type
|
||||
icon_state = const_type
|
||||
else
|
||||
name = "[ticker.cultdat.get_name(const_type)] ([rand(1, 1000)])"
|
||||
real_name = ticker.cultdat.get_name(const_type)
|
||||
icon_living = ticker.cultdat.get_icon(const_type)
|
||||
icon_state = ticker.cultdat.get_icon(const_type)
|
||||
name = "[SSticker.cultdat.get_name(const_type)] ([rand(1, 1000)])"
|
||||
real_name = SSticker.cultdat.get_name(const_type)
|
||||
icon_living = SSticker.cultdat.get_icon(const_type)
|
||||
icon_state = SSticker.cultdat.get_icon(const_type)
|
||||
|
||||
for(var/spell in construct_spells)
|
||||
AddSpell(new spell(null))
|
||||
|
||||
if(ticker.cultdat.theme == "blood")
|
||||
if(SSticker.cultdat.theme == "blood")
|
||||
updateglow()
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/examine(mob/user)
|
||||
|
||||
@@ -48,9 +48,9 @@
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/pet/cat/Runtime/Life(seconds, times_fired)
|
||||
if(!cats_deployed && ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
if(!cats_deployed && SSticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
Deploy_The_Cats()
|
||||
if(!stat && ticker.current_state == GAME_STATE_FINISHED && !memory_saved)
|
||||
if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved)
|
||||
Write_Memory()
|
||||
..()
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
del_on_death = 1
|
||||
|
||||
/mob/living/simple_animal/cockroach/can_die()
|
||||
return ..() && !ticker.cinematic //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes.
|
||||
return ..() && !SSticker.cinematic //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes.
|
||||
|
||||
/mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM)
|
||||
if(isliving(AM))
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
create_attack_log("<font color='red'>Logged out at [atom_loc_line(get_turf(src))]</font>")
|
||||
// `holder` is nil'd out by now, so we check the `admin_datums` array directly
|
||||
//Only report this stuff if we are currently playing.
|
||||
if(admin_datums[ckey] && ticker && ticker.current_state == GAME_STATE_PLAYING)
|
||||
if(admin_datums[ckey] && SSticker && SSticker.current_state == GAME_STATE_PLAYING)
|
||||
var/datum/admins/temp_admin = admin_datums[ckey]
|
||||
// Triggers on people with banhammer power only - no mentors tripping the alarm
|
||||
if(temp_admin.rights & R_BAN)
|
||||
|
||||
@@ -745,7 +745,7 @@ var/list/slot_equipment_priority = list( \
|
||||
to_chat(usr, "<span class='warning'>Respawning is disabled.</span>")
|
||||
return
|
||||
|
||||
if(stat != DEAD || !ticker)
|
||||
if(stat != DEAD || !SSticker)
|
||||
to_chat(usr, "<span class='boldnotice'>You must be dead to use this!</span>")
|
||||
return
|
||||
|
||||
@@ -1100,7 +1100,7 @@ var/list/slot_equipment_priority = list( \
|
||||
to_chat(usr, "<span class='warning'>You are banned from playing as sentient animals.</span>")
|
||||
return
|
||||
|
||||
if(!ticker || ticker.current_state < 3)
|
||||
if(!SSticker || SSticker.current_state < 3)
|
||||
to_chat(src, "<span class='warning'>You can't respawn as an NPC before the game starts!</span>")
|
||||
return
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
real_name = "Random Character Slot"
|
||||
var/output = "<center><p><a href='byond://?src=[UID()];show_preferences=1'>Setup Character</A><br /><i>[real_name]</i></p>"
|
||||
|
||||
if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
|
||||
if(!SSticker || SSticker.current_state <= GAME_STATE_PREGAME)
|
||||
if(!ready) output += "<p><a href='byond://?src=[UID()];ready=1'>Declare Ready</A></p>"
|
||||
else output += "<p><b>You are ready</b> (<a href='byond://?src=[UID()];ready=2'>Cancel</A>)</p>"
|
||||
else
|
||||
@@ -106,21 +106,21 @@
|
||||
|
||||
/mob/new_player/Stat()
|
||||
statpanel("Lobby")
|
||||
if(client.statpanel=="Lobby" && ticker)
|
||||
if(ticker.hide_mode)
|
||||
if(client.statpanel=="Lobby" && SSticker)
|
||||
if(SSticker.hide_mode)
|
||||
stat("Game Mode:", "Secret")
|
||||
else
|
||||
if(ticker.hide_mode == 0)
|
||||
if(SSticker.hide_mode == 0)
|
||||
stat("Game Mode:", "[master_mode]") // Old setting for showing the game mode
|
||||
else
|
||||
stat("Game Mode: ", "Secret")
|
||||
|
||||
if((ticker.current_state == GAME_STATE_PREGAME) && going)
|
||||
stat("Time To Start:", ticker.pregame_timeleft)
|
||||
if((ticker.current_state == GAME_STATE_PREGAME) && !going)
|
||||
if((SSticker.current_state == GAME_STATE_PREGAME) && going)
|
||||
stat("Time To Start:", SSticker.pregame_timeleft)
|
||||
if((SSticker.current_state == GAME_STATE_PREGAME) && !going)
|
||||
stat("Time To Start:", "DELAYED")
|
||||
|
||||
if(ticker.current_state == GAME_STATE_PREGAME)
|
||||
if(SSticker.current_state == GAME_STATE_PREGAME)
|
||||
stat("Players:", "[totalPlayers]")
|
||||
if(check_rights(R_ADMIN, 0, src))
|
||||
stat("Players Ready:", "[totalPlayersReady]")
|
||||
@@ -136,7 +136,7 @@
|
||||
..()
|
||||
|
||||
statpanel("Status")
|
||||
if(client.statpanel == "Status" && ticker)
|
||||
if(client.statpanel == "Status" && SSticker)
|
||||
show_stat_station_time()
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
if(!tos_consent)
|
||||
to_chat(usr, "<span class='warning'>You must consent to the terms of service before you can join!</span>")
|
||||
return 0
|
||||
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
|
||||
if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
|
||||
to_chat(usr, "<span class='warning'>The round is either not ready, or has already finished...</span>")
|
||||
return
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
/mob/new_player/proc/AttemptLateSpawn(rank,var/spawning_at)
|
||||
if(src != usr)
|
||||
return 0
|
||||
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
|
||||
if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
|
||||
to_chat(usr, "<span class='warning'>The round is either not ready, or has already finished...</span>")
|
||||
return 0
|
||||
if(!enter_allowed)
|
||||
@@ -330,7 +330,7 @@
|
||||
ai_character.moveToEmptyCore()
|
||||
AnnounceCyborg(ai_character, rank, "has been downloaded to the empty core in \the [get_area(ai_character)]")
|
||||
|
||||
ticker.mode.latespawn(ai_character)
|
||||
SSticker.mode.latespawn(ai_character)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
character = SSjobs.EquipRank(character, rank, 1) //equips the human
|
||||
EquipCustomItems(character)
|
||||
|
||||
ticker.mode.latespawn(character)
|
||||
SSticker.mode.latespawn(character)
|
||||
|
||||
if(character.mind.assigned_role == "Cyborg")
|
||||
AnnounceCyborg(character, rank, join_message)
|
||||
@@ -379,7 +379,7 @@
|
||||
callHook("latespawn", list(character))
|
||||
else
|
||||
data_core.manifest_inject(character)
|
||||
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
|
||||
SSticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
|
||||
AnnounceArrival(character, rank, join_message)
|
||||
callHook("latespawn", list(character))
|
||||
AddEmploymentContract(character)
|
||||
@@ -390,7 +390,7 @@
|
||||
|
||||
|
||||
/mob/new_player/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
|
||||
if(ticker.current_state == GAME_STATE_PLAYING)
|
||||
if(SSticker.current_state == GAME_STATE_PLAYING)
|
||||
var/ailist[] = list()
|
||||
for(var/mob/living/silicon/ai/A in GLOB.living_mob_list)
|
||||
ailist += A
|
||||
@@ -422,7 +422,7 @@
|
||||
employmentCabinet.addFile(employee)
|
||||
|
||||
/mob/new_player/proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message)
|
||||
if(ticker.current_state == GAME_STATE_PLAYING)
|
||||
if(SSticker.current_state == GAME_STATE_PLAYING)
|
||||
var/ailist[] = list()
|
||||
for(var/mob/living/silicon/ai/A in GLOB.living_mob_list)
|
||||
ailist += A
|
||||
@@ -536,7 +536,7 @@
|
||||
var/mob/living/carbon/human/new_character = new(loc)
|
||||
new_character.lastarea = get_area(loc)
|
||||
|
||||
if(ticker.random_players || appearance_isbanned(new_character))
|
||||
if(SSticker.random_players || appearance_isbanned(new_character))
|
||||
client.prefs.random_character()
|
||||
client.prefs.real_name = random_name(client.prefs.gender)
|
||||
client.prefs.copy_to(new_character)
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
/obj/singularity/narsie/large/New()
|
||||
..()
|
||||
icon_state = ticker.cultdat.entity_icon_state
|
||||
name = ticker.cultdat.entity_name
|
||||
icon_state = SSticker.cultdat.entity_icon_state
|
||||
name = SSticker.cultdat.entity_name
|
||||
to_chat(world, "<font size='15' color='red'><b> [name] HAS RISEN</b></font>")
|
||||
world << pick(sound('sound/hallucinations/im_here1.ogg'), sound('sound/hallucinations/im_here2.ogg'))
|
||||
|
||||
@@ -127,12 +127,12 @@
|
||||
/obj/singularity/narsie/proc/acquire(var/mob/food)
|
||||
if(food == target)
|
||||
return
|
||||
to_chat(target, "<span class='cultlarge'>[uppertext(ticker.cultdat.entity_name)] HAS LOST INTEREST IN YOU</span>")
|
||||
to_chat(target, "<span class='cultlarge'>[uppertext(SSticker.cultdat.entity_name)] HAS LOST INTEREST IN YOU</span>")
|
||||
target = food
|
||||
if(ishuman(target))
|
||||
to_chat(target, "<span class ='cultlarge'>[uppertext(ticker.cultdat.entity_name)] HUNGERS FOR YOUR SOUL</span>")
|
||||
to_chat(target, "<span class ='cultlarge'>[uppertext(SSticker.cultdat.entity_name)] HUNGERS FOR YOUR SOUL</span>")
|
||||
else
|
||||
to_chat(target, "<span class ='cultlarge'>[uppertext(ticker.cultdat.entity_name)] HAS CHOSEN YOU TO LEAD HER TO HER NEXT MEAL</span>")
|
||||
to_chat(target, "<span class ='cultlarge'>[uppertext(SSticker.cultdat.entity_name)] HAS CHOSEN YOU TO LEAD HER TO HER NEXT MEAL</span>")
|
||||
|
||||
//Wizard narsie
|
||||
/obj/singularity/narsie/wizard
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
return 0
|
||||
|
||||
/obj/machinery/power/smes/Destroy()
|
||||
if(ticker && ticker.current_state == GAME_STATE_PLAYING)
|
||||
if(SSticker && SSticker.current_state == GAME_STATE_PLAYING)
|
||||
var/area/area = get_area(src)
|
||||
if(area)
|
||||
message_admins("SMES deleted at (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>[area.name]</a>)")
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/diet_flags = DIET_OMNI | DIET_HERB | DIET_CARN
|
||||
|
||||
/datum/reagent/consumable/on_mob_life(mob/living/M)
|
||||
if(!(M.mind in ticker.mode.vampires))
|
||||
if(!(M.mind in SSticker.mode.vampires))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.can_eat(diet_flags)) //Make sure the species has it's dietflag set, otherwise it can't digest any nutrients
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/datum/reagent/consumable/nutriment/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(!(M.mind in ticker.mode.vampires))
|
||||
if(!(M.mind in SSticker.mode.vampires))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.can_eat(diet_flags)) //Make sure the species has it's dietflag set, otherwise it can't digest any nutrients
|
||||
|
||||
@@ -326,14 +326,14 @@
|
||||
if(current_cycle >= 75 && prob(33)) // 30 units, 150 seconds
|
||||
M.AdjustConfused(3)
|
||||
if(isvampirethrall(M))
|
||||
ticker.mode.remove_vampire_mind(M.mind)
|
||||
SSticker.mode.remove_vampire_mind(M.mind)
|
||||
holder.remove_reagent(id, volume)
|
||||
M.SetJitter(0)
|
||||
M.SetStuttering(0)
|
||||
M.SetConfused(0)
|
||||
return
|
||||
if(iscultist(M))
|
||||
ticker.mode.remove_cultist(M.mind)
|
||||
SSticker.mode.remove_cultist(M.mind)
|
||||
holder.remove_reagent(id, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
|
||||
M.SetJitter(0)
|
||||
M.SetStuttering(0)
|
||||
|
||||
@@ -21,11 +21,11 @@ var/ert_request_answered = FALSE
|
||||
if(!check_rights(R_EVENT))
|
||||
return
|
||||
|
||||
if(!ticker)
|
||||
if(!SSticker)
|
||||
to_chat(usr, "<span class='warning'>The game hasn't started yet!</span>")
|
||||
return
|
||||
|
||||
if(ticker.current_state == GAME_STATE_PREGAME)
|
||||
if(SSticker.current_state == GAME_STATE_PREGAME)
|
||||
to_chat(usr, "<span class='warning'>The round hasn't started yet!</span>")
|
||||
return
|
||||
|
||||
@@ -164,9 +164,9 @@ var/ert_request_answered = FALSE
|
||||
M.mind.original = M
|
||||
M.mind.assigned_role = SPECIAL_ROLE_ERT
|
||||
M.mind.special_role = SPECIAL_ROLE_ERT
|
||||
if(!(M.mind in ticker.minds))
|
||||
ticker.minds += M.mind //Adds them to regular mind list.
|
||||
ticker.mode.ert += M.mind
|
||||
if(!(M.mind in SSticker.minds))
|
||||
SSticker.minds += M.mind //Adds them to regular mind list.
|
||||
SSticker.mode.ert += M.mind
|
||||
M.forceMove(spawn_location)
|
||||
|
||||
SSjobs.CreateMoneyAccount(M, class, null)
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
trigger_armed_response_team(new /datum/response_team/amber) // No admins? No problem. Automatically send a code amber ERT.
|
||||
|
||||
/obj/machinery/keycard_auth/proc/is_ert_blocked()
|
||||
return ticker.mode && ticker.mode.ert_disabled
|
||||
return SSticker.mode && SSticker.mode.ert_disabled
|
||||
|
||||
var/global/maint_all_access = 0
|
||||
var/global/station_all_access = 0
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/datum/station_goal/dna_vault/New()
|
||||
..()
|
||||
animal_count = rand(15, 20) //might be too few given ~15 roundstart stationside ones
|
||||
human_count = rand(round(0.75 * ticker.mode.num_players_started()), ticker.mode.num_players_started()) // 75%+ roundstart population.
|
||||
human_count = rand(round(0.75 * SSticker.mode.num_players_started()), SSticker.mode.num_players_started()) // 75%+ roundstart population.
|
||||
var/non_standard_plants = non_standard_plants_count()
|
||||
plant_count = rand(round(0.5 * non_standard_plants),round(0.7 * non_standard_plants))
|
||||
|
||||
@@ -166,8 +166,8 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/
|
||||
F.parent = src
|
||||
fillers += F
|
||||
|
||||
if(ticker.mode)
|
||||
for(var/datum/station_goal/dna_vault/G in ticker.mode.station_goals)
|
||||
if(SSticker.mode)
|
||||
for(var/datum/station_goal/dna_vault/G in SSticker.mode.station_goals)
|
||||
animals_max = G.animal_count
|
||||
plants_max = G.plant_count
|
||||
dna_max = G.human_count
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
))
|
||||
data["notice"] = notice
|
||||
|
||||
var/datum/station_goal/station_shield/G = locate() in ticker.mode.station_goals
|
||||
var/datum/station_goal/station_shield/G = locate() in SSticker.mode.station_goals
|
||||
if(G)
|
||||
data["meteor_shield"] = 1
|
||||
data["meteor_shield_coverage"] = G.get_coverage()
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
to_chat(world, "<b>Station Goal</b> : [name] : <span class='boldannounce'>Failed!</span>")
|
||||
|
||||
/datum/station_goal/Destroy()
|
||||
ticker.mode.station_goals -= src
|
||||
SSticker.mode.station_goals -= src
|
||||
. = ..()
|
||||
|
||||
/datum/station_goal/Topic(href, href_list)
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
if(target.vision_type) //Turns off their darksight if it's still active.
|
||||
to_chat(target, "<span class='boldannounce'>Your eyes are suddenly wrought with immense pain as your darksight is forcibly dismissed!</span>")
|
||||
target.vision_type = null
|
||||
ticker.mode.remove_thrall(target.mind, 0)
|
||||
SSticker.mode.remove_thrall(target.mind, 0)
|
||||
target.visible_message("<span class='warning'>A strange black mass falls from [target]'s [E]!</span>")
|
||||
var/obj/item/organ/thing = new /obj/item/organ/internal/shadowtumor(get_turf(target))
|
||||
thing.set_dna(target.dna)
|
||||
|
||||
Reference in New Issue
Block a user