diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 3d76390ce1..0593a3c8f8 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -175,6 +175,7 @@ #define SPEECH_LANGUAGE 5 // #define SPEECH_IGNORE_SPAM 6 // #define SPEECH_FORCED 7 +#define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 373647d6f5..5e0c581ec9 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code //subtypes with additional hooks for DNA and preferences. /datum/element/flavor_text/carbon + //list of antagonists etcetera that should have nothing to do with people's snowflakes. + var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert, + /datum/antagonist/nukeop, /datum/antagonist/official, /datum/antagonist/wizard)) /datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE) if(!iscarbon(target)) @@ -144,3 +147,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code /datum/element/flavor_text/carbon/proc/unset_flavor(mob/living/carbon/user) texts_by_atom[user] = "" + +/datum/element/flavor_text/carbon/proc/on_antag_gain(mob/living/carbon/user, datum/antagonist/antag) + if(is_type_in_typecache(antag, i_dont_even_know_who_you_are)) + texts_by_atom[user] = "" + if(user.dna) + user.dna.features["flavor_text"] = "" \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e19feea582..11db7f37c8 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -121,7 +121,7 @@ return FALSE var/turf/T = get_turf(src) for(var/mob/living/L in T) - if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(L.move_resist >= MOVE_FORCE_VERY_STRONG || (horizontal && L.mob_size > MOB_SIZE_TINY && L.density)) if(user) to_chat(user, "There's something large on top of [src], preventing it from opening." ) return FALSE @@ -133,7 +133,7 @@ if(closet != src && !closet.wall_mounted) return FALSE for(var/mob/living/L in T) - if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(L.move_resist >= MOVE_FORCE_VERY_STRONG || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) if(user) to_chat(user, "There's something too large in [src], preventing it from closing.") return FALSE @@ -216,7 +216,7 @@ if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets... return FALSE var/mob/living/L = AM - if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) + if(L.move_resist >= MOVE_FORCE_VERY_STRONG || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) return FALSE if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items. if(horizontal && L.density) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 2e3626dd4c..19845be315 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -75,6 +75,7 @@ GLOBAL_LIST_EMPTY(antagonists) remove_blacklisted_quirks() if(is_banned(owner.current) && replace_banned) replace_banned_player() + SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src) /datum/antagonist/proc/is_banned(mob/M) if(!M)