[NON-MODULAR] Players in the interlink can no longer be selected as antagonist objective targets (#9619)

* objective

* lets do obsessed while we're at it

* missed a bit

* fix + other kind of obsession

* Sure

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Fixed

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
This commit is contained in:
Zonespace
2021-12-16 17:28:30 -08:00
committed by GitHub
parent 21f8381327
commit 549f881be0
4 changed files with 23 additions and 5 deletions

View File

@@ -126,6 +126,10 @@
continue continue
if(!(player.mind.assigned_role.job_flags & JOB_CREW_MEMBER)) if(!(player.mind.assigned_role.job_flags & JOB_CREW_MEMBER))
continue continue
// SKYRAT EDIT ADDITION START - Players in the interlink can't be obsession targets
if(SSticker.IsRoundInProgress() && istype(get_area(player), /area/centcom/interlink))
continue
// SKYRAT EDIT END
viable_minds += player.mind viable_minds += player.mind
for(var/datum/mind/possible_target as anything in viable_minds) for(var/datum/mind/possible_target as anything in viable_minds)
if(possible_target != owner && ishuman(possible_target.current)) if(possible_target != owner && ishuman(possible_target.current))

View File

@@ -136,6 +136,10 @@ GLOBAL_LIST_EMPTY(objectives) //SKYRAT EDIT ADDITION
continue continue
if(possible_target in blacklist) if(possible_target in blacklist)
continue continue
// SKYRAT EDIT ADDITION START - Players in the interlink can't be obsession targets
if(SSticker.IsRoundInProgress() && istype(target_area, /area/centcom/interlink))
continue
// SKYRAT EDIT END
possible_targets += possible_target possible_targets += possible_target
if(try_target_late_joiners) if(try_target_late_joiners)
var/list/all_possible_targets = possible_targets.Copy() var/list/all_possible_targets = possible_targets.Copy()

View File

@@ -356,11 +356,19 @@
var/datum/team/cult/cult = team var/datum/team/cult/cult = team
var/list/target_candidates = list() var/list/target_candidates = list()
for(var/mob/living/carbon/human/player in GLOB.player_list) for(var/mob/living/carbon/human/player in GLOB.player_list)
// SKYRAT EDIT ADDITION START - Players in the interlink can't be obsession targets
if(SSticker.IsRoundInProgress() && istype(get_area(player), /area/centcom/interlink))
continue
// SKYRAT EDIT END
if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && !is_convertable_to_cult(player) && player.stat != DEAD) if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && !is_convertable_to_cult(player) && player.stat != DEAD)
target_candidates += player.mind target_candidates += player.mind
if(target_candidates.len == 0) if(target_candidates.len == 0)
message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target.") message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target.")
for(var/mob/living/carbon/human/player in GLOB.player_list) for(var/mob/living/carbon/human/player in GLOB.player_list)
// SKYRAT EDIT ADDITION START - Players in the interlink can't be obsession targets
if(SSticker.IsRoundInProgress() && istype(get_area(player), /area/centcom/interlink))
continue
// SKYRAT EDIT END
if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && player.stat != DEAD) if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && player.stat != DEAD)
target_candidates += player.mind target_candidates += player.mind
list_clear_nulls(target_candidates) list_clear_nulls(target_candidates)

View File

@@ -125,10 +125,12 @@ But i keeped it as unobtainable breain trauma, so admins can add it through VV *
var/list/special_pool = list() //The special list, for quirk-based var/list/special_pool = list() //The special list, for quirk-based
var/chosen_victim //The obsession target var/chosen_victim //The obsession target
for(var/mob/Player in GLOB.player_list)//prevents crewmembers falling in love with nuke ops they never met, and other annoying hijinks for(var/mob/player in GLOB.player_list) //prevents crewmembers falling in love with nuke ops they never met, and other annoying hijinks
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client && Player != owner && SSjob.GetJob(Player.mind.assigned_role)) if(SSticker.IsRoundInProgress() && istype(get_area(player), /area/centcom/interlink))
if(Player.client.prefs?.read_preference(/datum/preference/toggle/erp/noncon)) continue
viable_minds += Player.mind if(player.mind && player.stat != DEAD && !isnewplayer(player) && !isbrain(player) && player.client && player != owner && SSjob.GetJob(player.mind.assigned_role))
if(player?.client?.prefs?.read_preference(/datum/preference/toggle/erp/noncon))
viable_minds += player.mind
for(var/datum/mind/possible_target in viable_minds) for(var/datum/mind/possible_target in viable_minds)
if(possible_target != owner && ishuman(possible_target.current)) if(possible_target != owner && ishuman(possible_target.current))
possible_targets += possible_target.current possible_targets += possible_target.current