Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cult stun nerfs (+ old man henderson) #1600

Merged
merged 20 commits into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6208faf
Cult stun balances (+ old man henderson)
Absolucy Apr 7, 2024
715a114
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 12, 2024
1631487
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 15, 2024
603654a
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 18, 2024
fecc8a9
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Apr 20, 2024
cb17dac
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 1, 2024
862b8c8
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 1, 2024
5b1cec7
Code cleanup + fix comment
Absolucy May 1, 2024
2bd1354
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 3, 2024
73806c9
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 5, 2024
6c40b51
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 7, 2024
cb80b15
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 9, 2024
01b85dd
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 22, 2024
cece643
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy May 24, 2024
f85c5be
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Jun 3, 2024
fa02db6
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Jun 7, 2024
e3f23d4
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Jun 8, 2024
371c1bf
Merge branch 'master' of https://github.com/Monkestation/Monkestation…
Absolucy Jun 14, 2024
ff498f3
Two can play the game of snowflake code!
Absolucy Jun 14, 2024
a10af58
p_they
Absolucy Jun 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/__DEFINES/~monkestation/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
#define SHELLEO_ERRORLEVEL 1
#define SHELLEO_STDOUT 2
#define SHELLEO_STDERR 3

#define OLD_MAN_HENDERSON_DRUNKENNESS 41

2 changes: 2 additions & 0 deletions code/modules/antagonists/cult/blood_magic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,7 @@
color = RUNE_COLOR_RED
invocation = "Fuu ma'jin!"

/* overriden in code\modules\antagonists\cult\blood_magic.dm
Absolucy marked this conversation as resolved.
Show resolved Hide resolved
/obj/item/melee/blood_magic/stun/afterattack(mob/living/target, mob/living/carbon/user, proximity)
if(!isliving(target) || !proximity)
return
Expand Down Expand Up @@ -439,6 +440,7 @@
carbon_target.set_jitter_if_lower(30 SECONDS)
uses--
..()
*/

//Teleportation
/obj/item/melee/blood_magic/teleport
Expand Down
9 changes: 9 additions & 0 deletions code/modules/antagonists/cult/runes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,15 @@ structure_check() searches for nearby cultist structures required for the invoca
to_chat(invoker, span_warning("Something is shielding [convertee]'s mind!"))
return FALSE


// monke start: old man henderson
if(convertee.get_drunk_amount() >= OLD_MAN_HENDERSON_DRUNKENNESS)
convertee.visible_message(span_cultitalic("[convertee] is unfazed by the rune, grumbling with incoherent drunken annoyance instead!"))
for(var/invoker in invokers)
to_chat(invoker, span_warning("The rune's blood magic is ineffective on [convertee], unable to pierce the intense alcoholic haze clouding [convertee.p_their()] mind!"))
return FALSE
// monke end

var/brutedamage = convertee.getBruteLoss()
var/burndamage = convertee.getFireLoss()
if(brutedamage || burndamage)
Expand Down
14 changes: 14 additions & 0 deletions monkestation/code/datums/status_effects/debuffs/drunk.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/datum/status_effect/inebriated/drunk/on_apply()
. = ..()
RegisterSignal(owner, COMSIG_LIVING_CULT_SACRIFICED, PROC_REF(on_cult_sacrificed))

/datum/status_effect/inebriated/drunk/clear_effects()
. = ..()
UnregisterSignal(owner, COMSIG_LIVING_CULT_SACRIFICED)

/datum/status_effect/inebriated/drunk/proc/on_cult_sacrificed(datum/source, list/mob/living/invokers)
SIGNAL_HANDLER
if(drunk_value < OLD_MAN_HENDERSON_DRUNKENNESS || owner.stat == DEAD)
return NONE
owner.visible_message(span_cultitalic("[owner] is unfazed by the rune, grumbling with incoherent drunken annoyance instead!"))
return STOP_SACRIFICE
56 changes: 56 additions & 0 deletions monkestation/code/modules/antagonists/cult/blood_magic.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/obj/item/melee/blood_magic/stun/afterattack(mob/living/target, mob/living/carbon/user, proximity)
Absolucy marked this conversation as resolved.
Show resolved Hide resolved
if(!isliving(target) || !proximity || IS_CULTIST(target))
return
var/datum/antagonist/cult/cult = IS_CULTIST(user)
if(QDELETED(cult))
return
user.visible_message(span_warning("[user] holds up [user.p_their()] hand, which explodes in a flash of red light!"), \
span_cultitalic("You attempt to stun [target] with the spell!"))
user.mob_light(range = 3, color = LIGHT_COLOR_BLOOD_MAGIC, duration = 0.2 SECONDS)
if(IS_HERETIC(target))
to_chat(user, span_warning("Some force greater than you intervenes! [target] is protected by the Forgotten Gods!"), type = MESSAGE_TYPE_COMBAT)
to_chat(target, span_warning("You are protected by your faith to the Forgotten Gods!"), type = MESSAGE_TYPE_COMBAT)
var/old_color = target.color
target.color = rgb(0, 128, 0)
animate(target, color = old_color, time = 1 SECONDS, easing = EASE_IN)
else if(IS_CLOCK(target))
to_chat(user, span_warning("Some force greater than you intervenes! [target] is protected by the heretic Ratvar!"), type = MESSAGE_TYPE_COMBAT)
to_chat(target, span_warning("You are protected by your faith to Ratvar!"), type = MESSAGE_TYPE_COMBAT)
var/old_color = target.color
target.color = rgb(190, 135, 0)
animate(target, color = old_color, time = 1 SECONDS, easing = EASE_IN)
else if(target.can_block_magic(MAGIC_RESISTANCE | MAGIC_RESISTANCE_HOLY))
to_chat(user, span_warning("The spell had no effect!"), type = MESSAGE_TYPE_COMBAT)
else if(target.get_drunk_amount() >= OLD_MAN_HENDERSON_DRUNKENNESS)
to_chat(user, span_cultitalic("[target] is barely phased by your spell, rambling with drunken annoyance instead!"), type = MESSAGE_TYPE_COMBAT)
to_chat(target, span_cultboldtalic("Eldritch horrors try to flood your thoughts, before being drowned out by an intense alcoholic haze!"), type = MESSAGE_TYPE_COMBAT) // yeah nobody's gonna be able to understand you through the slurring but it's funny anyways
target.say("MUCKLE DAMRED CULT! 'AIR EH NAMBLIES BE KEEPIN' ME WEE MEN!?!!", forced = "drunk cult stun")
target.adjust_silence(15 SECONDS)
target.adjust_confusion(15 SECONDS)
target.set_jitter_if_lower(15 SECONDS)
// we reuse TRAIT_BLOODSUCKER_HUNTER here because it's pretty much given to anyone with knowledge of and the ability to combat the occult.
Absolucy marked this conversation as resolved.
Show resolved Hide resolved
else if(HAS_TRAIT(target, TRAIT_MINDSHIELD) || HAS_MIND_TRAIT(target, TRAIT_BLOODSUCKER_HUNTER) || cult.cult_team.cult_ascendent || cult.cult_team.is_sacrifice_target(target.mind))
to_chat(user, span_cultitalic("In a brilliant flash of red, [target] falls to the ground, [target.p_their()] strength drained, albeit managing to somewhat resist the effects!"), type = MESSAGE_TYPE_COMBAT)
to_chat(target, span_userdanger("You barely manage to resist [user]'s spell, falling to the ground in agony, but still able to gather enough strength to act!"), type = MESSAGE_TYPE_COMBAT)
target.emote("scream")
target.AdjustKnockdown(5 SECONDS)
target.stamina.adjust(-80)
target.adjust_timed_status_effect(12 SECONDS, /datum/status_effect/speech/slurring/cult)
target.adjust_silence(8 SECONDS)
target.adjust_stutter(20 SECONDS)
target.set_jitter_if_lower(20 SECONDS)
else
to_chat(user, span_cultitalic("In a brilliant flash of red, [target] crumples to the ground!"), type = MESSAGE_TYPE_COMBAT)
target.Paralyze(16 SECONDS)
target.flash_act(1, TRUE)
if(issilicon(target))
var/mob/living/silicon/silicon_target = target
silicon_target.emp_act(EMP_HEAVY)
else if(iscarbon(target))
var/mob/living/carbon/carbon_target = target
carbon_target.adjust_silence(12 SECONDS)
carbon_target.adjust_stutter(30 SECONDS)
carbon_target.adjust_timed_status_effect(30 SECONDS, /datum/status_effect/speech/slurring/cult)
carbon_target.set_jitter_if_lower(30 SECONDS)
uses--
return ..()
2 changes: 2 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -5709,6 +5709,7 @@
#include "monkestation\code\datums\status_effects\buffs.dm"
#include "monkestation\code\datums\status_effects\disorient.dm"
#include "monkestation\code\datums\status_effects\food_buffs.dm"
#include "monkestation\code\datums\status_effects\debuffs\drunk.dm"
#include "monkestation\code\datums\storage\storage.dm"
#include "monkestation\code\datums\wires\particle_accelerator.dm"
#include "monkestation\code\game\atom.dm"
Expand Down Expand Up @@ -5918,6 +5919,7 @@
#include "monkestation\code\modules\antagonists\contractor\items\modsuit\modsuit.dm"
#include "monkestation\code\modules\antagonists\contractor\items\modsuit\modules.dm"
#include "monkestation\code\modules\antagonists\contractor\items\modsuit\theme.dm"
#include "monkestation\code\modules\antagonists\cult\blood_magic.dm"
#include "monkestation\code\modules\antagonists\florida_man\__outfits.dm"
#include "monkestation\code\modules\antagonists\florida_man\_defines.dm"
#include "monkestation\code\modules\antagonists\florida_man\_florida_man.dm"
Expand Down
Loading