diff --git a/code/modules/antagonists/heretic/items/keyring.dm b/code/modules/antagonists/heretic/items/keyring.dm index 21bd99846e5..eab9343580f 100644 --- a/code/modules/antagonists/heretic/items/keyring.dm +++ b/code/modules/antagonists/heretic/items/keyring.dm @@ -167,10 +167,10 @@ if(portal_one || portal_two) clear_portals() message += ", previous cleared" - portal_one = new(get_turf(door2), door2, inverted) portal_two = new(get_turf(door1), door1, inverted) portal_one.destination = portal_two + RegisterSignal(portal_one, COMSIG_QDELETING, PROC_REF(clear_portal_refs)) //we only really need to register one because they already qdel both portals if one is destroyed portal_two.destination = portal_one balloon_alert(user, "[message]") @@ -208,6 +208,12 @@ if(reference_resolved == target) return ITEM_INTERACT_BLOCKING + // BUBBER EDIT ADDITION BEGIN - cant use it for insta escapes + user.balloon_alert_to_viewers("linking...") + if (!do_after(user, 5 SECONDS, user, IGNORE_HELD_ITEM)) + return ITEM_INTERACT_BLOCKING + // BUBBER EDIT ADDITION END + if(reference_resolved) make_portal(user, reference_resolved, target) to_chat(user, span_notice("You use [src], to link [reference_resolved] and [target] together.")) diff --git a/code/modules/antagonists/heretic/magic/cosmic_expansion.dm b/code/modules/antagonists/heretic/magic/cosmic_expansion.dm index 3d5c9e77939..190b4befbde 100644 --- a/code/modules/antagonists/heretic/magic/cosmic_expansion.dm +++ b/code/modules/antagonists/heretic/magic/cosmic_expansion.dm @@ -9,7 +9,7 @@ sound = 'sound/effects/magic/cosmic_expansion.ogg' school = SCHOOL_FORBIDDEN - cooldown_time = 15 SECONDS + cooldown_time = 60 SECONDS // BUBBER EDIT CHANGE - from 15 to 60 secs, now more of a panic button invocation = "C'SM'S 'XP'ND!" invocation_type = INVOCATION_SHOUT diff --git a/code/modules/antagonists/heretic/magic/star_blast.dm b/code/modules/antagonists/heretic/magic/star_blast.dm index b4cd2ec02b8..3685f176b59 100644 --- a/code/modules/antagonists/heretic/magic/star_blast.dm +++ b/code/modules/antagonists/heretic/magic/star_blast.dm @@ -44,6 +44,11 @@ if(!active_ball) build_all_button_icons(UPDATE_OVERLAYS) return ..() + // BUBBER EDIT ADDITION BEGIN - you need LOS to jaunt to your ball + if (!(active_ball in view(cast_range, owner))) + owner.balloon_alert(owner, "need line of sight on the ball!") + return // abort entirely + // BUBBER EDIT ADDITION ENDs pull_victims() do_teleport(owner, active_ball) diff --git a/modular_zubbers/code/modules/antagonists/heretic/antimagic_collar.dm b/modular_zubbers/code/modules/antagonists/heretic/antimagic_collar.dm index 0b8c644706e..9fac408da7c 100644 --- a/modular_zubbers/code/modules/antagonists/heretic/antimagic_collar.dm +++ b/modular_zubbers/code/modules/antagonists/heretic/antimagic_collar.dm @@ -26,7 +26,7 @@ speech_span = SPAN_ROBOT - max_integrity = 50 + max_integrity = 100 integrity_failure = 0.5 clothing_traits = list(TRAIT_MANSUS_INHIBITION) @@ -45,7 +45,7 @@ /datum/armor/antimagic_collar acid = 50 - fire = 70 + fire = 75 bomb = 50 /obj/item/clothing/neck/antimagic_collar/Destroy() diff --git a/modular_zubbers/code/modules/antagonists/heretic/paths/cosmic.dm b/modular_zubbers/code/modules/antagonists/heretic/paths/cosmic.dm new file mode 100644 index 00000000000..49bfd676d0e --- /dev/null +++ b/modular_zubbers/code/modules/antagonists/heretic/paths/cosmic.dm @@ -0,0 +1,6 @@ +/datum/action/cooldown/spell/cosmic_rune/before_cast(atom/cast_on) + . = ..() + + owner.balloon_alert_to_viewers("invoking rune...") + if (!do_after(owner, 5 SECONDS, owner, IGNORE_HELD_ITEM)) + return SPELL_CANCEL_CAST diff --git a/modular_zubbers/code/modules/antagonists/heretic/paths/void.dm b/modular_zubbers/code/modules/antagonists/heretic/paths/void.dm index ad9368d9eae..61a3d35e0ab 100644 --- a/modular_zubbers/code/modules/antagonists/heretic/paths/void.dm +++ b/modular_zubbers/code/modules/antagonists/heretic/paths/void.dm @@ -227,6 +227,13 @@ Afterwards, they will be returned to the mortal plane. Can be self-cast." /datum/action/cooldown/spell/pointed/void_prison/is_valid_target(atom/cast_on) + if (!ismob(cast_on)) + return FALSE + var/mob/target_mob = cast_on + if (target_mob.has_status_effect(/datum/status_effect/crucible_soul)) + owner.balloon_alert(owner, "cant use while phased out!") + return FALSE + return TRUE // self cast /datum/status_effect/void_prison diff --git a/tgstation.dme b/tgstation.dme index e39346ca92b..55aee7b7383 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -9530,6 +9530,7 @@ #include "modular_zubbers\code\modules\antagonists\heretic\objectives\wildcard\steal_money.dm" #include "modular_zubbers\code\modules\antagonists\heretic\objectives\wildcard\supermatter_ritual.dm" #include "modular_zubbers\code\modules\antagonists\heretic\paths\ash.dm" +#include "modular_zubbers\code\modules\antagonists\heretic\paths\cosmic.dm" #include "modular_zubbers\code\modules\antagonists\heretic\paths\heretic_paths.dm" #include "modular_zubbers\code\modules\antagonists\heretic\paths\lock.dm" #include "modular_zubbers\code\modules\antagonists\heretic\paths\moon.dm"