diff --git a/code/__DEFINES/gamemode.dm b/code/__DEFINES/gamemode.dm index df27eb20c0c..2c9ef8563d6 100644 --- a/code/__DEFINES/gamemode.dm +++ b/code/__DEFINES/gamemode.dm @@ -12,6 +12,7 @@ #define TARGET_INVALID_NOTHEAD 11 #define TARGET_INVALID_CULTIST 12 #define TARGET_INVALID_CULT_CONVERTABLE 13 +#define TARGET_CRYOING 14 //gamemode istype helpers #define GAMEMODE_IS_CULT (SSticker && istype(SSticker.mode, /datum/game_mode/cult)) diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm index b8af1ffe715..ca4bb8fe2ea 100644 --- a/code/__HELPERS/trait_helpers.dm +++ b/code/__HELPERS/trait_helpers.dm @@ -243,6 +243,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_EMP_RESIST "emp_resist" //The mob will take less damage from EMPs #define TRAIT_MINDFLAYER_NULLIFIED "flayer_nullified" //The mindflayer will not be able to activate their abilities, or drain swarms from people #define TRAIT_FLYING "flying" +#define TRAIT_CRYO_DESPAWNING "cryo_despawning" // dont adminbus this please //***** MIND TRAITS *****/ #define TRAIT_HOLY "is_holy" // The mob is holy in regards to religion diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index f7728512214..9bb395eb6f2 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -109,6 +109,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) return TARGET_INVALID_GOLEM if(possible_target.offstation_role) return TARGET_INVALID_EVENT + if(HAS_TRAIT(possible_target.current, TRAIT_CRYO_DESPAWNING)) + return TARGET_CRYOING /datum/objective/is_invalid_target(datum/mind/possible_target) . = ..() @@ -165,9 +167,6 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) target = null INVOKE_ASYNC(src, PROC_REF(post_target_cryo), owners) -/** - * Called a tick after when the objective's target goes to cryo. - */ /datum/objective/proc/post_target_cryo(list/owners) find_target() if(!target) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 22d9025dc69..e5822924c39 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -343,6 +343,8 @@ items -= occupant // Don't delete the occupant items -= announce // or the autosay radio. + ADD_TRAIT(occupant, TRAIT_CRYO_DESPAWNING, TRAIT_GENERIC) + for(var/obj/item/I in items) if(istype(I, /obj/item/pda)) var/obj/item/pda/P = I