From e20664dad3ee0dbc840c8692aa463c2b7cc8449c Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 24 Oct 2017 18:18:20 -0500 Subject: [PATCH 1/3] Revert "Revert "[MIRROR] Late join antagonists will try to target late join players"" --- code/datums/mind.dm | 1 + code/game/gamemodes/objective.dm | 13 +++++++++++++ code/modules/mob/dead/new_player/new_player.dm | 1 + 3 files changed, 15 insertions(+) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 4036aaaf45..dd389d46d4 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -64,6 +64,7 @@ var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) var/datum/language_holder/language_holder var/unconvertable = FALSE + var/late_joiner = FALSE /datum/mind/New(var/key) src.key = key diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 77e26f026a..cd3b2ba2b2 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -54,9 +54,22 @@ /datum/objective/proc/find_target() var/list/datum/mind/owners = get_owners() var/list/possible_targets = list() + var/try_target_late_joiners = FALSE + for(var/I in owners) + var/datum/mind/O = I + if(O.late_joiner) + try_target_late_joiners = TRUE for(var/datum/mind/possible_target in get_crewmember_minds()) if(!(possible_target in owners) && ishuman(possible_target.current) && (possible_target.current.stat != DEAD) && is_unique_objective(possible_target)) possible_targets += possible_target + if(try_target_late_joiners) + var/list/all_possible_targets = possible_targets.Copy() + for(var/I in all_possible_targets) + var/datum/mind/PT = I + if(!PT.late_joiner) + possible_targets -= PT + if(!possible_targets.len) + possible_targets = all_possible_targets if(possible_targets.len > 0) target = pick(possible_targets) update_explanation_text() diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 3839c87f08..2ef2077cde 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -488,6 +488,7 @@ . = H new_character = . if(transfer_after) + mind.late_joiner = TRUE transfer_character() /mob/dead/new_player/proc/transfer_character() From 72bd156589d821f32395eef5b28e3d4025021b7c Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 24 Oct 2017 18:19:49 -0500 Subject: [PATCH 2/3] Update new_player.dm --- code/modules/mob/dead/new_player/new_player.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 2ef2077cde..2870342422 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -480,6 +480,8 @@ client.prefs.copy_to(H) H.dna.update_dna_identity() if(mind) + if(transfer_after) + mind.late_joiner = TRUE mind.active = 0 //we wish to transfer the key manually mind.transfer_to(H) //won't transfer key since the mind is not active From 3822aa83a304ab50eb428603073c49386cfa4834 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 24 Oct 2017 19:49:38 -0500 Subject: [PATCH 3/3] Update new_player.dm --- code/modules/mob/dead/new_player/new_player.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 2870342422..2b2c50ed17 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -490,7 +490,6 @@ . = H new_character = . if(transfer_after) - mind.late_joiner = TRUE transfer_character() /mob/dead/new_player/proc/transfer_character()