I hate objectives

This commit is contained in:
Tigercat2000
2016-01-14 13:55:42 -08:00
parent 9b96b2be3c
commit 9baf614f82
2 changed files with 48 additions and 24 deletions
+3 -6
View File
@@ -129,20 +129,18 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
return 0
for(var/obj/stack in cortical_stacks)
if (get_area(stack.loc) != locate(/area/shuttle/vox/station))
return 0
if(get_area(stack) != locate(/area/shuttle/vox) && get_area(stack) != locate(/area/vox_station))
return 0 //this is stupid as fuck
return 1
/datum/game_mode/proc/is_raider_crew_alive()
for(var/datum/mind/raider in raiders)
if(raider.current)
if(istype(raider.current,/mob/living/carbon/human) && raider.current.stat != 2)
if(istype(raider.current,/mob/living/carbon/human) && raider.current.stat != DEAD)
return 1
return 0
/datum/game_mode/proc/forge_vox_objectives()
var/i = 1
var/max_objectives = pick(2,2,2,2,3,3,3,4)
var/list/objs = list()
@@ -179,7 +177,6 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
show_objectives(raider)
/datum/game_mode/heist/declare_completion()
//No objectives, go straight to the feedback.
if(!(raid_objectives.len)) return ..()
+45 -18
View File
@@ -852,19 +852,21 @@ datum/objective/heist/kidnap
check_completion()
if(target && target.current)
if (target.current.stat == DEAD)
return 0 // They're dead. Fail.
//if (!target.current.restrained())
// return 0 // They're loose. Close but no cigar.
return 0
var/area/shuttle/vox/A = locate() //stupid fucking hardcoding
var/area/vox_station/B = locate() //but necessary
var/area/shuttle/vox/station/A = locate()
for(var/mob/living/carbon/human/M in A)
if(target.current == M)
return 1 //They're restrained on the shuttle. Success.
return 1
for(var/mob/living/carbon/human/M in B)
if(target.current == M)
return 1
else
return 0
datum/objective/heist/loot
choose_target()
var/loot = "an object"
switch(rand(1,8))
@@ -904,26 +906,38 @@ datum/objective/heist/loot
explanation_text = "We are lacking in hardware. Steal or trade [loot]."
check_completion()
var/total_amount = 0
for(var/obj/O in locate(/area/shuttle/vox/station))
if(istype(O,target)) total_amount++
for(var/obj/O in locate(/area/shuttle/vox))
if(istype(O, target))
total_amount++
for(var/obj/I in O.contents)
if(istype(I,target)) total_amount++
if(total_amount >= target_amount) return 1
if(istype(I, target))
total_amount++
if(total_amount >= target_amount)
return 1
for(var/obj/O in locate(/area/vox_station))
if(istype(O, target))
total_amount++
for(var/obj/I in O.contents)
if(istype(I, target))
total_amount++
if(total_amount >= target_amount)
return 1
var/datum/game_mode/heist/H = ticker.mode
for(var/datum/mind/raider in H.raiders)
if(raider.current)
for(var/obj/O in raider.current.get_contents())
if(istype(O,target)) total_amount++
if(total_amount >= target_amount) return 1
if(istype(O,target))
total_amount++
if(total_amount >= target_amount)
return 1
return 0
datum/objective/heist/salvage
choose_target()
switch(rand(1,8))
if(1)
@@ -954,16 +968,28 @@ datum/objective/heist/salvage
explanation_text = "Ransack or trade with the station and escape with [target_amount] [target]."
check_completion()
var/total_amount = 0
for(var/obj/item/O in locate(/area/shuttle/vox/station))
for(var/obj/item/O in locate(/area/shuttle/vox))
var/obj/item/stack/sheet/S
if(istype(O,/obj/item/stack/sheet))
if(O.name == target)
S = O
total_amount += S.get_amount()
for(var/obj/I in O.contents)
if(istype(I,/obj/item/stack/sheet))
if(I.name == target)
S = I
total_amount += S.get_amount()
for(var/obj/item/O in locate(/area/vox_station))
var/obj/item/stack/sheet/S
if(istype(O,/obj/item/stack/sheet))
if(O.name == target)
S = O
total_amount += S.get_amount()
for(var/obj/I in O.contents)
if(istype(I,/obj/item/stack/sheet))
if(I.name == target)
@@ -988,7 +1014,8 @@ datum/objective/heist/inviolate_crew
check_completion()
var/datum/game_mode/heist/H = ticker.mode
if(H.is_raider_crew_safe()) return 1
if(H.is_raider_crew_safe())
return 1
return 0
#define MAX_VOX_KILLS 10 //Number of kills during the round before the Inviolate is broken.