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
@@ -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
+1 -1
View File
@@ -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>")
+1 -1
View File
@@ -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
+6 -6
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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))
+5 -5
View File
@@ -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"
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -691,7 +691,7 @@
return name
/mob/living/update_gravity(has_gravity)
if(!ticker)
if(!SSticker)
return
if(has_gravity)
clear_alert("weightless")
+1 -1
View File
@@ -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
+10 -10
View File
@@ -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))
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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
+17 -17
View File
@@ -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)
+5 -5
View File
@@ -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
+1 -1
View File
@@ -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)
+5 -5
View File
@@ -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
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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()
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)