From 57dcd6817ec9dd2ccf9c2e630f97f150b594bb7d Mon Sep 17 00:00:00 2001 From: Lucy Date: Wed, 22 May 2024 19:11:56 -0400 Subject: [PATCH] Wonderland apocolypse fixups + status effect consistency (#1868) * Wonderland apocolypse fixups + status effect consistency * Prevent taking off the mask in wonderland --- .../monster_hunters/abilities/paradox.dm | 1 - .../events/wonderland_apocalypse.dm | 36 ++++++++++++++++-- .../monster_hunters/tools/bnuuy_mask.dm | 20 ++++++++++ monkestation/icons/hud/screen_alert.dmi | Bin 10617 -> 10355 bytes 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/monkestation/code/modules/bloodsuckers/monster_hunters/abilities/paradox.dm b/monkestation/code/modules/bloodsuckers/monster_hunters/abilities/paradox.dm index 16f38e845f19..9ea625ecf03a 100644 --- a/monkestation/code/modules/bloodsuckers/monster_hunters/abilities/paradox.dm +++ b/monkestation/code/modules/bloodsuckers/monster_hunters/abilities/paradox.dm @@ -18,7 +18,6 @@ chessmark = GLOB.wonderland_marks["Wonderchess landmark"] landmark = GLOB.wonderland_marks["Wonderland landmark"] - /datum/action/cooldown/paradox/Activate() var/turf/owner_turf = get_turf(owner) if(!is_station_level(owner_turf.z)) diff --git a/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm b/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm index 9780e9380c9b..1b866901ebce 100644 --- a/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm +++ b/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm @@ -29,6 +29,7 @@ text = "What the heELl is going on?! WEeE have detected massive up-spikes in ##@^^?? coming fr*m yoOourr st!*i@n! GeEeEEET out of THERE NOW!!", title = Gibberish("[command_name()] Higher Dimensional Affairs", TRUE, 45), sound = 'monkestation/sound/bloodsuckers/monsterhunterintro.ogg', + encode_title = FALSE, // Gibberish() already sanitizes color_override = "purple" ) @@ -117,6 +118,8 @@ id = "wonderland_district" alert_type = null tick_interval = -1 + var/static/list/spell_whitelist_typecache + var/static/list/trigger_recoil_typecache /datum/status_effect/wonderland_district/on_apply() . = ..() @@ -125,10 +128,11 @@ to_chat(owner, span_warning("You feel an ominous pressure fill the air around you...")) RegisterSignal(owner, COMSIG_ENTER_AREA, PROC_REF(on_enter_area)) RegisterSignal(owner, COMSIG_MOB_AFTER_SPELL_CAST, PROC_REF(after_spell_cast)) + RegisterSignal(owner, COMSIG_ACTION_TRIGGER, PROC_REF(on_action_triggered)) /datum/status_effect/wonderland_district/on_remove() . = ..() - UnregisterSignal(owner, list(COMSIG_ENTER_AREA, COMSIG_MOB_AFTER_SPELL_CAST)) + UnregisterSignal(owner, list(COMSIG_ENTER_AREA, COMSIG_MOB_AFTER_SPELL_CAST, COMSIG_ACTION_TRIGGER)) /datum/status_effect/wonderland_district/proc/on_enter_area(datum/source, area/centcom/new_area) SIGNAL_HANDLER @@ -137,15 +141,39 @@ /datum/status_effect/wonderland_district/proc/after_spell_cast(datum/source, datum/action/cooldown/spell/spell, atom/cast_on) SIGNAL_HANDLER - if(!istype(spell) || QDELING(spell) || !spell.antimagic_flags) // don't affect non-magic spells. + if(!spell_whitelist_typecache) + spell_whitelist_typecache = typecacheof(list( + /datum/action/cooldown/spell/florida_regeneration, + /datum/action/cooldown/spell/florida_cuff_break, + /datum/action/cooldown/spell/florida_doorbuster + )) + if(!istype(spell) || QDELING(spell) || !spell.antimagic_flags || is_type_in_typecache(spell, spell_whitelist_typecache)) // don't affect non-magic spells. return + recoil(span_warning("[owner] doubles over in pain, violently coughing up blood!"), span_userdanger("An overwhelming pressure fills your body as you cast [spell.name || "magic"], filling you with excruciating pain down to the very core of your being!")) + +/datum/status_effect/wonderland_district/proc/on_action_triggered(datum/source, datum/action/action) + SIGNAL_HANDLER + if(!trigger_recoil_typecache) + trigger_recoil_typecache = typecacheof(list( + /datum/action/innate/cult/blood_spell, + /datum/action/innate/cult/blood_magic, + /datum/action/innate/cult/master, + /datum/action/innate/clockcult/quick_bind, + /datum/action/cooldown/bloodsucker + )) + if(!is_type_in_typecache(action, trigger_recoil_typecache)) + return + recoil(span_warning("[owner] doubles over in pain, violently coughing up blood!"), span_userdanger("An overwhelming pressure fills your body as you use [action.name || "your ability"], filling you with excruciating pain down to the very core of your being!")) + +/datum/status_effect/wonderland_district/proc/recoil(vis_msg, self_msg) make_visible() INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living, emote), "scream") - owner.visible_message(span_warning("[owner] doubles over in pain, violently coughing up blood!"), span_userdanger("An overwhelming pressure fills your body as you cast [spell.name || "magic"], filling you with excruciating pain down to the very core of your being!")) + if(vis_msg) + owner.visible_message(vis_msg, self_msg) owner.take_overall_damage(brute = rand(5, 15)) if(iscarbon(owner)) var/mob/living/carbon/carbon_owner = owner - carbon_owner.vomit(lost_nutrition = 0, blood = TRUE, distance = rand(1, 2), message = FALSE) + carbon_owner.vomit(lost_nutrition = 0, blood = TRUE, stun = FALSE, distance = prob(20) + 1, message = FALSE) /datum/status_effect/wonderland_district/proc/make_visible() if(alert_type && !QDELETED(linked_alert)) diff --git a/monkestation/code/modules/bloodsuckers/monster_hunters/tools/bnuuy_mask.dm b/monkestation/code/modules/bloodsuckers/monster_hunters/tools/bnuuy_mask.dm index d97112fab4bd..25694199785d 100644 --- a/monkestation/code/modules/bloodsuckers/monster_hunters/tools/bnuuy_mask.dm +++ b/monkestation/code/modules/bloodsuckers/monster_hunters/tools/bnuuy_mask.dm @@ -1,3 +1,5 @@ +#define WONDERLAND_TRAIT "wonderland" + /obj/item/clothing/mask/cursed_rabbit name = "Damned Rabbit Mask" desc = "Slip into the wonderland." @@ -27,12 +29,28 @@ paradox?.Grant(user) wonderland?.Grant(user) user.apply_status_effect(/datum/status_effect/bnuuy_mask) + user.become_area_sensitive(type) + RegisterSignal(user, COMSIG_ENTER_AREA, PROC_REF(on_enter_area)) + RegisterSignal(user, COMSIG_EXIT_AREA, PROC_REF(on_exit_area)) /obj/item/clothing/mask/cursed_rabbit/dropped(mob/living/user) . = ..() paradox?.Remove(user) wonderland?.Remove(user) user.remove_status_effect(/datum/status_effect/bnuuy_mask) + UnregisterSignal(user, list(COMSIG_ENTER_AREA, COMSIG_EXIT_AREA)) + user.lose_area_sensitivity(type) + REMOVE_TRAIT(src, TRAIT_NODROP, WONDERLAND_TRAIT) + +/obj/item/clothing/mask/cursed_rabbit/proc/on_enter_area(mob/living/user, area/new_area) + SIGNAL_HANDLER + if(istype(new_area, /area/ruin/space/has_grav/wonderland)) + ADD_TRAIT(src, TRAIT_NODROP, WONDERLAND_TRAIT) + +/obj/item/clothing/mask/cursed_rabbit/proc/on_exit_area(mob/living/user, area/old_area) + SIGNAL_HANDLER + if(istype(old_area, /area/ruin/space/has_grav/wonderland)) + REMOVE_TRAIT(src, TRAIT_NODROP, WONDERLAND_TRAIT) /datum/status_effect/bnuuy_mask id = "bnuuy_mask" @@ -52,3 +70,5 @@ /datum/status_effect/bnuuy_mask/get_examine_text() return span_warning("[owner.p_they(TRUE)] seem[owner.p_s()] out-of-place, as if [owner.p_they()] were partially detached from reality.") + +#undef WONDERLAND_TRAIT diff --git a/monkestation/icons/hud/screen_alert.dmi b/monkestation/icons/hud/screen_alert.dmi index 60df15794a670e7829014ee827148ebc42df4424..0a003dd39cc9916a90d068cab95c39ae801f7aff 100644 GIT binary patch literal 10355 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 literal 10617 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