Skip to content

Commit

Permalink
Merge pull request #84 from Lhars/Religion-Revert
Browse files Browse the repository at this point in the history
The Big Church Update - Part 1
  • Loading branch information
TheGreatKitsune authored Nov 27, 2024
2 parents eba8471 + f366dab commit 9a05492
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 114 deletions.
2 changes: 1 addition & 1 deletion code/__DEFINES/roguetown.dm
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@

#define ALL_PALADIN_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/necra, /datum/patron/divine/pestra, /datum/patron/divine/ravox, /datum/patron/divine/malum, /datum/patron/divine/eora, /datum/patron/old_god)

#define ALL_ACOLYTE_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/pestra, /datum/patron/divine/eora, /datum/patron/divine/necra)
#define ALL_ACOLYTE_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/pestra, /datum/patron/divine/eora, /datum/patron/divine/necra, /datum/patron/divine/malum)

#define ALL_DIVINE_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/abyssor, /datum/patron/divine/ravox, /datum/patron/divine/necra, /datum/patron/divine/xylix, /datum/patron/divine/pestra, /datum/patron/divine/malum, /datum/patron/divine/eora)

Expand Down
17 changes: 9 additions & 8 deletions code/datums/gods/patrons/divine_pantheon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
worshippers = "Wizards and Scholars"
mob_traits = list(TRAIT_NOCSIGHT)
t1 = /obj/effect/proc_holder/spell/invoked/blindness
t2 = /obj/effect/proc_holder/spell/invoked/invisibility
t2 = /obj/effect/proc_holder/spell/targeted/touch/Nocdarkvision
t3 = /obj/effect/proc_holder/spell/invoked/invisibility
confess_lines = list(
"NOC IS NIGHT!",
"NOC SEES ALL!",
Expand Down Expand Up @@ -64,7 +65,7 @@
domain = "God of Justice, Glory, Battle"
desc = "Stalwart warrior, glorious justicier; legends say he came down to the Basin to repel the vile hordes of demons with his own hands, and that he seeks warriors for his divine army among mortals."
worshippers = "Warriors, Sellswords & those who seek Justice"
t1 = /obj/effect/proc_holder/spell/invoked/burden
t1 = list(/obj/effect/proc_holder/spell/invoked/burden)
confess_lines = list(
"RAVOX IS JUSTICE!",
"THROUGH STRIFE, GRACE!",
Expand All @@ -78,7 +79,7 @@
worshippers = "The Dead, Mourners, Gravekeepers"
mob_traits = list(TRAIT_SOUL_EXAMINE)
t1 = /obj/effect/proc_holder/spell/invoked/avert
t2 = /obj/effect/proc_holder/spell/targeted/abrogation
t2 = /obj/effect/proc_holder/spell/targeted/churn
t3 = /obj/effect/proc_holder/spell/targeted/soulspeak
confess_lines = list(
"ALL SOULS FIND THEIR WAY TO NECRA!",
Expand Down Expand Up @@ -111,11 +112,11 @@
desc = "Goddess that blessed many a saint with healing hands, Pestra taught man the arts of medicine and its benefits."
worshippers = "The Sick, Phyicians, Apothecaries"
mob_traits = list(TRAIT_EMPATH, TRAIT_ROT_EATER)
t0 = /obj/effect/proc_holder/spell/invoked/diagnose
t1 = /obj/effect/proc_holder/spell/invoked/lesser_heal
t2 = /obj/effect/proc_holder/spell/invoked/heal
t3 = /obj/effect/proc_holder/spell/invoked/attach_bodypart
t4 = /obj/effect/proc_holder/spell/invoked/cure_rot
t0 = list(/obj/effect/proc_holder/spell/invoked/diagnose)
t1 = list(/obj/effect/proc_holder/spell/invoked/lesser_heal)
t2 = list(/obj/effect/proc_holder/spell/invoked/heal)
t3 = list(/obj/effect/proc_holder/spell/invoked/attach_bodypart)
t4 = list(/obj/effect/proc_holder/spell/invoked/cure_rot)
confess_lines = list(
"PESTRA SOOTHES ALL ILLS!",
"DECAY IS A CONTINUATION OF LIFE!",
Expand Down
8 changes: 7 additions & 1 deletion code/modules/jobs/job_types/roguetown/church/monk.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
name = "Acolyte"
jobtype = /datum/job/roguetown/monk

allowed_patrons = list(/datum/patron/divine/pestra, /datum/patron/divine/astrata, /datum/patron/divine/eora, /datum/patron/divine/noc, /datum/patron/divine/necra) //Eora content from Stonekeep
allowed_patrons = list(/datum/patron/divine/pestra, /datum/patron/divine/astrata, /datum/patron/divine/eora, /datum/patron/divine/noc, /datum/patron/divine/necra, /datum/patron/divine/malum) //Eora content from Stonekeep


/datum/outfit/job/roguetown/monk/pre_equip(mob/living/carbon/human/H)
Expand Down Expand Up @@ -67,6 +67,12 @@
neck = /obj/item/clothing/neck/roguetown/psicross/eora
shoes = /obj/item/clothing/shoes/roguetown/sandals
armor = /obj/item/clothing/suit/roguetown/shirt/robe/eora
if(/datum/patron/divine/malum)
head = /obj/item/clothing/head/roguetown/roguehood/black
armor = /obj/item/clothing/suit/roguetown/shirt/robe
neck = /obj/item/clothing/neck/roguetown/psicross/malum
pants = /obj/item/clothing/under/roguetown/tights
shoes = /obj/item/clothing/shoes/roguetown/boots
else
head = /obj/item/clothing/head/roguetown/roguehood/astrata
neck = /obj/item/clothing/neck/roguetown/psicross/astrata
Expand Down
136 changes: 34 additions & 102 deletions code/modules/spells/roguetown/acolyte/general.dm
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Lesser miracle
/obj/effect/proc_holder/spell/invoked/lesser_heal
name = "Miracle"
name = "Lesser Miracle"
overlay_state = "lesserheal"
releasedrain = 30
chargedrain = 0
chargetime = 0
range = 4
range = 7
warnie = "sydwarning"
movement_interrupt = FALSE
sound = 'sound/magic/heal.ogg'
Expand All @@ -14,154 +14,77 @@
antimagic_allowed = TRUE
charge_max = 10 SECONDS
miracle = TRUE
devotion_cost = 10
devotion_cost = 10

/obj/effect/proc_holder/spell/invoked/lesser_heal/cast(list/targets, mob/living/user)
. = ..()
if(isliving(targets[1]))
var/mob/living/target = targets[1]
if(user.patron?.undead_hater && (target.mob_biotypes & MOB_UNDEAD)) //positive energy harms the undead
target.visible_message(span_danger("[target] is burned by holy light!"), span_userdanger("I'm burned by holy light!"))
target.adjustFireLoss(10)
target.fire_act(1,10)
target.adjustFireLoss(50)
target.Paralyze(30)
target.fire_act(1,5)
return TRUE
var/conditional_buff = FALSE
var/situational_bonus = 1
//this if chain is stupid, replace with variables on /datum/patron when possible?
switch(user.patron.type)
if(/datum/patron/old_god)
target.visible_message(span_info("A strange stirring feeling pours from [target]!"), span_notice("Sentimental thoughts drive away my pains!"))
if(/datum/patron/divine/astrata)
target.visible_message(span_info("A wreath of gentle light passes over [target]!"), span_notice("I'm bathed in holy light!"))
// during the day, heal 1 more (basic as fuck)
if (GLOB.tod == "day")
conditional_buff = TRUE
if(/datum/patron/divine/noc)
target.visible_message(span_info("A shroud of soft moonlight falls upon [target]!"), span_notice("I'm shrouded in gentle moonlight!"))
// during the night, heal 1 more (i wish this was more interesting but they're twins so whatever)
if (GLOB.tod == "night")
conditional_buff = TRUE
if(/datum/patron/divine/dendor)
target.visible_message(span_info("A rush of primal energy spirals about [target]!"), span_notice("I'm infused with primal energies!"))
var/list/natural_stuff = list(/obj/structure/flora/roguegrass, /obj/structure/flora/roguetree, /obj/structure/flora/rogueshroom, /obj/structure/soil)
situational_bonus = 0
// the more natural stuff around US, the more we heal
for (var/obj/O in oview(5, user))
if (O in natural_stuff)
situational_bonus = min(situational_bonus + 0.1, 2)
if (situational_bonus > 0)
conditional_buff = TRUE
if(/datum/patron/divine/abyssor)
target.visible_message(span_info("A mist of salt-scented vapour settles on [target]!"), span_notice("I'm invigorated by healing vapours!"))
// if our target is standing in water, heal a flat amount extra
if (istype(get_turf(target), /turf/open/water))
conditional_buff = TRUE
situational_bonus = 1.5
if(/datum/patron/divine/ravox)
target.visible_message(span_info("An air of righteous defiance rises near [target]!"), span_notice("I'm filled with an urge to fight on!"))
situational_bonus = 0
// the bloodier the area around our target is, the more we heal
for (var/obj/effect/decal/cleanable/blood/O in oview(5, target))
situational_bonus = min(situational_bonus + 0.1, 2)
conditional_buff = TRUE
if(/datum/patron/divine/necra)
target.visible_message(span_info("A sense of quiet respite radiates from [target]!"), span_notice("I feel the Undermaiden's gaze turn from me for now!"))
if (iscarbon(target))
var/mob/living/carbon/C = target
// if the target is "close to death" (at or below 25% health)
if (C.health <= (C.maxHealth * 0.25))
conditional_buff = TRUE
situational_bonus = 2.5
if(/datum/patron/divine/xylix)
target.visible_message(span_info("A fugue seems to manifest briefly across [target]!"), span_notice("My wounds vanish as if they had never been there! "))
// half of the time, heal a little (or a lot) more - flip the coin
if (prob(50))
conditional_buff = TRUE
situational_bonus = rand(1, 2.5)
if(/datum/patron/divine/pestra)
target.visible_message(span_info("An aura of clinical care encompasses [target]!"), span_notice("I'm sewn back together by sacred medicine!"))
// pestra always heals a little more toxin damage and restores a bit more blood
target.adjustToxLoss(-situational_bonus)
target.blood_volume += BLOOD_VOLUME_SURVIVE/2
target.visible_message(span_info("A aura of clinical care encompasses [target]!"), span_notice("I'm sewn back together by sacred medicine!"))
if(/datum/patron/divine/malum)
target.visible_message("<span class='info'>A tempering heat is discharged out of [target]!</span>", "<span class='notice'>I feel the heat of a forge soothing my pains!</span>")
var/list/firey_stuff = list(/obj/machinery/light/rogue/torchholder, /obj/machinery/light/rogue/campfire, /obj/machinery/light/rogue/hearth, /obj/machinery/light/rogue/wallfire, /obj/machinery/light/rogue/wallfire/candle, /obj/machinery/light/rogue/forge)
// extra healing for every source of fire/light near us
situational_bonus = 0
for (var/obj/O in oview(5, user))
if (O.type in firey_stuff)
situational_bonus = min(situational_bonus + 0.5, 2.5)
if (situational_bonus > 0)
conditional_buff = TRUE
if(/datum/patron/divine/eora)
target.visible_message("<span class='info'>An emanance of love blossoms around [target]!</span>", "<span class='notice'>I'm filled with the restorative warmth of love!</span>")
// if they're wearing an eoran bud (or are a pacifist), pretty much double the healing. if we're also wearing a bud at any point or a pacifist from any other source, apply another +15 bonus
situational_bonus = 0
if (HAS_TRAIT(target, TRAIT_PACIFISM))
conditional_buff = TRUE
situational_bonus = 2.5
if (HAS_TRAIT(user, TRAIT_PACIFISM))
conditional_buff = TRUE
situational_bonus += 1.5
target.visible_message("<span class='info'>A heady heat flushes the flesh of [target] and potent scents hit you!</span>", "<span class='notice'>My ills drift away in a rush of narcotic pleasure!</span>")
if(/datum/patron/inhumen/zizo)
target.visible_message(span_info("Vital energies are sapped towards [target]!"), span_notice("The life around me pales as I am restored!"))
// set up a ritual pile of bones (or just cast near a stack of bones whatever) around us for massive bonuses, cap at 50 for 75 healing total (wowie)
situational_bonus = 0
for (var/obj/item/stack/sheet/bone/O in oview(5, user))
situational_bonus += (O.amount * 0.5)
if (situational_bonus > 0)
conditional_buff = TRUE
situational_bonus = min(situational_bonus, 5)
if(/datum/patron/inhumen/graggar)
target.visible_message(span_info("Foul fumes billow outward as [target] is restored!"), span_notice("A noxious scent burns my nostrils, but I feel better!"))
// if you've got lingering toxin damage, you get healed more, but your bonus healing doesn't affect toxin
var/toxloss = target.getToxLoss()
if (toxloss >= 10)
conditional_buff = TRUE
situational_bonus = 2.5
target.adjustToxLoss(situational_bonus) // remember we do a global toxloss adjust down below so this is okay
if(/datum/patron/inhumen/matthios)
target.visible_message(span_info("A wreath of... strange light passes over [target]?"), span_notice("I'm bathed in a... strange holy light?"))
// COMRADES! WE MUST BAND TOGETHER!
if (HAS_TRAIT(target, TRAIT_COMMIE))
conditional_buff = TRUE
situational_bonus = 2.5
if(/datum/patron/inhumen/baotha)
target.visible_message(span_info("Hedonistic impulses and emotions throb all about from [target]."), span_notice("An intoxicating rush of narcotic delight wipes away my pains!"))
// i wanted to do something with pain here but it doesn't seem like pain is actually parameterized anywhere so... better necra it is - if they're below 50% health, they get 25 extra healing
if (iscarbon(target))
var/mob/living/carbon/C = target
if (C.health <= (C.maxHealth * 0.5))
conditional_buff = TRUE
situational_bonus = 2.5
target.visible_message(span_info("A wreath of strange light passes over [target]!"), span_notice("I'm bathed in strange holy light?"))
if(/datum/patron/godless)
target.visible_message(span_info("Without any particular cause or reason, [target] is healed!"), span_notice("My wounds close without cause."))
else
target.visible_message(span_info("A choral sound comes from above and [target] is healed!"), span_notice("I am bathed in healing choral hymns!"))

var/healing = 2.5
if (conditional_buff)
to_chat(user, "Channeling my patron's power is easier in these conditions!")
healing += situational_bonus

if(iscarbon(target))
var/mob/living/carbon/C = target
var/datum/status_effect/buff/healing/heal_effect = C.apply_status_effect(/datum/status_effect/buff/healing)
heal_effect.healing_on_tick = healing
var/obj/item/bodypart/affecting = C.get_bodypart(check_zone(user.zone_selected))
if(affecting)
if(affecting.heal_damage(25, 25))
C.update_damage_overlays()
if(affecting.heal_wounds(25))
C.update_damage_overlays()
else
target.adjustBruteLoss(-healing*10)
target.adjustFireLoss(-healing*10)
target.adjustBruteLoss(-25)
target.adjustFireLoss(-25)
target.adjustToxLoss(-25)
target.adjustOxyLoss(-25)
target.blood_volume += BLOOD_VOLUME_SURVIVE/2
return TRUE
return FALSE

// Miracle
/obj/effect/proc_holder/spell/invoked/heal
name = "Fortify"
name = "Miracle"
overlay_state = "astrata"
releasedrain = 30
chargedrain = 0
chargetime = 0
range = 4
range = 7
warnie = "sydwarning"
movement_interrupt = FALSE
// chargedloop = /datum/looping_sound/invokeholy
Expand All @@ -181,15 +104,24 @@
var/mob/living/target = targets[1]
if(user.patron?.undead_hater && (target.mob_biotypes & MOB_UNDEAD)) //positive energy harms the undead
target.visible_message(span_danger("[target] is burned by holy light!"), span_userdanger("I'm burned by holy light!"))
target.adjustFireLoss(25)
target.fire_act(1,10)
target.adjustFireLoss(100)
target.Paralyze(50)
target.fire_act(1,5)
return TRUE
target.visible_message(span_info("A wreath of gentle light passes over [target]!"), span_notice("I'm bathed in holy light!"))
if(iscarbon(target))
var/mob/living/carbon/C = target
C.apply_status_effect(/datum/status_effect/buff/fortify)
var/obj/item/bodypart/affecting = C.get_bodypart(check_zone(user.zone_selected))
if(affecting)
if(affecting.heal_damage(50, 50))
C.update_damage_overlays()
if(affecting.heal_wounds(50))
C.update_damage_overlays()
else
target.adjustBruteLoss(-50)
target.adjustFireLoss(-50)
target.adjustToxLoss(-50)
target.adjustOxyLoss(-50)
target.blood_volume += BLOOD_VOLUME_SURVIVE
return TRUE
return FALSE
5 changes: 3 additions & 2 deletions code/modules/spells/roguetown/acolyte/pestra.dm
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,9 @@
S.AOE_flash(user, range = 8)
testing("curerot2")
if(was_zombie)
if(was_zombie.become_rotman && prob(5)) //5% chance to NOT become a rotman
was_zombie.become_rotman = FALSE
//if(was_zombie.become_rotman && prob(5)) //5% chance to NOT become a rotman
// was_zombie.become_rotman = FALSE
// CC Update: Removing chance for players to become rotmen
target.mind.remove_antag_datum(/datum/antagonist/zombie)
target.Unconscious(20 SECONDS)
target.emote("breathgasp")
Expand Down
41 changes: 41 additions & 0 deletions modular_causticcove/code/modules/spells/pantheon/Divine/noc.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/obj/effect/proc_holder/spell/targeted/touch/Nocdarkvision
name = "Darkvision"
overlay_state = "thaumaturgy"
desc = "Enhance the night vision of a target you touch for 15 minutes."
clothes_req = FALSE
drawmessage = "I prepare to grant Darkvision."
dropmessage = "I return my mind to the now."
school = "transmutation"
charge_max = 1 MINUTES
chargedloop = /datum/looping_sound/invokegen
associated_skill = /datum/skill/magic/holy
hand_path = /obj/item/melee/touch_attack/Nocdarkvision
xp_gain = TRUE
devotion_cost = 20

/obj/item/melee/touch_attack/Nocdarkvision
name = "\improper arcyne focus"
desc = "Touch a creature to grant them Darkvision for 15 minutes."
catchphrase = null
possible_item_intents = list(INTENT_HELP)
icon = 'icons/mob/roguehudgrabs.dmi'
icon_state = "pulling"
icon_state = "grabbing_greyscale"
color = "#3FBAFD"

/obj/item/melee/touch_attack/Nocdarkvision/attack_self()
attached_spell.remove_hand()

/obj/item/melee/touch_attack/Nocdarkvision/afterattack(atom/target, mob/living/carbon/user, proximity)
if(isliving(target))
var/mob/living/spelltarget = target
if(!do_after(user, 5 SECONDS, target = spelltarget))
return
spelltarget.apply_status_effect(/datum/status_effect/buff/darkvision)
user.rogfat_add(80)
if(spelltarget != user)
user.visible_message("[user] draws a glyph in the air and touches [spelltarget], their eyes briefly flashing with Noc's light.")
else
user.visible_message("[user] draws a glyph in the air and touches themselves, their eyes briefly flashing with Noc's light.")
attached_spell.remove_hand()
return
1 change: 1 addition & 0 deletions roguetown.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3631,6 +3631,7 @@
#include "modular_causticcove\code\modules\roguetown\roguecrafting\alchemy.dm"
#include "modular_causticcove\code\modules\roguetown\roguejobs\alchemist\containers.dm"
#include "modular_causticcove\code\modules\roguetown\roguejobs\alchemist\reagent.dm"
#include "modular_causticcove\code\modules\spells\pantheon\Divine\noc.dm"
#include "modular_causticcove\code\modules\vore\persistence.dm"
#include "modular_causticcove\code\modules\vore\SSbellies.dm"
#include "modular_causticcove\code\modules\vore\eating\belly_dat_vr.dm"
Expand Down

0 comments on commit 9a05492

Please sign in to comment.