April sync (#360)

* Maps and things no code/icons

* helpers defines globalvars

* Onclick world.dm orphaned_procs

* subsystems

Round vote and shuttle autocall done here too

* datums

* Game folder

* Admin - chatter modules

* clothing - mining

* modular computers - zambies

* client

* mob level 1

* mob stage 2 + simple_animal

* silicons n brains

* mob stage 3 + Alien/Monkey

* human mobs

* icons updated

* some sounds

* emitter y u no commit

* update tgstation.dme

* compile fixes

* travis fixes

Also removes Fast digest mode, because reasons.

* tweaks for travis Mentors are broke again

Also fixes Sizeray guns

* oxygen loss fix for vore code.

* removes unused code

* some code updates

* bulk fixes

* further fixes

* outside things

* whoops.

* Maint bar ported

* GLOBs.
This commit is contained in:
Poojawa
2017-04-13 23:37:00 -05:00
committed by GitHub
parent cdc32c98fa
commit 7e9b96a00f
1322 changed files with 174827 additions and 23888 deletions
+26 -24
View File
@@ -46,12 +46,12 @@
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
/datum/game_mode/proc/update_synd_icons_added(datum/mind/synd_mind)
var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS]
var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS]
opshud.join_hud(synd_mind.current)
set_antag_hud(synd_mind.current, "synd")
/datum/game_mode/proc/update_synd_icons_removed(datum/mind/synd_mind)
var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS]
var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS]
opshud.leave_hud(synd_mind.current)
set_antag_hud(synd_mind.current, null)
@@ -62,7 +62,7 @@
var/list/turf/synd_spawn = list()
for(var/obj/effect/landmark/A in landmarks_list)
for(var/obj/effect/landmark/A in GLOB.landmarks_list)
if(A.name == "Syndicate-Spawn")
synd_spawn += get_turf(A)
continue
@@ -93,7 +93,7 @@
agent_number++
spawnpos++
update_synd_icons_added(synd_mind)
var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list
var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in GLOB.nuke_list
if(nuke)
nuke.r_code = nuke_code
return ..()
@@ -116,7 +116,7 @@
if(foundIDs.len)
for(var/obj/item/weapon/card/id/ID in foundIDs)
ID.name = "lead agent card"
ID.access += access_syndicate_leader
ID.access += GLOB.access_syndicate_leader
else
message_admins("Warning: Nuke Ops spawned without access to leave their spawn area!")
@@ -170,19 +170,21 @@
return 0
return 1
/datum/game_mode/nuclear/check_finished() //to be called by ticker
/datum/game_mode/nuclear/check_finished() //to be called by SSticker
if(replacementmode && round_converted == 2)
return replacementmode.check_finished()
if((SSshuttle.emergency.mode == SHUTTLE_ENDGAME) || station_was_nuked)
return 1
if(are_operatives_dead())
if(bomb_set) //snaaaaaaaaaake! It's not over yet!
return 0
var/obj/machinery/nuclearbomb/N
pass(N) //suppress unused warning
if(N.bomb_set) //snaaaaaaaaaake! It's not over yet!
return 0 //its a static var btw
..()
/datum/game_mode/nuclear/declare_completion()
var/disk_rescued = 1
for(var/obj/item/weapon/disk/nuclear/D in poi_list)
for(var/obj/item/weapon/disk/nuclear/D in GLOB.poi_list)
if(!D.onCentcom())
disk_rescued = 0
break
@@ -201,83 +203,83 @@
to_chat(world, "<FONT size = 3><B>Humiliating Syndicate Defeat</B></FONT>")
to_chat(world, "<B>The crew of [station_name()] gave [syndicate_name()] operatives back their bomb! The syndicate base was destroyed!</B> Next time, don't lose the nuke!")
ticker.news_report = NUKE_SYNDICATE_BASE
SSticker.news_report = NUKE_SYNDICATE_BASE
else if(!disk_rescued && station_was_nuked && !syndies_didnt_escape)
feedback_set_details("round_end_result","win - syndicate nuke")
to_chat(world, "<FONT size = 3><B>Syndicate Major Victory!</B></FONT>")
to_chat(world, "<B>[syndicate_name()] operatives have destroyed [station_name()]!</B>")
ticker.news_report = STATION_NUKED
SSticker.news_report = STATION_NUKED
else if (!disk_rescued && station_was_nuked && syndies_didnt_escape)
feedback_set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time")
to_chat(world, "<FONT size = 3><B>Total Annihilation</B></FONT>")
to_chat(world, "<B>[syndicate_name()] operatives destroyed [station_name()] but did not leave the area in time and got caught in the explosion.</B> Next time, don't lose the disk!")
ticker.news_report = STATION_NUKED
SSticker.news_report = STATION_NUKED
else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape)
feedback_set_details("round_end_result","halfwin - blew wrong station")
to_chat(world, "<FONT size = 3><B>Crew Minor Victory</B></FONT>")
to_chat(world, "<B>[syndicate_name()] operatives secured the authentication disk but blew up something that wasn't [station_name()].</B> Next time, don't do that!")
ticker.news_report = NUKE_MISS
SSticker.news_report = NUKE_MISS
else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape)
feedback_set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time")
to_chat(world, "<FONT size = 3><B>[syndicate_name()] operatives have earned Darwin Award!</B></FONT>")
to_chat(world, "<B>[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion.</B> Next time, don't do that!")
ticker.news_report = NUKE_MISS
SSticker.news_report = NUKE_MISS
else if ((disk_rescued || SSshuttle.emergency.mode != SHUTTLE_ENDGAME) && are_operatives_dead())
feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead")
to_chat(world, "<FONT size = 3><B>Crew Major Victory!</B></FONT>")
to_chat(world, "<B>The Research Staff has saved the disk and killed the [syndicate_name()] Operatives</B>")
ticker.news_report = OPERATIVES_KILLED
SSticker.news_report = OPERATIVES_KILLED
else if (disk_rescued)
feedback_set_details("round_end_result","loss - evacuation - disk secured")
to_chat(world, "<FONT size = 3><B>Crew Major Victory</B></FONT>")
to_chat(world, "<B>The Research Staff has saved the disk and stopped the [syndicate_name()] Operatives!</B>")
ticker.news_report = OPERATIVES_KILLED
SSticker.news_report = OPERATIVES_KILLED
else if (!disk_rescued && are_operatives_dead())
feedback_set_details("round_end_result","halfwin - evacuation - disk not secured")
to_chat(world, "<FONT size = 3><B>Neutral Victory!</B></FONT>")
to_chat(world, "<B>The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!</B>")
ticker.news_report = OPERATIVE_SKIRMISH
SSticker.news_report = OPERATIVE_SKIRMISH
else if (!disk_rescued && crew_evacuated)
feedback_set_details("round_end_result","halfwin - detonation averted")
to_chat(world, "<FONT size = 3><B>Syndicate Minor Victory!</B></FONT>")
to_chat(world, "<B>[syndicate_name()] operatives survived the assault but did not achieve the destruction of [station_name()].</B> Next time, don't lose the disk!")
ticker.news_report = OPERATIVE_SKIRMISH
SSticker.news_report = OPERATIVE_SKIRMISH
else if (!disk_rescued && !crew_evacuated)
feedback_set_details("round_end_result","halfwin - interrupted")
to_chat(world, "<FONT size = 3><B>Neutral Victory</B></FONT>")
to_chat(world, "<B>Round was mysteriously interrupted!</B>")
ticker.news_report = OPERATIVE_SKIRMISH
SSticker.news_report = OPERATIVE_SKIRMISH
..()
return
/datum/game_mode/proc/auto_declare_completion_nuclear()
if( syndicates.len || (ticker && istype(ticker.mode,/datum/game_mode/nuclear)) )
if( syndicates.len || (SSticker && istype(SSticker.mode,/datum/game_mode/nuclear)) )
var/text = "<br><FONT size=3><B>The syndicate operatives were:</B></FONT>"
var/purchases = ""
var/TC_uses = 0
for(var/datum/mind/syndicate in syndicates)
text += printplayer(syndicate)
for(var/obj/item/device/uplink/H in uplinks)
for(var/obj/item/device/uplink/H in GLOB.uplinks)
if(H && H.owner && H.owner == syndicate.key)
TC_uses += H.spent_telecrystals
purchases += H.purchase_log
@@ -290,7 +292,7 @@
/proc/nukelastname(mob/M) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho.
var/randomname = pick(last_names)
var/randomname = pick(GLOB.last_names)
var/newname = copytext(sanitize(input(M,"You are the nuke operative [pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")]. Please choose a last name for your family.", "Name change",randomname)),1,MAX_NAME_LEN)
if (!newname)
@@ -311,7 +313,7 @@
return
/proc/is_nuclear_operative(mob/M)
return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.syndicates
return M && istype(M) && M.mind && SSticker && SSticker.mode && M.mind in SSticker.mode.syndicates
/datum/outfit/syndicate
name = "Syndicate Operative - Basic"
@@ -334,7 +336,7 @@
/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H)
var/obj/item/device/radio/R = H.ears
R.set_frequency(SYND_FREQ)
R.set_frequency(GLOB.SYND_FREQ)
R.freqlock = 1
if(tc)
@@ -17,7 +17,7 @@
return
declaring_war = TRUE
var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No")
var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-SSticker.round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No")
declaring_war = FALSE
if(!check_allowed(user))
@@ -48,7 +48,7 @@
to_chat(user, "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.")
for(var/V in syndicate_shuttle_boards)
for(var/V in GLOB.syndicate_shuttle_boards)
var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V
board.challenge = TRUE
@@ -64,16 +64,16 @@
if(declaring_war)
to_chat(user, "You are already in the process of declaring war! Make your mind up.")
return 0
if(player_list.len < CHALLENGE_MIN_PLAYERS)
if(GLOB.player_list.len < CHALLENGE_MIN_PLAYERS)
to_chat(user, "The enemy crew is too small to be worth declaring war on.")
return 0
if(user.z != ZLEVEL_CENTCOM)
to_chat(user, "You have to be at your base to use this.")
return 0
if(world.time-round_start_time > CHALLENGE_TIME_LIMIT)
if(world.time-SSticker.round_start_time > CHALLENGE_TIME_LIMIT)
to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.")
return 0
for(var/V in syndicate_shuttle_boards)
for(var/V in GLOB.syndicate_shuttle_boards)
var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V
if(board.moved)
to_chat(user, "The shuttle has already been moved! You have forfeit the right to declare war.")
+24 -24
View File
@@ -10,7 +10,6 @@
#define NUKE_ON_TIMING 2
#define NUKE_ON_EXPLODING 3
var/bomb_set
/obj/machinery/nuclearbomb
name = "nuclear fission explosive"
@@ -41,15 +40,16 @@ var/bomb_set
var/image/lights = null
var/image/interior = null
var/obj/effect/countdown/nuclearbomb/countdown
var/static/bomb_set
/obj/machinery/nuclearbomb/New()
..()
countdown = new(src)
nuke_list += src
GLOB.nuke_list += src
core = new /obj/item/nuke_core(src)
STOP_PROCESSING(SSobj, core)
update_icon()
poi_list |= src
GLOB.poi_list |= src
previous_level = get_security_level()
/obj/machinery/nuclearbomb/Destroy()
@@ -57,8 +57,8 @@ var/bomb_set
if(!exploding)
// If we're not exploding, set the alert level back to normal
set_safety()
poi_list -= src
nuke_list -= src
GLOB.poi_list -= src
GLOB.nuke_list -= src
if(countdown)
qdel(countdown)
countdown = null
@@ -239,7 +239,7 @@ var/bomb_set
/obj/machinery/nuclearbomb/attack_paw(mob/user)
return attack_hand(user)
/obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key="main", datum/tgui/ui=null, force_open=0, datum/tgui/master_ui=null, datum/ui_state/state=default_state)
/obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key="main", datum/tgui/ui=null, force_open=0, datum/tgui/master_ui=null, datum/ui_state/state=GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "nuclear_bomb", name, 500, 600, master_ui, state)
@@ -361,7 +361,7 @@ var/bomb_set
if(safety)
if(timing)
set_security_level(previous_level)
for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list)
for(var/obj/item/weapon/pinpointer/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(initial(S.mode))
S.nuke_warning = FALSE
timing = FALSE
@@ -380,14 +380,14 @@ var/bomb_set
bomb_set = TRUE
set_security_level("delta")
detonation_timer = world.time + (timer_set * 10)
for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list)
for(var/obj/item/weapon/pinpointer/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(TRACK_INFILTRATOR)
countdown.start()
else
bomb_set = FALSE
detonation_timer = null
set_security_level(previous_level)
for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list)
for(var/obj/item/weapon/pinpointer/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(initial(S.mode))
S.nuke_warning = FALSE
countdown.stop()
@@ -419,18 +419,18 @@ var/bomb_set
yes_code = FALSE
safety = TRUE
update_icon()
for(var/mob/M in player_list)
for(var/mob/M in GLOB.player_list)
M << 'sound/machines/Alarm.ogg'
if(ticker && ticker.mode)
ticker.mode.explosion_in_progress = 1
if(SSticker && SSticker.mode)
SSticker.mode.explosion_in_progress = 1
sleep(100)
if(!core)
ticker.station_explosion_cinematic(3,"no_core",src)
ticker.mode.explosion_in_progress = 0
SSticker.station_explosion_cinematic(3,"no_core",src)
SSticker.mode.explosion_in_progress = 0
return
enter_allowed = 0
GLOB.enter_allowed = 0
var/off_station = 0
var/turf/bomb_location = get_turf(src)
@@ -445,18 +445,18 @@ var/bomb_set
else
off_station = NUKE_NEAR_MISS
if(istype(ticker.mode, /datum/game_mode/nuclear))
if(istype(SSticker.mode, /datum/game_mode/nuclear))
var/obj/docking_port/mobile/Shuttle = SSshuttle.getShuttle("syndicate")
var/datum/game_mode/nuclear/NM = ticker.mode
var/datum/game_mode/nuclear/NM = SSticker.mode
NM.syndies_didnt_escape = (Shuttle && Shuttle.z == ZLEVEL_CENTCOM) ? 0 : 1
NM.nuke_off_station = off_station
ticker.station_explosion_cinematic(off_station,null,src)
if(ticker.mode)
if(istype(ticker.mode, /datum/game_mode/nuclear))
var/datum/game_mode/nuclear/NM = ticker.mode
SSticker.station_explosion_cinematic(off_station,null,src)
if(SSticker.mode)
if(istype(SSticker.mode, /datum/game_mode/nuclear))
var/datum/game_mode/nuclear/NM = SSticker.mode
NM.nukes_left --
if(!ticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
if(!SSticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
spawn()
world.Reboot("Station destroyed by Nuclear Device.", "end_error", "nuke - unhandled ending")
@@ -501,7 +501,7 @@ This is here to make the tiles around the station mininuke change when it's arme
/obj/item/weapon/disk/nuclear/New()
..()
poi_list |= src
GLOB.poi_list |= src
set_stationloving(TRUE, inform_admins=TRUE)
/obj/item/weapon/disk/nuclear/attackby(obj/item/I, mob/living/user, params)
@@ -521,7 +521,7 @@ This is here to make the tiles around the station mininuke change when it's arme
/obj/item/weapon/disk/nuclear/Destroy(force=FALSE)
// respawning is handled in /obj/Destroy()
if(force)
poi_list -= src
GLOB.poi_list -= src
. = ..()
/obj/item/weapon/disk/nuclear/suicide_act(mob/user)
+7 -7
View File
@@ -22,11 +22,11 @@
/obj/item/weapon/pinpointer/New()
..()
pinpointer_list += src
GLOB.pinpointer_list += src
/obj/item/weapon/pinpointer/Destroy()
STOP_PROCESSING(SSfastprocess, src)
pinpointer_list -= src
GLOB.pinpointer_list -= src
return ..()
/obj/item/weapon/pinpointer/attack_self(mob/living/user)
@@ -66,7 +66,7 @@
else
msg = "Its tracking indicator is blank."
to_chat(user, msg)
for(var/obj/machinery/nuclearbomb/bomb in machines)
for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines)
if(bomb.timing)
to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]")
@@ -91,11 +91,11 @@
var/obj/item/weapon/disk/nuclear/N = locate()
target = N
if(TRACK_MALF_AI)
for(var/V in ai_list)
for(var/V in GLOB.ai_list)
var/mob/living/silicon/ai/A = V
if(A.nuking)
target = A
for(var/V in apcs_list)
for(var/V in GLOB.apcs_list)
var/obj/machinery/power/apc/A = V
if(A.malfhack && A.occupier)
target = A
@@ -104,7 +104,7 @@
if(TRACK_OPERATIVES)
var/list/possible_targets = list()
var/turf/here = get_turf(src)
for(var/V in ticker.mode.syndicates)
for(var/V in SSticker.mode.syndicates)
var/datum/mind/M = V
if(M.current && M.current.stat != DEAD)
possible_targets |= M.current
@@ -142,7 +142,7 @@
icon_state = "pinon[nuke_warning ? "alert" : "far"]"
/obj/item/weapon/pinpointer/proc/my_god_jc_a_bomb() //If we should get the hell back to the ship
for(var/obj/machinery/nuclearbomb/bomb in nuke_list)
for(var/obj/machinery/nuclearbomb/bomb in GLOB.nuke_list)
if(bomb.timing)
if(!nuke_warning)
nuke_warning = TRUE