mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 10:01:40 +00:00
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:
@@ -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++
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user