diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index 8b49a4574a2..475b13c3f7a 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -2,8 +2,12 @@
VOX HEIST ROUNDTYPE
*/
+var/global/list/raider_spawn = list()
+var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective. Clumsy, rewrite sometime.
+
/datum/game_mode/
var/list/datum/mind/raiders = list() //Antags.
+ var/list/raid_objectives = list() //Raid objectives
/datum/game_mode/heist
name = "heist"
@@ -16,9 +20,6 @@ VOX HEIST ROUNDTYPE
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
- var/list/raid_objectives = list() //Raid objectives.
- var/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective.
-
/datum/game_mode/heist/announce()
world << "The current game mode is - Heist!"
world << "An unidentified bluespace signature has slipped past the Icarus and is approaching [station_name()]!"
@@ -59,15 +60,6 @@ VOX HEIST ROUNDTYPE
/datum/game_mode/heist/post_setup()
- //Build a list of spawn points.
- var/list/turf/raider_spawn = list()
-
- for(var/obj/effect/landmark/L in landmarks_list)
- if(L.name == "voxstart")
- raider_spawn += get_turf(L)
- del(L)
- continue
-
//Generate objectives for the group.
if(!config.objectives_disabled)
raid_objectives = forge_vox_objectives()
@@ -83,49 +75,57 @@ VOX HEIST ROUNDTYPE
raider.current.loc = raider_spawn[index]
index++
- var/sounds = rand(2,8)
- var/i = 0
- var/newname = ""
-
- while(i<=sounds)
- i++
- newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
-
- var/mob/living/carbon/human/vox = raider.current
-
- vox.real_name = capitalize(newname)
- vox.name = vox.real_name
- raider.name = vox.name
- vox.age = rand(12,20)
- vox.dna.mutantrace = "vox"
- vox.set_species("Vox")
- vox.languages = list() // Removing language from chargen.
- vox.flavor_text = ""
- vox.add_language("Vox-pidgin")
- vox.h_style = "Short Vox Quills"
- vox.f_style = "Shaved"
- for(var/datum/organ/external/limb in vox.organs)
- limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
-
- //Now apply cortical stack.
- var/datum/organ/external/E = vox.get_organ("head")
- var/obj/item/weapon/implant/cortical/I = new(vox)
- I.imp_in = vox
- I.implanted = 1
- I.part = E
- E.implants += I
- cortical_stacks += I
-
- vox.equip_vox_raider()
- vox.regenerate_icons()
-
- raider.objectives = raid_objectives
+ create_vox(raider)
greet_vox(raider)
+ if(!config.objectives_disabled && raid_objectives)
+ raider.objectives = raid_objectives
+
spawn (rand(waittime_l, waittime_h))
send_intercept()
-/datum/game_mode/heist/proc/is_raider_crew_safe()
+/datum/game_mode/proc/create_vox(var/datum/mind/newraider)
+
+
+ var/sounds = rand(2,8)
+ var/i = 0
+ var/newname = ""
+
+ while(i<=sounds)
+ i++
+ newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah"))
+
+ var/mob/living/carbon/human/vox = newraider.current
+
+ vox.real_name = capitalize(newname)
+ vox.name = vox.real_name
+ newraider.name = vox.name
+ vox.age = rand(12,20)
+ vox.dna.mutantrace = "vox"
+ vox.set_species("Vox")
+ vox.languages = list() // Removing language from chargen.
+ vox.flavor_text = ""
+ vox.add_language("Vox-pidgin")
+ vox.h_style = "Short Vox Quills"
+ vox.f_style = "Shaved"
+
+ for(var/datum/organ/external/limb in vox.organs)
+ limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
+
+ //Generate cortical stack.
+ var/datum/organ/external/affected = vox.get_organ("head")
+
+ var/obj/item/weapon/implant/cortical/I = new(vox)
+ I.imp_in = vox
+ I.implanted = 1
+ affected.implants += I
+ I.part = affected
+ cortical_stacks += I
+
+ vox.equip_vox_raider()
+ vox.regenerate_icons()
+
+/datum/game_mode/proc/is_raider_crew_safe()
if(cortical_stacks.len == 0)
return 0
@@ -135,7 +135,7 @@ VOX HEIST ROUNDTYPE
return 0
return 1
-/datum/game_mode/heist/proc/is_raider_crew_alive()
+/datum/game_mode/proc/is_raider_crew_alive()
for(var/datum/mind/raider in raiders)
if(raider.current)
@@ -143,7 +143,7 @@ VOX HEIST ROUNDTYPE
return 1
return 0
-/datum/game_mode/heist/proc/forge_vox_objectives()
+/datum/game_mode/proc/forge_vox_objectives()
var/i = 1
var/max_objectives = pick(2,2,2,2,3,3,3,4)
@@ -171,7 +171,7 @@ VOX HEIST ROUNDTYPE
return objs
-/datum/game_mode/heist/proc/greet_vox(var/datum/mind/raider)
+/datum/game_mode/proc/greet_vox(var/datum/mind/raider)
raider.current << "\blue You are a Vox Raider, fresh from the Shoal!"
raider.current << "\blue The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to the frontier and much of the unexplored galaxy. You and the crew have come to the Exodus for plunder, trade or both."
raider.current << "\blue Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious."
@@ -294,4 +294,4 @@ datum/game_mode/proc/auto_declare_completion_heist()
//maybe send the player a message that they've gone home/been kidnapped? Someone responsible for vox lore should write that.
Del(M)
for (var/obj/O in skipjack.contents)
- Del(O) //no hiding in lockers or anything
+ Del(O) //no hiding in lockers or anything
\ No newline at end of file
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 53fbcba2f41..484dbd57e7d 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -1,3 +1,10 @@
+/*
+ NUCLEAR EMERGENCY ROUNDTYPE
+*/
+
+var/global/list/turf/synd_spawn = list()
+
+
/datum/game_mode
var/list/datum/mind/syndicates = list()
@@ -116,14 +123,6 @@
/datum/game_mode/nuclear/post_setup()
- var/list/turf/synd_spawn = list()
-
- for(var/obj/effect/landmark/A in landmarks_list)
- if(A.name == "Syndicate-Spawn")
- synd_spawn += get_turf(A)
- del(A)
- continue
-
var/obj/effect/landmark/uplinkdevice = locate("landmark*Syndicate-Uplink") //i will be rewriting this shortly
var/obj/effect/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb")
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index e287ee845d6..514a5b38f9f 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -81,6 +81,14 @@
ninjastart += loc
del(src)
+ if("voxstart")
+ raider_spawn += loc
+ del(src)
+
+ if("Syndicate-Spawn")
+ synd_spawn += loc
+ del(src)
+
landmarks_list += src
return 1
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index ac67a624e35..0a83ce49030 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -481,6 +481,9 @@
if(ticker.mode.traitors.len)
dat += check_role_table("Traitors", ticker.mode.traitors, src)
+ if(ticker.mode.borers.len)
+ dat += check_role_table("Cortical Borers", ticker.mode.borers, src)
+
var/datum/game_mode/mutiny/mutiny = get_mutiny_mode()
if(mutiny)
dat += mutiny.check_antagonists_ui(src)
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index fc147e04fda..95fbc615c8a 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -533,7 +533,7 @@ client/proc/one_click_antag()
if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist ) ) )
var/datum/game_mode/heist/M = ticker.mode
- M.cortical_stacks += I
+ cortical_stacks += I
M.raiders[new_vox.mind] = I
ticker.mode.traitors += new_vox.mind