diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm index aca3c69d929c..915fc772a80a 100644 --- a/code/modules/antagonists/heretic/heretic_knowledge.dm +++ b/code/modules/antagonists/heretic/heretic_knowledge.dm @@ -737,7 +737,7 @@ * Checks if the passed human is a valid sacrifice for our ritual. */ /datum/heretic_knowledge/ultimate/proc/is_valid_sacrifice(mob/living/carbon/human/sacrifice) - return (sacrifice.stat == DEAD) && !ismonkey(sacrifice) + return ((sacrifice.stat == DEAD) && sacrifice.last_mind) /datum/heretic_knowledge/ultimate/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc) var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user) diff --git a/code/modules/antagonists/heretic/knowledge/void_lore.dm b/code/modules/antagonists/heretic/knowledge/void_lore.dm index 9d79d4b41529..800637cbc6d4 100644 --- a/code/modules/antagonists/heretic/knowledge/void_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/void_lore.dm @@ -268,7 +268,10 @@ close_carbon.adjust_silence_up_to(2 SECONDS, 20 SECONDS) close_carbon.apply_status_effect(/datum/status_effect/void_chill, 1) close_carbon.adjust_eye_blur(rand(0 SECONDS, 2 SECONDS)) - close_carbon.adjust_bodytemperature(-30 * TEMPERATURE_DAMAGE_COEFFICIENT) + if(close_carbon.has_reagent(/datum/reagent/water/holywater)) + close_carbon.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT) + else + close_carbon.adjust_bodytemperature(-30 * TEMPERATURE_DAMAGE_COEFFICIENT) else if(istype(thing_in_range, /obj/machinery/door) || istype(thing_in_range, /obj/structure/door_assembly)) var/obj/affected_door = thing_in_range diff --git a/code/modules/antagonists/heretic/status_effects/void_chill.dm b/code/modules/antagonists/heretic/status_effects/void_chill.dm index 7d2770af5e3e..eaa658f78909 100644 --- a/code/modules/antagonists/heretic/status_effects/void_chill.dm +++ b/code/modules/antagonists/heretic/status_effects/void_chill.dm @@ -15,6 +15,7 @@ var/stack_limit = 5 ///icon for the overlay var/mutable_appearance/stacks_overlay + COOLDOWN_DECLARE(chill_purge) /datum/status_effect/void_chill/on_creation(mob/living/new_owner, new_stacks, ...) . = ..() @@ -41,7 +42,18 @@ owner.update_icon(UPDATE_OVERLAYS) /datum/status_effect/void_chill/tick(seconds_per_ticks) - owner.adjust_bodytemperature(-12 KELVIN * stacks * seconds_per_ticks) + if(owner.has_reagent(/datum/reagent/water/holywater)) + //void chill is less effective + owner.adjust_bodytemperature(-3 KELVIN * stacks * seconds_per_ticks) + if(!COOLDOWN_FINISHED(src, chill_purge)) + return FALSE + COOLDOWN_START(src, chill_purge, 2 SECONDS) + to_chat(owner, span_notice("You feel holy water warming you up.")) + adjust_stacks(-1) + else + owner.adjust_bodytemperature(-12 KELVIN * stacks * seconds_per_ticks) + if (stacks == 0) + owner.remove_status_effect(/datum/status_effect/void_chill) /datum/status_effect/void_chill/refresh(mob/living/new_owner, new_stacks, forced = FALSE) . = ..() @@ -84,7 +96,7 @@ ///Updates the movespeed of owner based on the amount of stacks of the debuff /datum/status_effect/void_chill/proc/update_movespeed(stacks) owner.add_movespeed_modifier(/datum/movespeed_modifier/void_chill, update = TRUE) - owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/void_chill, update = TRUE, multiplicative_slowdown = (0.5 * stacks)) + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/void_chill, update = TRUE, multiplicative_slowdown = (0.3 * stacks)) linked_alert.maptext = MAPTEXT_TINY_UNICODE("[stacks]") /datum/status_effect/void_chill/lasting diff --git a/code/modules/antagonists/heretic/transmutation_rune.dm b/code/modules/antagonists/heretic/transmutation_rune.dm index 35c8a7a9f434..d3e14d31d62c 100644 --- a/code/modules/antagonists/heretic/transmutation_rune.dm +++ b/code/modules/antagonists/heretic/transmutation_rune.dm @@ -159,6 +159,8 @@ loc.balloon_alert(user, "ritual failed, missing components!") // Then let them know what they're missing to_chat(user, span_hierophant_warning("You are missing [english_list(what_are_we_missing)] in order to complete the ritual \"[ritual.name]\".")) + if (istype(ritual, /datum/heretic_knowledge/ultimate)) + to_chat(user, span_hierophant_warning("Reminder, that sacrifices need to have a soul in order to complete the ritual.")) return FALSE // If we made it here, the ritual had all necessary components, and we can try to cast it.