diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 90ab53dfde2..58bddeb7eb4 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -29,7 +29,7 @@ var/global/list/all_cults = list() return 1 /proc/is_sacrifice_target(datum/mind/mind) - if(istype(SSticker.mode.name, "cult")) + if(SSticker.mode.name == "cult") var/datum/game_mode/cult/cult_mode = SSticker.mode if(mind == cult_mode.sacrifice_target) return 1 diff --git a/code/game/gamemodes/cult/cult_objectives.dm b/code/game/gamemodes/cult/cult_objectives.dm index da4e190cb7f..c31ebaf9b84 100644 --- a/code/game/gamemodes/cult/cult_objectives.dm +++ b/code/game/gamemodes/cult/cult_objectives.dm @@ -163,6 +163,16 @@ possible_sac_targets += player.mind return possible_sac_targets +// Handles the updating of sacrifice objectives after the sacrifice target goes to cryo and ghosts +/datum/game_mode/cult/proc/update_sac_objective(previous_target, previous_role) + for(var/datum/mind/cult_mind in cult) + if(cult_mind) + var/updated_memory = cult_mind.memory + updated_memory = replacetext("[cult_mind.memory]", "[previous_target]", "[sacrifice_target]") + updated_memory = replacetext("[updated_memory]", "[previous_role]", "[sacrifice_target.assigned_role]") + cult_mind.memory = updated_memory + + /datum/game_mode/cult/proc/pick_objective() var/list/possible_objectives = list() diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 17965c12f4c..f9d708a6200 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -371,6 +371,8 @@ for(var/datum/mind/H in SSticker.mode.cult) if(H.current) to_chat(H.current, "[SSticker.cultdat.entity_name] murmurs, [occupant] is beyond your reach. Sacrifice [cult_mode.sacrifice_target.current] instead...") + H.current << 'sound/ambience/alarm4.ogg' + cult_mode.update_sac_objective(occupant.mind, occupant.mind.assigned_role) else cult_mode.bypass_phase()