Prevents objectives targeting clientless mobs

Fixes bug where clientless mobs (e.g: gateway NPCs) can be made into
objective targets.
This commit is contained in:
Kyep
2016-07-16 20:21:12 -07:00
parent 7b454595d7
commit 2f66464726
+4 -4
View File
@@ -31,7 +31,7 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
proc/find_target()
var/list/possible_targets = list()
for(var/datum/mind/possible_target in ticker.minds)
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != DEAD))
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != DEAD) && possible_target.current.client)
possible_targets += possible_target
if(possible_targets.len > 0)
target = pick(possible_targets)
@@ -39,7 +39,7 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
proc/find_target_by_role(role, role_type=0)//Option sets either to check assigned role or special role. Default to assigned.
var/list/possible_targets = list()
for(var/datum/mind/possible_target in ticker.minds)
if((possible_target != owner) && ishuman(possible_target.current) && ((role_type ? possible_target.special_role : possible_target.assigned_role) == role) && (possible_target.current.stat != DEAD) )
if((possible_target != owner) && ishuman(possible_target.current) && ((role_type ? possible_target.special_role : possible_target.assigned_role) == role) && (possible_target.current.stat != DEAD) && possible_target.current.client)
possible_targets += possible_target
if(possible_targets.len > 0)
target = pick(possible_targets)
@@ -48,7 +48,7 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
proc/find_target_with_special_role(role)
var/list/possible_targets = list()
for(var/datum/mind/possible_target in ticker.minds)
if((possible_target != owner) && ishuman(possible_target.current) && (role && possible_target.special_role == role || !role && possible_target.special_role) && (possible_target.current.stat != DEAD) )
if((possible_target != owner) && ishuman(possible_target.current) && (role && possible_target.special_role == role || !role && possible_target.special_role) && (possible_target.current.stat != DEAD) && possible_target.current.client)
possible_targets += possible_target
if(possible_targets.len > 0)
target = pick(possible_targets)
@@ -376,7 +376,7 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
find_target()
var/list/possible_targets = list() //Copypasta because NO_SCAN races, yay for snowflakes.
for(var/datum/mind/possible_target in ticker.minds)
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != DEAD))
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != DEAD) && possible_target.current.client)
var/mob/living/carbon/human/H = possible_target.current
if(!(H.species.flags & NO_SCAN))
possible_targets += possible_target