Resolves #6923 - Mistake made during merging meant that some gamemode objectives were using hardcoded area-type-lists for checking objective completion. (This is why allow/disallow lists are dumb)

This commit is contained in:
carnie
2015-01-10 03:57:02 +00:00
parent 06ffa0768e
commit e7b105488d
8 changed files with 19 additions and 21 deletions

View File

@@ -347,8 +347,7 @@ var/datum/subsystem/ticker/ticker
if(Player.stat != DEAD && !isbrain(Player))
num_survivors++
if(station_evacuated) //If the shuttle has already left the station
var/turf/playerTurf = get_turf(Player)
if(!playerTurf || playerTurf.z != ZLEVEL_CENTCOM)
if(!Player.onCentcom())
Player << "<font color='blue'><b>You managed to survive, but were marooned on [station_name()]...</b></FONT>"
else
num_escapees++

View File

@@ -1540,11 +1540,6 @@ proc/process_ghost_teleport_locs()
Used in gamemodes code at the moment. --rastaf0
*/
// CENTCOM
var/list/centcom_areas = list (
/area/centcom
)
//SPACE STATION 13
var/list/the_station_areas = list (
/area/atmos,

View File

@@ -21,6 +21,16 @@
// replaced by OPENCONTAINER flags and atom/proc/is_open_container()
///Chemistry.
/atom/proc/onCentcom()
var/turf/T = get_turf(src)
if(!T)
return 0
if(T.z != ZLEVEL_CENTCOM)
return 0
if(T.y > 160)
return 0
return 1
/atom/proc/throw_impact(atom/hit_atom)
if(istype(hit_atom,/mob/living))
var/mob/living/M = hit_atom
@@ -405,4 +415,4 @@ var/list/blood_splatter_icons = list()
return
/atom/proc/narsie_act()
return
return

View File

@@ -275,9 +275,8 @@
/datum/game_mode/cult/proc/check_survive()
acolytes_survived = 0
for(var/datum/mind/cult_mind in cult)
if (cult_mind.current && cult_mind.current.stat!=2)
var/area/A = get_area(cult_mind.current )
if ( is_type_in_list(A, centcom_areas))
if (cult_mind.current && cult_mind.current.stat != DEAD)
if(cult_mind.current.onCentcom())
acolytes_survived++
if(acolytes_survived>=acolytes_needed)
return 0

View File

@@ -32,8 +32,7 @@
if(player.stat != DEAD)
++survivors
var/turf/T = get_turf(player)
if(T && T.z == ZLEVEL_CENTCOM)
if(player.onCentcom())
text += "<br><b><font size=2>[player.real_name] escaped to the safety of Centcom.</font></b>"
else
text += "<br><font size=1>[player.real_name] survived but is stranded without any hope of rescue.</font>"

View File

@@ -72,8 +72,7 @@
/datum/game_mode/monkey/proc/check_monkey_victory()
for(var/mob/living/carbon/monkey/M in living_mob_list)
if (M.HasDisease(/datum/disease/transformation/jungle_fever))
var/area/A = get_area(M)
if(is_type_in_list(A, centcom_areas))
if(M.onCentcom())
escaped_monkeys++
if(escaped_monkeys >= monkeys_to_win)
return 0

View File

@@ -206,8 +206,7 @@
/datum/game_mode/nuclear/declare_completion()
var/disk_rescued = 1
for(var/obj/item/weapon/disk/nuclear/D in world)
var/disk_area = get_area(D)
if(!is_type_in_list(disk_area, centcom_areas))
if(!D.onCentcom())
disk_rescued = 0
break
var/crew_evacuated = (SSshuttle.emergency.mode >= SHUTTLE_ENDGAME)

View File

@@ -109,9 +109,7 @@ datum/objective/maroon/check_completion()
if(target && target.current)
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite
return 1
var/turf/T = get_turf(target.current)
if(T.z == ZLEVEL_CENTCOM)
if(target.current.onCentcom())
return 0
return 1
@@ -252,7 +250,7 @@ datum/objective/escape/check_completion()
if(istype(location, /turf/simulated/shuttle/floor4)) // Fails traitors if they are in the shuttle brig -- Polymorph
return 0
if(location.z == ZLEVEL_CENTCOM)
if(location.onCentcom())
return 1
return 0