diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index c4e7813cf9f..4e8faaa6f70 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -7,9 +7,6 @@ VOX HEIST ROUNDTYPE var/global/vox_kills = 0 //Used to check the Inviolate. -/datum/game_mode - var/list/datum/mind/raiders = list() - /datum/game_mode/heist name = "heist" config_tag = "heist" @@ -21,7 +18,9 @@ var/global/vox_kills = 0 //Used to check the Inviolate. 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/raid_objectives = list() //Raid objectives. + var/list/datum/mind/raiders = list() //Antags. + var/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective. /datum/game_mode/heist/announce() world << "The current game mode is - Heist!" @@ -111,14 +110,14 @@ var/global/vox_kills = 0 //Used to check the Inviolate. spawn (rand(waittime_l, waittime_h)) send_intercept() -/datum/game_mode/heist/declare_completion() - /datum/game_mode/heist/proc/is_raider_crew_safe() - for(var/datum/mind/raider in raiders) - if(raider.current) - if (get_area(raider.current) != locate(/area/shuttle/vox/station)) - return 0 + if(cortical_stacks.len == 0) + return 0 + + for(var/obj/stack in cortical_stacks) + if (get_area(stack) != locate(/area/shuttle/vox/station)) + return 0 return 1 /datum/game_mode/heist/proc/is_raider_crew_alive() diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 903bb1b1bf9..a0c3be517b1 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -461,3 +461,7 @@ the implant may become unstable and either pre-maturely inject the subject or si islegal() return 0 + +/obj/item/weapon/implant/cortical + name = "cortical stack" + desc = "A fist-sized mass of biocircuits and chips." \ No newline at end of file diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm index b63362fbcd6..9313ecd69f7 100644 --- a/code/modules/admin/verbs/vox_raiders.dm +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -18,7 +18,14 @@ var/global/vox_tick = 1 equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. equip_to_slot_or_del(new /obj/item/device/chameleon(src), slot_l_store) - equip_to_slot_or_del(new /obj/item/weapon/gun/dartgun/vox/raider, slot_r_hand) + var/obj/item/weapon/crossbow/W = new(src) + W.cell = new /obj/item/weapon/cell/crap(W) + W.cell.charge = 500 + equip_to_slot_or_del(W, slot_r_hand) + + var/obj/item/stack/rods/A = new(src) + A.amount = 20 + equip_to_slot_or_del(A, slot_l_hand) if(2) // Vox engineer! equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit) @@ -37,15 +44,7 @@ var/global/vox_tick = 1 equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. equip_to_slot_or_del(new /obj/item/weapon/card/emag(src), slot_l_store) - - var/obj/item/weapon/crossbow/W = new(src) - W.cell = new /obj/item/weapon/cell/crap(W) - W.cell.charge = 500 - equip_to_slot_or_del(W, slot_r_hand) - - var/obj/item/stack/rods/A = new(src) - A.amount = 20 - equip_to_slot_or_del(A, slot_l_hand) + equip_to_slot_or_del(new /obj/item/weapon/gun/dartgun/vox/raider, slot_r_hand) if(4) // Vox medic! equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit) @@ -67,6 +66,17 @@ var/global/vox_tick = 1 W.registered_name = real_name equip_to_slot_or_del(W, slot_wear_id) + var/obj/item/weapon/implant/cortical/I = new(src) + I.imp_in = src + I.implanted = 1 + var/datum/organ/external/affected = src.get_organ("head") + affected.implants += I + I.part = affected + + if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist ) ) ) + var/datum/game_mode/heist/M = ticker.mode + M.cortical_stacks += I + vox_tick++ if (vox_tick > 4) vox_tick = 1