diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 3c830ed9bbb..146a2372eb9 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -220,8 +220,17 @@ GLOBAL_LIST_EMPTY(cryopod_computers) for(var/datum/mind/mind in objective.team.members) to_chat(mind.current, "
[span_userdanger("Your target is no longer within reach. Objective removed!")]") mind.announce_objectives() - else if(objective.target && istype(objective.target, /datum/mind)) - if(objective.target == mob_occupant.mind) + else if(istype(objective.target) && objective.target == mob_occupant.mind) + if(istype(objective, /datum/objective/contract)) + var/datum/antagonist/traitor/affected_traitor = objective.owner.has_antag_datum(/datum/antagonist/traitor) + var/datum/contractor_hub/affected_contractor_hub = affected_traitor.contractor_hub + for(var/datum/syndicate_contract/affected_contract as anything in affected_contractor_hub.assigned_contracts) + if(affected_contract.contract == objective) + affected_contract.generate(affected_contractor_hub.assigned_targets) + affected_contractor_hub.assigned_targets.Add(affected_contract.contract.target) + to_chat(objective.owner.current, "
[span_userdanger("Contract target out of reach. Contract rerolled.")]") + break + else var/old_target = objective.target objective.target = null if(!objective) diff --git a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm index 682996987c1..1cad0e46f83 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm @@ -165,6 +165,11 @@ )) for (var/datum/syndicate_contract/contract in traitor_data.contractor_hub.assigned_contracts) + if(!contract.contract) + stack_trace("Syndiate contract with null contract objective found in [traitor_data.owner]'s contractor hub!") + contract.status = CONTRACT_STATUS_ABORTED + continue + data["contracts"] += list(list( "target" = contract.contract.target, "target_rank" = contract.target_rank,