From 51d28db7f2810ddff3d9ffd6ad14d4e9efaed127 Mon Sep 17 00:00:00 2001 From: 83ATR Date: Fri, 5 Sep 2025 17:31:15 +0300 Subject: [PATCH] Clericening --- code/__DEFINES/roguetown.dm | 2 +- code/datums/gods/patrons/divine_pantheon.dm | 27 +- code/datums/gods/patrons/fae.dm | 16 +- code/datums/gods/patrons/inhumen_pantheon.dm | 7 +- code/datums/gods/patrons/old_god.dm | 3 +- code/modules/clothing/rogueclothes/hats.dm | 4 +- .../adventurer/types/combat/cleric.dm | 705 +++++++++++++++++- .../types/combat/donator/paladin.dm | 4 +- .../roguetown/roguejobs/tailor/tanning.dm | 2 +- .../spells/roguetown/acolyte/abyssia.dm | 240 ++++++ .../spells/roguetown/acolyte/minhur.dm | 166 +++++ code/modules/spells/roguetown/acolyte/noc.dm | 132 ++++ icons/effects/effects.dmi | Bin 934231 -> 938329 bytes roguetown.dme | 2 + 14 files changed, 1285 insertions(+), 25 deletions(-) create mode 100644 code/modules/spells/roguetown/acolyte/abyssia.dm create mode 100644 code/modules/spells/roguetown/acolyte/minhur.dm diff --git a/code/__DEFINES/roguetown.dm b/code/__DEFINES/roguetown.dm index f1c5169fd0f..a8e1beabe4f 100644 --- a/code/__DEFINES/roguetown.dm +++ b/code/__DEFINES/roguetown.dm @@ -154,7 +154,7 @@ /datum/species/anthromorphbig,\ /datum/species/demihuman,\ ) -#define ALL_CLERIC_PATRONS list(/datum/patron/divine/elysius, /datum/patron/divine/lune, /datum/patron/divine/sylvarn, /datum/patron/divine/yamais, /datum/patron/divine/hermeir, /datum/patron/divine/viiritri, /datum/patron/divine/onder, /datum/patron/divine/minhur, /datum/patron/divine/svaeryog, /datum/patron/divine/abyssia, /datum/patron/divine/jayx, /datum/patron/inhumen/levishth, /datum/patron/inhumen/nyrnhe, /datum/patron/inhumen/thief, /datum/patron/inhumen/sacrifice) +#define ALL_CLERIC_PATRONS list(/datum/patron/divine/elysius, /datum/patron/divine/lune, /datum/patron/divine/sylvarn, /datum/patron/divine/yamais, /datum/patron/divine/hermeir, /datum/patron/divine/viiritri, /datum/patron/divine/onder, /datum/patron/divine/minhur, /datum/patron/divine/svaeryog, /datum/patron/divine/abyssia, /datum/patron/divine/jayx, /datum/patron/inhumen/levishth, /datum/patron/inhumen/nyrnhe, /datum/patron/inhumen/thief, /datum/patron/inhumen/sacrifice, /datum/patron/fae/lathrandyr, /datum/patron/fae/tashari, /datum/patron/fae/menrhue, /datum/patron/old_god) #define ALL_ACOLYTE_PATRONS list(/datum/patron/divine/elysius, /datum/patron/divine/lune, /datum/patron/divine/sylvarn, /datum/patron/divine/hermeir, /datum/patron/divine/viiritri) // Currently unused. diff --git a/code/datums/gods/patrons/divine_pantheon.dm b/code/datums/gods/patrons/divine_pantheon.dm index 505fd519d31..781cb37731c 100644 --- a/code/datums/gods/patrons/divine_pantheon.dm +++ b/code/datums/gods/patrons/divine_pantheon.dm @@ -12,7 +12,7 @@ t1 = /obj/effect/proc_holder/spell/invoked/sacred_flame_rogue t2 = /obj/effect/proc_holder/spell/invoked/heal t3 = /obj/effect/proc_holder/spell/invoked/revive - t4 = /obj/effect/proc_holder/spell/invoked/projectile/spitfire + t4 = /obj/effect/proc_holder/spell/invoked/projectile/fireball/greater confess_lines = list( "Elysius is my Gilded Armor!", "GREAT-WYRM BRINGS LAW!", @@ -25,8 +25,10 @@ desc = "Lune, the Silver Dragon. Twin of Elysius, symbolized by the moon. She is Patron of wisdom." worshippers = "Wizards, Scholars, Wisened Folk," mob_traits = list(TRAIT_NOCSNEAK, TRAIT_NIGHT_OWL) - t1 = /obj/effect/proc_holder/spell/invoked/blindness - t2 = /obj/effect/proc_holder/spell/invoked/invisibility + t1 = /obj/effect/proc_holder/spell/invoked/invisibility + t2 = /obj/effect/proc_holder/spell/self/extinguish + t3 = /obj/effect/proc_holder/spell/invoked/conjuredreambeast + t4 = /obj/effect/proc_holder/spell/invoked/moonbeam confess_lines = list( "LUNE IS WISDOM!", "LUNE'S PALE GLOWING EYES SEE ALL!", @@ -55,9 +57,13 @@ desc = "The Beloved Daughter of the Sea, gifted primordial kin food and water. She is said to be both cruel and calm, if her icey waters and wailing winds are heeded ahead of time. She is the warning and the Omen." worshippers = "Men and Women of the Sea, Primitive Aquatics, Merfolk, Druids, Creatures of the Deep." mob_traits = list (TRAIT_WATERBREATHING, TRAIT_ABYSSOR_SWIM) + t1 = /obj/effect/proc_holder/spell/invoked/divine_angling + t2 = /obj/effect/proc_holder/spell/invoked/seasickness + t3 = /obj/effect/proc_holder/spell/invoked/riptide + t4 = /obj/effect/proc_holder/spell/invoked/abyssalstrength confess_lines = list( "ABYSSIA COMMANDS THE WAVES!", - "THE OCEAN'S FURY IS ABYSSOR'S WILL!", + "THE OCEAN'S FURY IS ABYSSIA'S WILL!", "I AM DRAWN BY THE PULL OF HER TIDES!", ) @@ -66,6 +72,10 @@ domain = "War, Dance, Tactic, Rejoice, Celebration." desc = "The dervish of Blades, Minhur teaches that battle is like a dance; the duality between life/death and revelry. Minhur's followers prefer dexterity and tactful dancelike movements; encouraging mortals to act with decorum, etiquette and poise whenever possible." worshippers = "Warriors, Sellswords & Fencers." + t1 = /obj/effect/proc_holder/spell/invoked/smite + t2 = /obj/effect/proc_holder/spell/invoked/haste + t3 = /obj/effect/proc_holder/spell/invoked/divine_weapon + t4 = /obj/effect/proc_holder/spell/invoked/revive/minhur mob_traits = list (TRAIT_CIVILIZEDBARBARIAN, TRAIT_DEATHBYSNOOSNOO) // "duality between life/death and revelry" confess_lines = list( "MINHUR'S WHIRLWIND!", @@ -95,6 +105,7 @@ desc = "Onder is said to be inspiration itself. The god of Stories, Music and Memory. Onder is worshipped by bards and rogues alike. Onder’s story of being a changeling bard who walked amidst many cultures, gathering their tales and impressive many beings alike made them the god of charisma and luck." worshippers = "Bards, Gamblers, Poets, Musicians, Diplomats and Artists." mob_traits = list(TRAIT_BOG_TREKKING) + // To-Do. Something with song and dance? t1 = /obj/effect/proc_holder/spell/invoked/blindness t2 = /obj/effect/proc_holder/spell/invoked/invisibility confess_lines = list( @@ -168,10 +179,10 @@ desc = "Jayx is known as the Herald of change, often depicted as a two-tailed comet or Phoenix. The Divine Phoenix represents the immortal cycle of growth and advancement, often a god of both magic and art; they are known more than anything as the passage of time itself and bright blue magical fire. (Mana)" worshippers = "Mages, Alchemists, Soul-Searchers, Fateweavers, Supernatural Creatures, Soothsayers." mob_traits = list(TRAIT_USEMAGIC) - t1 = /obj/effect/proc_holder/spell/invoked/forcewall_weak - t2 = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile - t3 = /obj/effect/proc_holder/spell/invoked/invisibility - t4 = /obj/effect/proc_holder/spell/invoked/projectile/fireball/greater + t1 = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile + t2 = /obj/effect/proc_holder/spell/invoked/projectile/eldritchblast5e/empowered + t3 = /obj/effect/proc_holder/spell/invoked/forcewall_weak + t4 = /obj/effect/proc_holder/spell/invoked/arcyne_storm confess_lines = list( "THE PHOENIX BURNS BRIGHT AND PURE!", "IN HIS FLAMES I AM REBORN!", diff --git a/code/datums/gods/patrons/fae.dm b/code/datums/gods/patrons/fae.dm index be048b3a722..d82e40b37f1 100644 --- a/code/datums/gods/patrons/fae.dm +++ b/code/datums/gods/patrons/fae.dm @@ -1,11 +1,19 @@ +/datum/patron/fae + name = null + associated_faith = /datum/faith/fae + t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal + /datum/patron/fae/lathrandyr name = "Lathrandyr" domain = "The Spring Monarch, Court of Life and Light." desc = "Spring and it's personifactions flow through him. Those who follow him are said to be ever-young. They dance in the life all around them." worshippers = "Spring-Affiliated Fae, Elves, Fey-Pact Warlocks. Followers of the Spring Court." - associated_faith = /datum/faith/fae mob_traits = list(TRAIT_KNEESTINGER_IMMUNITY) undead_hater = TRUE + t1 = /obj/effect/proc_holder/spell/targeted/blesscrop + t2 = /obj/effect/proc_holder/spell/targeted/archfey_warlock_seelie_kiss + t3 = /obj/effect/proc_holder/spell/targeted/conjure_glowshroom + t4 = /obj/effect/proc_holder/spell/invoked/revive confess_lines = list( "Spring courts oath, I serve the Evergreen!", "This plane is one of many, lodestar protect!", @@ -18,9 +26,11 @@ domain = "The Winter Monarch, Court of Ice and Shadows." desc = "Winter and it's personifications flow through her. Those who follow her are often said to be cold and deeply emotive. They form icicles in their hearts and wield them as daggers." worshippers = "Winter-Affiliated Fae, Elves, Fey-Pact Warlocks. Those who follow the court of winter." - associated_faith = /datum/faith/fae mob_traits = list(TRAIT_EMPATH) undead_hater = FALSE + t1 = /obj/effect/proc_holder/spell/invoked/projectile/rayoffrost5e + t2 = /obj/effect/proc_holder/spell/invoked/invisibility + // t3 = Snowstorm spell? Retextured arcane storm? confess_lines = list( "Winter courts oath, I serve the Cold Queene!", "I FEAR NOT THE FROZEN CLASP OF WINTER!", @@ -33,8 +43,8 @@ domain = "The Autumn Monarch, Court of Fear and Death." desc = "Autumn and its personifications flow through them. Those that follow autumn are known for their delight in fear, and their ties to the other side. They are steeled against evils and nightmares more than most." worshippers = "Autumn-Affiliated Fae, Elves, Fey-Pact Warlocks. Those who follow the court of Autumn." - associated_faith = /datum/faith/fae mob_traits = list(TRAIT_EMPATH) + // Fear/direct damage spells? I think the mob flee code is too janky to rely on for it undead_hater = FALSE confess_lines = list( "Autumn courts oath, I serve the The Autumn Monarch!", diff --git a/code/datums/gods/patrons/inhumen_pantheon.dm b/code/datums/gods/patrons/inhumen_pantheon.dm index f798ccd15c2..204c5da51c1 100644 --- a/code/datums/gods/patrons/inhumen_pantheon.dm +++ b/code/datums/gods/patrons/inhumen_pantheon.dm @@ -2,6 +2,7 @@ name = null associated_faith = /datum/faith/inhumen undead_hater = FALSE + t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal_inhumen confess_lines = list( "GRRRRR!", "GRRRRRRRRRRRR!!", @@ -14,7 +15,6 @@ desc = "Discovered long ago, Levisth gives power to the weak who do his bidding,elevating them in time. There are many tales of those who serve the greatsnake, all which eventuate with tales of how it yearns to gain power over all things, jealous of it's 'rivals' the other gods." worshippers = "Power-Hungry, Powerful, Charismatic, Liars." mob_traits = list(TRAIT_NASTY_EATER, TRAIT_SNEK, TRAIT_ZOMBIE_IMMUNE) //had to add zombie immune so as not to double dip when making the infection immune - t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal_inhumen t1 = /obj/effect/proc_holder/spell/invoked/eldritchhealing/any t2 = /obj/effect/proc_holder/spell/invoked/projectile/lifesteal t3 = /obj/effect/proc_holder/spell/invoked/strengthen_undead @@ -31,7 +31,6 @@ desc = "Nyrnhe, Goddess of many dark elves - mistress of pain, suffering and venoms. Nyrnhe revels in pain-giving, pain-receiving and suffering. Contrary to belief; to kill is against her creed in comparison to the struggle and entropy." worshippers = "Assasins, Alchemists, Torturers, Dark Elves, Cruel folk, Masochists." mob_traits = list(TRAIT_USEMAGIC) - t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal_inhumen t1 = /obj/effect/proc_holder/spell/invoked/eldritchhealing/any t2 = /obj/effect/proc_holder/spell/invoked/projectile/acidsplash5e t3 = /obj/effect/proc_holder/spell/targeted/lightninglure5e @@ -48,7 +47,6 @@ desc = "Man turned God, the 'Giver' 'The Thief' stole fire from 'Elysius' and gave it to primitive Mortal Kin huddled in darkness and demands the riches flame creates in sacrifice." worshippers = "Free-Men, Outlaws and Frontiersmen" mob_traits = list(TRAIT_COMMIE, TRAIT_GOODRUNNER) - t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal_inhumen t1 = /obj/effect/proc_holder/spell/invoked/Joy_takes_flight t2 = /obj/effect/proc_holder/spell/invoked/Laughing_god t3 = /obj/effect/proc_holder/spell/invoked/Smokebomb @@ -65,7 +63,8 @@ desc = "The Sacrifice wishes to take from you, and for you to give it willingly. You will never get it back if you go too far. But you will always have the sacrifice." worshippers = "Nihilists, Gamblers, Warlocks, and Villains." mob_traits = list(TRAIT_CRACKHEAD) - t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal_inhumen + t1 = /obj/effect/proc_holder/spell/invoked/projectile/fetch // Hehe, yoink + // To-do the rest confess_lines = list( "I do not yearn for anything!!", "I CANNOT LOSE WHAT I COULD NEVER HOPE TO HOLD!", diff --git a/code/datums/gods/patrons/old_god.dm b/code/datums/gods/patrons/old_god.dm index f9c0d4a1875..4b35ea4f273 100644 --- a/code/datums/gods/patrons/old_god.dm +++ b/code/datums/gods/patrons/old_god.dm @@ -13,9 +13,10 @@ representing reincarnation and the great cosmic wheel of the planes. \ Seraph-Iros is an ancient being, considered cryptic and wise but often unfathomable.\ This is unlike other gods, some believing that\ - Seraphiros would not have the time nor desire to answer mortal prayers; nor needing their faith." + Seraph-Iros would not have the time nor desire to answer mortal prayers; nor needing their faith." worshippers = "Animists, Tribals, Old-Souls, Mystics, Sages, Fools, Scholars." associated_faith = /datum/faith/old_god + // WHAT WOULD FIT THE FUNNY SNEK?! confess_lines = list( "His scales glimmer with a thousand worlds..", "This is but a mere flicker of his tongue. All of it..!", diff --git a/code/modules/clothing/rogueclothes/hats.dm b/code/modules/clothing/rogueclothes/hats.dm index 714b46acecd..bfd262a4bf6 100644 --- a/code/modules/clothing/rogueclothes/hats.dm +++ b/code/modules/clothing/rogueclothes/hats.dm @@ -1550,8 +1550,8 @@ //Eora content from Stonekeep /obj/item/clothing/head/roguetown/eoramask - name = "eoran mask" - desc = "A silver rabbet mask worn by the faithful of Eora, usually during their rituals." + name = "Viriitran mask" + desc = "A silver rabbit mask worn by the faithful of Viriitri, usually during their rituals." color = null icon_state = "eoramask" item_state = "eoramask" diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm index 87fc0d2f45c..d54c217c685 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm @@ -36,6 +36,64 @@ // CLASS ARCHETYPES H.adjust_blindness(-3) var/classes = list("Life Cleric","War Cleric","Nature Cleric", "Temple Devout") + + switch(H.patron?.type) + + // Divine Pantheon + + if(/datum/patron/divine/elysius) + classes += "Sun-Drake" + if(/datum/patron/divine/lune) + classes += "Moon-Walker" + if(/datum/patron/divine/sylvarn) + classes += "Temple Druid" + if(/datum/patron/divine/abyssia) + classes += "Priest of All Waves" + if(/datum/patron/divine/minhur) + classes += "Siege Dancer" + if(/datum/patron/divine/yamais) + classes += "Guider of the Dead" + /* + if(/datum/patron/divine/onder) + classes += "Holy Bard?" + */ // To-do until I think of something to give to Onder clerics in general + if(/datum/patron/divine/hermeir) + classes += "Sidewinder" + if(/datum/patron/divine/svaeryog) + classes += "Child of the Forge" + if(/datum/patron/divine/viiritri) + classes += "Temple Prostitute" + if(/datum/patron/divine/jayx) + classes += "Mana Tender" + /* + if(/datum/patron/divine/arshatra) + classes += "Vengeance Placeholder" + */ // No idea what would fit here. Her spells are basically copied over from viiritri + + // Inhumen Pantheon + + if(/datum/patron/inhumen/levishth) + classes += "Reanimator-Priest" + if(/datum/patron/inhumen/nyrnhe) + classes += "Flesh Sculptor" + if(/datum/patron/inhumen/thief) + classes += "Thief of Fates" + /* if(/datum/patron/inhumen/sacrifice) + classes += "The Offering" + */ // To-do until I figure out what to give the sacrifice + + // Fey Pantheon + + if(/datum/patron/fae/lathrandyr, /datum/patron/fae/tashari, /datum/patron/fae/menrhue) + classes += "Fey Enchanter" + + // Old God Snek / Seraph-Iros + + /* + if(/datum/patron/old_god) + classes += "Cardinal" + */ // To-do. Seraph-Iros doesn't have any cleric spells rn, and its flavor text says that it doesn't particularly care about faith and worship + var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes switch(classchoice) @@ -134,8 +192,416 @@ H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) H.mind.AddSpell(new /obj/effect/proc_holder/spell/self/light5e) ADD_TRAIT(H, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_USEMAGIC, TRAIT_GENERIC) //can get magic from spellpoints but no more. // HEARTHSTONE ADDITION END + // Patron-specific subclasses + + if("Sun-Drake") // Elysius + H.set_blindness(0) + to_chat(H, span_warning("You are a member of the Sun-Drakes, a distant and esoteric religious order from the distant east. Though their teachings compel that they spill no blood by their hands, and heal all they can, they are certainly not pacifists. Their initiation rites of staring into the sun until they are temporarily blinded oftens lead them to be rather short-sighted.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 5, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/maces, 3, TRUE) + H.change_stat("intelligence", 3) + H.change_stat("constitution", 2) + H.change_stat("perception", -2) + H.change_stat("speed", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/guidance5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/createbonfire5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/self/light5e) + ADD_TRAIT(H, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) + + if("Moon-Walker") // Lune + H.set_blindness(0) + to_chat(H, span_warning("Most see the Lunen Moon-Walkers as little more than thieves masquerading as clergy, but that is often a clever ploy by the shadowy order. After all, you would expect the ones worshiping the lunar goddess to be active during the night, so one of her devout worshipers staring at the full moon on a rooftop would raise few eyebrows. That your house was scoured clean of 'donations' the next day is merely coincidence.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sneaking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/stealing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/lockpicking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/swimming, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/climbing, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 3, TRUE) + H.change_stat("intelligence", 2) + H.change_stat("constitution", 1) + H.change_stat("perception", 1) + H.change_stat("speed", 2) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/rogue_knock) + ADD_TRAIT(H, TRAIT_DECEIVING_MEEKNESS, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_DODGEEXPERT, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_USEMAGIC, TRAIT_GENERIC) + + if("Temple Druid") // Sylvarn + H.set_blindness(0) + to_chat(H, span_warning("You are a druid, though not of the local Breuddwyd Grove. Your kind often take hold of smaller, more local temples and groves, often being the sole member of Sylvarni clergy. Villages and other small farming communities are often your home, and you are welcome there.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/druidic, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/polearms, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/whipsflails, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/labor/farming, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/tracking, 3, TRUE) + H.change_stat("intelligence", 2) + H.change_stat("strength", 1) + H.change_stat("endurance", 2) + H.change_stat("perception", 1) + H.change_stat("speed", -1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shapeshift) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/infestation5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/self/primalsavagery5e) + ADD_TRAIT(H, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_SEEDKNOW, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_VINE_WALKER, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_BOG_TREKKING, TRAIT_GENERIC) + + if("Priest of All Waves") // Abyssia + H.set_blindness(0) + to_chat(H, span_warning("\"Priest of All Waves!\" they shout, \"Grant us good tides, calm waves and bountiful waters!\" These are common words you hear from sailors, fishermen, and other peoples living by lakes, rivers and seas. Your fellow sea priests are granted high respect by sailors and sea-men, hoping that your patron will help keep the waves calm and the voyage safe.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 5, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/swords, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/labor/fishing, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/swimming, 5, TRUE) + H.change_stat("intelligence", 2) + H.change_stat("endurance", 2) + H.change_stat("perception", 1) + H.change_stat("speed", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/acidsplash5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/rayoffrost5e) + ADD_TRAIT(H, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_DODGEEXPERT, TRAIT_GENERIC) + + if("Siege Dancer") // Minhur // Basically a paladin minus with the cleric spells + H.set_blindness(0) + to_chat(H, span_warning("THE SONG OF WAR CALLS! The tactics of war, the dance of battle, and the merriment of victory are the voice through which Minhur speaks. Though the more demure of your compatriots and fellow warriors may think you boisterous and loud, they know not the truth of the joy of fulfilling one's duty to the god of war and song.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/crossbows, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/bows, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/shields, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/swords, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/maces, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/polearms, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/axes, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/climbing, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/hunting, 1, TRUE) + H.change_stat("strength", 2) + H.change_stat("endurance", 2) + H.change_stat("constitution", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/self/bladeward5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/blade_burst) + ADD_TRAIT(H, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + + if("Guider of the Dead") // Yamais + H.set_blindness(0) + to_chat(H, span_warning("Though often compared to the Gravesingers, you are considered more the lay clergy of the Yamaian faith. You are the grave-digger, mourner, and the one who prepares the dead for burial. Your connection with the dead through long exposure has caused you to be ignored by the less mindful of the waking dead. (Please don't abuse this to cheese dungeons.)")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/polearms, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 1, TRUE) + H.change_stat("strength", -1) + H.change_stat("speed", -1) + H.change_stat("intelligence", 3) + H.change_stat("endurance", 2) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) + + H.faction |= "undead" // Again, please don't abuse this. Liches should still be aggressive + ADD_TRAIT(H, TRAIT_NOSTINK, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_SOUL_EXAMINE, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + + /*if("Holy Bard") // Onder // To-do until I think of something to give to Onder clerics in general + */ // Placeholder + + if("Sidewinder") // Hermeir + H.set_blindness(0) + to_chat(H, span_warning("The Sidewinders are a Hermeiran order of alchemists, healers, and, on occasion, poisoners. They are the premier patrons of the Arts, the Work, and the Search. Though often based in large cities and capitals, you have taken to the wilderness and this adventurer-town, whether to learn, to teach, or to experiment, only you can say.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 5, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 5, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 5, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/labor/farming, 2, TRUE) + H.change_stat("strength", -1) + H.change_stat("speed", -1) + H.change_stat("intelligence", 4) + H.change_stat("perception", 2) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/purge) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/poisonspray5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/cure_rot) + + ADD_TRAIT(H, TRAIT_ALCHEMYKNOWLEDGE, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_SEEDKNOW, TRAIT_GENERIC) + + if("Child of the Forge") // Svaeryog + H.set_blindness(0) + to_chat(H, span_warning("In order to honor your god, you have become a crafter. Though not as specialized as most, you know enough to be useful in any area. Be it metal, stone, cloth or wood, you have dabbled in everything. A true jack-of-all-trades.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/maces, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/crafting, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/blacksmithing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/carpentry, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/masonry, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/engineering, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/hunting, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/smelting, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/labor/mining, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/labor/lumberjacking, 3, TRUE) + H.change_stat("strength", 1) + H.change_stat("speed", -1) + H.change_stat("intelligence", 2) + H.change_stat("endurance", 2) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + + + ADD_TRAIT(H, TRAIT_CIVILIZEDBARBARIAN, TRAIT_GENERIC) // Hammer go bonk + ADD_TRAIT(H, TRAIT_ARMORSMITH, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_WEAPONSMITH, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_ARTIFICER, TRAIT_GENERIC) + + if("Temple Prostitute") // Viiritri + H.set_blindness(0) + to_chat(H, span_warning("Despite the suggestive title, Viiritran temple prostitutes are not simply street workers in holy robes, and a decent amount of them shun overly sexual conduct. They are generally performers, therapists and spiritual healers, and often conduct marriage and other ceremonies.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/craft/cooking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/labor/farming, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/music, 3, TRUE) + H.change_stat("strength", -1) + H.change_stat("speed", 2) + H.change_stat("intelligence", 2) + H.change_stat("endurance", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) + + ADD_TRAIT(H, TRAIT_GOODLOVER, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_EMPATH, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_DODGEADEPT, TRAIT_GENERIC) + + if("Mana Tender") // Jayx + H.set_blindness(0) + to_chat(H, span_warning("Though frequently confused for mere mages, their knowledge of the arcyne magicks comes from devout worship and study, rather than innate talent and pouring over ancient tomes. They are often seen in large temple-complexes, tending to the mana-fires and wards. Though it is not unusual to see one in the wilds, such as you.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/arcane, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/polearms, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.change_stat("strength", -1) + H.change_stat("speed", 2) + H.change_stat("intelligence", 4) + H.change_stat("endurance", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/magicstone5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/encodethoughts5e) + + ADD_TRAIT(H, TRAIT_LEARNMAGIC, TRAIT_GENERIC) + + /*if("Vengeance Placeholder") // Ar-Sgatra + */ // Placeholder + + if("Reanimator-Priest") // Levishth + H.set_blindness(0) + to_chat(H, span_warning("Though the teachings of the Lord of Envy, Levishth, states that you must acquire power, despite everyone else, some of the more moderate-minded of its adherents have taken to a more helpful path - claiming power from the dead. They have little use for it, after all. In distant, odd villages, Reanimator-Priests are seen as great boons, raising the dead to help with labor, working the fields, or protection. This often leads to superstition and shunning from the more commonly devout peoples, though.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/arcane, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/blood, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/polearms, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.change_stat("intelligence", 4) + H.change_stat("strength", -1) + H.change_stat("perception", 2) + H.change_stat("endurance", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/control_undead) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/raise_undead) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/bloodsteal) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/bloodlightning) + + ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_LEARNMAGIC, TRAIT_GENERIC) + H.faction |= "undead" + + if("Flesh Sculptor") // Nyrnhe + H.set_blindness(0) + to_chat(H, span_warning("Disgust and abominations often follow the Nyrnhene Flesh Sculptors. The goddess of pain demands pain, and pain often begets pain. Many of your fellow Sculptors sew hooks and barbs into their flesh, seeking to get closer to their goddess. Why have you come to these woods? Will you make abominations of mismatched parts and pieces?")) // Dark Eldar haemonculi mixed with Tzimitze + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/blood, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 5, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sewing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/whipsflails, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.change_stat("intelligence", 2) + H.change_stat("speed", -1) + H.change_stat("constitution", 2) + H.change_stat("endurance", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/chilltouch5e) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/attach_bodypart) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/cure_rot) + + ADD_TRAIT(H, TRAIT_NOSTINK, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + + if("Thief of Fates") // The Thief + H.set_blindness(0) + to_chat(H, span_warning("Thief, pickpocket, burglar. You are known by as many titles and names as your patron, who stole fire from the gods to give unto mortals. You take from those who hoard, whether it be magic, coin, knowledge, or even the souls of the dead, you take from those who will not give, and give to those who cannot share. A terror to the guards and richmen, a savior to the beggars.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sneaking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/stealing, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/lockpicking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/swimming, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/climbing, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 3, TRUE) + H.change_stat("intelligence", 2) + H.change_stat("speed", 2) + H.change_stat("strength", -1) + H.change_stat("endurance", 2) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/touch/prestidigitation) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/rogue_knock) + + ADD_TRAIT(H, TRAIT_DECEIVING_MEEKNESS, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_DODGEEXPERT, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_SEEPRICES_SHITTY, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_USEMAGIC, TRAIT_GENERIC) + H.grant_language(/datum/language/thievescant) + + /* + if("The Offering") // The Sacrifice + */ // Placeholder + + if("Fey Enchanter") // Fey Pantheon Combined + H.set_blindness(0) + to_chat(H, span_warning("The Fey Enchanters are what passes for clergy among the Feyish divinity. Wanderers, tricksters, teachers in equal parts. Depending on the court they serve, the Enchanter may prove to be a boon, an annoyance, or a curse. Oddly enough, though, despite the court they serve, they all have an odd fascination with hallucinogenics, and as such, their sight has withered somewhat.")) + H.mind.adjust_skillrank_up_to(/datum/skill/magic/holy, 4, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/reading, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/alchemy, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/sneaking, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/climbing, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/medicine, 3, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/wrestling, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/misc/athletics, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/knives, 2, TRUE) + H.mind.adjust_skillrank_up_to(/datum/skill/combat/polearms, 2, TRUE) + H.change_stat("intelligence", 1) + H.change_stat("perception", -2) + H.change_stat("endurance", 1) + H.change_stat("speed", 1) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) + if(isseelie(H)) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/summon_rat) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/splash) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/roustame) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/animate_object) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/seelie_dust) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/archfey_warlock_strip) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/archfey_warlock_seelie_kiss) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shapeshift) + + ADD_TRAIT(H, TRAIT_USEMAGIC, TRAIT_GENERIC) + H.grant_language(/datum/language/faexin) + + /* + if("Cardinal") // Seraph-Iros + */ // Placeholder + armor = /obj/item/clothing/suit/roguetown/armor/plate/half/iron shirt = /obj/item/clothing/suit/roguetown/armor/gambeson wrists = /obj/item/clothing/wrists/roguetown/bracers/leather @@ -155,7 +621,7 @@ cloak = /obj/item/clothing/cloak/raincloak/furcloak shoes = /obj/item/clothing/shoes/roguetown/boots // HEARTHSTONE ADD: cloistered devout custom outfits - else if (classchoice == "Temple Devout") + if (classchoice == "Temple Devout") // do the generic stuff first then replace it w/ patron specific things... if it exists // for reference, cloistered devouts are lightly armored/unarmored but get patron-specific stuff (if applicable) and a devo regen head = /obj/item/clothing/head/roguetown/roguehood/black @@ -197,17 +663,248 @@ if(/datum/patron/divine/jayx) armor = /obj/item/clothing/suit/roguetown/shirt/robe if(H.mind) - H.mind.adjust_skillrank_up_to(/datum/skill/magic/arcane, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/magic/arcane, 1, TRUE) H.mind.adjust_spellpoints(1) // HEARTHSTONE ADDITION END + + // Patron-specific subclasses + + if (classchoice == "Sun-Drake") + cloak = /obj/item/clothing/cloak/templar/astrata + armor = /obj/item/clothing/suit/roguetown/armor/plate/nephilimchest + shirt = /obj/item/clothing/suit/roguetown/armor/gambeson + wrists = /obj/item/clothing/wrists/roguetown/nephilbracers + pants = null + shoes = /obj/item/clothing/shoes/roguetown/nephilimsandals + head = /obj/item/clothing/head/roguetown/helmet/nephilhelm + neck = /obj/item/clothing/neck/roguetown/nephilbervor + belt = /obj/item/storage/belt/rogue/leather + beltr = /obj/item/flashlight/flare/torch/lantern + beltl = /obj/item/storage/belt/rogue/pouch/coins/poor + backl = /obj/item/storage/backpack/rogue/satchel + backr = null + r_hand = /obj/item/rogueweapon/mace/goden/steel + backpack_contents += /obj/item/clothing/neck/roguetown/psicross/astrata + + + if (classchoice == "Moon-Walker") + head = /obj/item/clothing/head/roguetown/roguehood/nochood + cloak = /obj/item/clothing/suit/roguetown/shirt/robe/noc + armor = /obj/item/clothing/suit/roguetown/armor/leather/advanced + pants = /obj/item/clothing/under/roguetown/tights/black + belt = /obj/item/storage/belt/rogue/leather/black + wrists = /obj/item/clothing/wrists/roguetown/bracers/leather + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/leather + neck = /obj/item/clothing/neck/roguetown/psicross/noc + beltl = /obj/item/storage/belt/rogue/pouch/coins/poor + beltr = /obj/item/rogueweapon/huntingknife/idagger + backl = /obj/item/storage/backpack/rogue/satchel + backr = null + backpack_contents += /obj/item/lockpickring/mundane + + if (classchoice == "Temple Druid") + shoes = /obj/item/clothing/shoes/roguetown/boots/forestershoes + gloves = /obj/item/clothing/gloves/roguetown/forestergauntlets + belt = /obj/item/storage/belt/rogue/leather + beltl = /obj/item/rogueweapon/huntingknife/skin + beltr = /obj/item/flashlight/flare/torch/lantern + backl = /obj/item/storage/backpack/rogue/satchel + backr = /obj/item/rogueweapon/woodstaff/aries + head = /obj/item/clothing/head/roguetown/antlerhood + neck = /obj/item/clothing/neck/roguetown/psicross/dendor + armor = /obj/item/clothing/suit/roguetown/armor/leather/hide + shirt = /obj/item/clothing/suit/roguetown/shirt/robe/dendor + backpack_contents = list(/obj/item/rogueweapon/sickle,/obj/item/clothing/head/roguetown/dendormask) + + if (classchoice == "Priest of All Waves") + backr = /obj/item/fishingrod + neck = /obj/item/clothing/neck/roguetown/psicross/abyssor + head = /obj/item/clothing/head/roguetown/helmet/carapacecap + shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/sailor + armor = /obj/item/clothing/suit/roguetown/armor/carapace/cuirass + cloak = /obj/item/clothing/cloak/raincloak/yellow + wrists = /obj/item/rope + beltr = /obj/item/storage/belt/rogue/pouch/coins/poor + belt =/obj/item/storage/belt/rogue/leather + beltl = /obj/item/rogueweapon/sword/cutlass + pants = /obj/item/clothing/under/roguetown/tights/sailor + shoes = /obj/item/clothing/shoes/roguetown/simpleshoes + backpack_contents = list(/obj/item/natural/worms = 2,/obj/item/rogueweapon/shovel/small= 1, /obj/item/cooking/pan = 1, /obj/item/rogueweapon/huntingknife = 1) + + if (classchoice == "Siege Dancer") + + shirt = /obj/item/clothing/suit/roguetown/armor/chainmail/iron + neck = /obj/item/clothing/neck/roguetown/chaincoif/iron + head = /obj/item/clothing/head/roguetown/helmet/ironpothelmet + armor = /obj/item/clothing/suit/roguetown/armor/plate/half + pants = /obj/item/clothing/under/roguetown/chainlegs/iron + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/leather + belt = /obj/item/storage/belt/rogue/leather + beltl = /obj/item/storage/belt/rogue/pouch/coins/poor + cloak = /obj/item/clothing/cloak/templar/ravox + backl = /obj/item/storage/backpack/rogue/satchel + backpack_contents = list(/obj/item/rogueweapon/huntingknife,/obj/item/clothing/neck/roguetown/psicross/ravox) + + if (classchoice == "Guider of the Dead") + head = /obj/item/clothing/head/roguetown/necrahood + neck = /obj/item/clothing/neck/roguetown/psicross/necra + gloves = /obj/item/clothing/gloves/roguetown/surggloves + cloak = /obj/item/clothing/cloak/templar/necra + wrists = null + shirt = null + armor = /obj/item/clothing/suit/roguetown/shirt/robe/necra + pants = /obj/item/clothing/under/roguetown/tights/black + shoes = /obj/item/clothing/shoes/roguetown/boots + belt = /obj/item/storage/belt/rogue/leather/blackleather + backl = /obj/item/storage/backpack/rogue/satchel + beltr = /obj/item/storage/belt/rogue/pouch/coins/poor + backr = /obj/item/rogueweapon/shovel + backpack_contents = list(/obj/item/rogueweapon/huntingknife/idagger/silver, /obj/item/storage/fancy/skit) + + //if (classchoice == "Holy Bard?") + + + if (classchoice == "Sidewinder") + head = /obj/item/clothing/head/roguetown/roguehood/feldhood + neck = /obj/item/clothing/neck/roguetown/psicross/pestra + gloves = /obj/item/clothing/gloves/roguetown/feldgloves + cloak = /obj/item/clothing/cloak/templar/pestra + wrists = /obj/item/clothing/wrists/roguetown/wrappings + shirt = null + armor = /obj/item/clothing/suit/roguetown/shirt/robe/feldrobe + pants = /obj/item/clothing/under/roguetown/tights/random + shoes = /obj/item/clothing/shoes/roguetown/shortboots + belt = /obj/item/storage/belt/rogue/leather + backl = /obj/item/storage/backpack/rogue/satchel + beltr = /obj/item/storage/belt/rogue/pouch/coins/poor + beltl = /obj/item/rogueweapon/huntingknife + backr = /obj/item/rogueweapon/woodstaff + backpack_contents = list(/obj/item/reagent_containers/glass/mortar, /obj/item/roguegem/violet, /obj/item/roguegem/yellow, /obj/item/flashlight/flare/torch/lantern/bronzelamptern) + + if (classchoice == "Child of the Forge") + gloves = /obj/item/clothing/gloves/roguetown/leather + cloak = /obj/item/clothing/cloak/apron/blacksmith + pants = /obj/item/clothing/under/roguetown/trou + shoes = /obj/item/clothing/shoes/roguetown/shortboots + if(H.gender == MALE) + shirt = /obj/item/clothing/suit/roguetown/shirt/shortshirt + armor = null + else + armor = /obj/item/clothing/suit/roguetown/shirt/dress/gen/random + shirt = null + neck = /obj/item/clothing/neck/roguetown/psicross/malum + belt = /obj/item/storage/belt/rogue/leather + backl = /obj/item/storage/backpack/rogue/satchel + backr = null + beltr = /obj/item/rogueweapon/hammer + beltl = /obj/item/rogueweapon/tongs + backpack_contents = list(/obj/item/rogueweapon/huntingknife, /obj/item/flint, /obj/item/storage/belt/rogue/pouch/coins/mid) + + if (classchoice == "Temple Prostitute") + head = /obj/item/clothing/head/roguetown/eoramask + neck = /obj/item/clothing/neck/roguetown/psicross/eora + gloves = null + cloak = /obj/item/clothing/cloak/templar/eora + wrists = /obj/item/rope + shirt = null + armor = /obj/item/clothing/suit/roguetown/shirt/robe/eora + pants = null + shoes = /obj/item/clothing/shoes/roguetown/sandals + belt = /obj/item/storage/belt/rogue/leather/cloth/lady + backl = /obj/item/storage/backpack/rogue/satchel + beltr = /obj/item/storage/belt/rogue/pouch/coins/mid + beltl = /obj/item/rogueweapon/huntingknife + backr = /obj/item/rogueweapon/woodstaff + backpack_contents = list(/obj/item/dildo/silver, /obj/item/clothing/head/peaceflower) + + if (classchoice == "Mana Tender") + shoes = /obj/item/clothing/shoes/roguetown/simpleshoes + pants = /obj/item/clothing/under/roguetown/tights/black + shirt = /obj/item/clothing/suit/roguetown/shirt/shortshirt + armor = /obj/item/clothing/suit/roguetown/armor/silkcoat + belt = /obj/item/storage/belt/rogue/leather/rope + beltr = /obj/item/reagent_containers/glass/bottle/rogue/manapot + backl = /obj/item/storage/backpack/rogue/satchel + backr = /obj/item/rogueweapon/woodstaff/wise + neck = /obj/item/clothing/neck/roguetown/psicross/silver // There's no jayx-specific amulet T-T + backpack_contents += /obj/item/scrying + if(H.mind) + H.mind.adjust_spellpoints(1) + + //if (classchoice == "Vengeance Placeholder") + + if (classchoice == "Reanimator-Priest") + neck = /obj/item/clothing/neck/roguetown/psicross/skull + gloves = null + wrists = /obj/item/clothing/wrists/roguetown/wrappings + shirt = null + armor = /obj/item/clothing/suit/roguetown/shirt/robe/surgrobe + pants = /obj/item/clothing/under/roguetown/tights/random + shoes = /obj/item/clothing/shoes/roguetown/boots + belt = /obj/item/storage/belt/rogue/leather/black + backl = /obj/item/storage/backpack/rogue/satchel + beltr = /obj/item/storage/belt/rogue/pouch/coins/poor + beltl = /obj/item/rogueweapon/huntingknife + backr = /obj/item/rogueweapon/woodstaff + backpack_contents = list(/obj/item/candle/skull) + + if (classchoice == "Flesh Sculptor") + neck = /obj/item/clothing/neck/roguetown/psicross/skull + gloves = /obj/item/clothing/gloves/roguetown/surggloves + wrists = null + shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/webs + armor = /obj/item/clothing/suit/roguetown/shirt/robe/surgrobe + pants = /obj/item/clothing/under/roguetown/webs + shoes = /obj/item/clothing/shoes/roguetown/boots + belt = /obj/item/storage/belt/rogue/leather/black + backl = /obj/item/storage/backpack/rogue/satchel + beltr = /obj/item/rogueweapon/huntingknife/cleaver + beltl = /obj/item/rogueweapon/whip + backr = null + backpack_contents = list(/obj/item/storage/belt/rogue/pouch/coins/poor, /obj/item/storage/fancy/skit) + + if (classchoice == "Thief of Fates") + cloak = pick(/obj/item/clothing/suit/roguetown/shirt/robe/noc,/obj/item/clothing/suit/roguetown/shirt/robe/dendor,/obj/item/clothing/suit/roguetown/shirt/robe/necra,/obj/item/clothing/suit/roguetown/shirt/robe/feldrobe,/obj/item/clothing/suit/roguetown/shirt/robe/surgrobe) + armor = /obj/item/clothing/suit/roguetown/armor/leather/advanced + pants = /obj/item/clothing/under/roguetown/webs + shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt/webs + belt = /obj/item/storage/belt/rogue/leather/black + wrists = /obj/item/clothing/wrists/roguetown/bracers/leather + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/leather + neck = /obj/item/clothing/neck/roguetown/psicross/skull + beltl = /obj/item/storage/belt/rogue/pouch/coins/poor + beltr = /obj/item/rogueweapon/huntingknife/idagger + backl = /obj/item/storage/backpack/rogue/satchel + backr = null + backpack_contents += /obj/item/lockpickring/mundane + + //if (classchoice == "The Offering") + + + if (classchoice == "Fey Enchanter") + shoes = /obj/item/clothing/shoes/roguetown/jester + pants = /obj/item/clothing/under/roguetown/tights + shirt = /obj/item/clothing/suit/roguetown/shirt/jester + armor = null + neck = null + belt = /obj/item/storage/belt/rogue/leather/cloth + beltr = /obj/item/rogueweapon/huntingknife/idagger/silver/elvish + wrists = /obj/item/clothing/neck/roguetown/psicross/wood + backl = /obj/item/storage/backpack/rogue/satchel + backr = /obj/item/rogueweapon/woodstaff/wise + backpack_contents = list(/obj/item/reagent_containers/powder/moondust, /obj/item/reagent_containers/powder/ozium) + + //if (classchoice == "Cardinal") + + + var/datum/devotion/C = new /datum/devotion(H, H.patron) // HEARTHSTONE ADDITION: cloistered devout devo regen & tier buff - if (classchoice == "Temple Devout") + if (classchoice == "Temple Devout" || classchoice == "Mana Tender" || classchoice == "Fey Enchanter" || classchoice == "Reanimator-Priest" || classchoice == "Moon-Walker" || classchoice == "Flesh Sculptor") C.grant_spells_devout(H) H.mind.adjust_skillrank_up_to(/datum/skill/magic/arcane, 1, TRUE) H.mind.adjust_spellpoints(2) H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/touch/prestidigitation) - ADD_TRAIT(H, TRAIT_USEMAGIC, TRAIT_GENERIC) //can get magic from spellpoints but no more. else C.grant_spells_cleric(H) // HEARTHSTONE ADDITION END diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm index 1db5df6c7b0..db129115be0 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/donator/paladin.dm @@ -4,7 +4,7 @@ allowed_sexes = list(MALE, FEMALE) allowed_races = RACES_ALL_KINDSPLUS outfit = /datum/outfit/job/roguetown/adventurer/paladin - traits_applied = list(TRAIT_HEAVYARMOR) + traits_applied = list(TRAIT_HEAVYARMOR) // This is applied after the outfit, so it deletes the half-plate on spawn category_tags = list(CTAG_ADVENTURER) cmode_music = 'sound/music/combat_clergy.ogg' @@ -98,6 +98,7 @@ H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/lesser_heal) + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) // So that the armor doesn't get deleted on spawn shirt = /obj/item/clothing/suit/roguetown/armor/chainmail neck = /obj/item/clothing/neck/roguetown/psicross/silver armor = /obj/item/clothing/suit/roguetown/armor/plate/half @@ -158,6 +159,7 @@ H.change_stat("strength", 2) H.change_stat("constitution", 2) H.change_stat("endurance", 2) + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) // So that the armor doesn't get deleted on spawn H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/lesser_heal) diff --git a/code/modules/roguetown/roguejobs/tailor/tanning.dm b/code/modules/roguetown/roguejobs/tailor/tanning.dm index bd8e1fbfbfe..32dd70d19e6 100644 --- a/code/modules/roguetown/roguejobs/tailor/tanning.dm +++ b/code/modules/roguetown/roguejobs/tailor/tanning.dm @@ -55,7 +55,7 @@ new /obj/item/natural/cured/essence(get_turf(user)) if(!sound_played) sound_played = TRUE - to_chat(user, span_warning("Sylvian provides...")) + to_chat(user, span_warning("Sylvarn provides...")) playsound(src,pick('sound/items/gem.ogg'), 100, FALSE) else new /obj/item/natural/hide/cured(get_turf(user)) diff --git a/code/modules/spells/roguetown/acolyte/abyssia.dm b/code/modules/spells/roguetown/acolyte/abyssia.dm new file mode 100644 index 00000000000..fe1b5d89541 --- /dev/null +++ b/code/modules/spells/roguetown/acolyte/abyssia.dm @@ -0,0 +1,240 @@ +// Abyssia's spells. Mostly copied over from Azure, with some changes +/obj/effect/proc_holder/spell/invoked/divine_angling + name = "Divine Angling" + overlay_state = "aqua" + releasedrain = 15 + chargedrain = 0 + chargetime = 0.5 SECONDS + range = 3 + movement_interrupt = FALSE + chargedloop = null + sound = 'sound/foley/bubb (5).ogg' + invocation = "" + invocation_type = "none" + associated_skill = /datum/skill/magic/holy + antimagic_allowed = TRUE + charge_max = 5 SECONDS + miracle = TRUE + devotion_cost = 5 + var/water = list(/turf/open/water/river, /turf/open/water/cleanshallow, /turf/open/water/swamp, /turf/open/water/ocean) + var/list/fishloot = list( + /obj/item/reagent_containers/food/snacks/fish/carp = 200, + /obj/item/reagent_containers/food/snacks/fish/eel = 140, + /obj/item/reagent_containers/food/snacks/fish/angler = 140, + /obj/item/reagent_containers/food/snacks/fish/clownfish = 20, + /obj/item/reagent_containers/food/snacks/fishfresh/guppy = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/catfish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/ratfish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/firefish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/angelfish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/goldfish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/jellyfish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/crab = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/sludgefish = 50, + /obj/item/reagent_containers/food/snacks/fishfresh/pufferfish = 50, + /mob/living/simple_animal/hostile/retaliate/rogue/mossback = 5, + /mob/living/simple_animal/hostile/retaliate/rogue/mudcrab = 20, + /mob/living/carbon/human/species/goblin/npc/sea = 10, + ) + +/obj/effect/proc_holder/spell/invoked/divine_angling/cast(list/targets, mob/user = usr) + . = ..() + if(isturf(targets[1])) + var/turf/T = targets[1] + var/success + var/A + if(T.type in water) + A = pickweight(fishloot) + success = TRUE + if(success) + var/atom/movable/AF = new A(T) + AF.throw_at(get_turf(user), 5, 1, null) + playsound(T, 'sound/foley/footsteps/FTWAT_1.ogg', 100) + user.visible_message("[user] makes a pulling gesture at [T], yanking out [AF]!") + return TRUE + else + return FALSE + return FALSE + + +/obj/effect/proc_holder/spell/invoked/seasickness + name = "Depth Bends" + overlay_state = "thebends" + releasedrain = 15 + chargedrain = 0 + chargetime = 2 SECONDS + range = 7 + movement_interrupt = FALSE + chargedloop = null + sound = 'sound/foley/bubb (5).ogg' + invocation = "Weight of the deep, crush!" + invocation_type = "shout" + associated_skill = /datum/skill/magic/holy + antimagic_allowed = TRUE + charge_max = 10 SECONDS + miracle = TRUE + devotion_cost = 10 + var/base_fatdrain = 10 + +/obj/effect/proc_holder/spell/invoked/seasickness/cast(list/targets, mob/living/user) + . = ..() + if(!ismob(targets[1])) + return FALSE + if(isliving(targets[1])) + var/mob/living/target = targets[1] + user.visible_message("[user] points at [target] and twists their hand!") + if(istype(target, /mob/living/carbon)) + var/mob/living/carbon = target + var/fatdrain = user.mind?.get_skill_level(associated_skill) * base_fatdrain + carbon.rogfat_add(fatdrain) + to_chat(target, span_warning("A sudden wave of nausea comes upon me!")) + else + target.adjustBruteLoss(20) // Fallback for simplemob damage + target.Dizzy(30) + target.blur_eyes(20) + target.emote("drown") + target.Stun(10) + return TRUE + return FALSE + + +/obj/effect/proc_holder/spell/invoked/riptide + name = "Riptide" + desc = "Conjure forth a wave, either pulling or pushing those before you." + releasedrain = 50 + chargedrain = 1 + chargetime = 3 SECONDS + charge_max = 25 SECONDS + warnie = "spellwarning" + no_early_release = FALSE + movement_interrupt = FALSE + charging_slowdown = 2 + chargedloop = /datum/looping_sound/invokegen + associated_skill = /datum/skill/magic/holy + antimagic_allowed = TRUE + miracle = TRUE + devotion_cost = 25 + + var/waverange = 5 + var/push = TRUE + +/obj/structure/riptide + desc = "A shimmering wave of divine energies." + name = "Divine Wave" + icon = 'icons/effects/effects.dmi' + icon_state = "riptide" + density = FALSE + var/timeleft = 10 SECONDS + + +/obj/structure/riptide/Initialize() + . = ..() + if(timeleft) + QDEL_IN(src, timeleft) //delete after it runs out + +/obj/structure/riptide/Crossed(atom/movable/AM) + . = ..() + addtimer(CALLBACK(src, PROC_REF(process_current)), 0.3 SECONDS) + +/obj/structure/riptide/proc/process_current() + for(var/atom/movable/A in loc.contents) + if((A != src) && A.has_gravity()) + A.ConveyorMove(dir) + + +/obj/effect/proc_holder/spell/invoked/riptide/cast(list/targets,mob/user = usr) + var/turf/T = user.loc + if(user.client.chargedprog >= 100) + push = FALSE + if(push) + for(var/i=0, iI'm burned by a silver light!") + if(target.mob_biotypes & MOB_UNDEAD) + target.visible_message(span_danger("[target] is burned by holy light!"), span_userdanger("I'm burned by holy light!")) + target.adjustFireLoss(30) + target.fire_act(3,10) + if(target.mind.has_antag_datum(/datum/antagonist/vampirelord)) + var/datum/antagonist/vampirelord/VD = target.mind.has_antag_datum(/datum/antagonist/vampirelord) + var/mob/living/carbon/human/VL = target + if(VD.disguised) + to_chat(target, span_warning("My disguise fails!")) + VL.vampire_undisguise(src) + if(istype(target, /mob/living/simple_animal/hostile/retaliate/rogue/wolf/werewolf)) + target.visible_message(span_danger("[target] is frozen in fear of the silver light!")) + target.Stun(30) + return TRUE diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 027f3e3b6830fb81d53d53aae85aa8b0531b3402..b45c7d6054c01fdd6d5514770a491b5400a10aad 100644 GIT binary patch delta 31151 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 diff --git a/roguetown.dme b/roguetown.dme index 176f2703684..65744d16743 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -3393,11 +3393,13 @@ #include "code\modules\spells\roguetown\spider.dm" #include "code\modules\spells\roguetown\warlock.dm" #include "code\modules\spells\roguetown\wizard.dm" +#include "code\modules\spells\roguetown\acolyte\abyssia.dm" #include "code\modules\spells\roguetown\acolyte\astrata.dm" #include "code\modules\spells\roguetown\acolyte\dendor.dm" #include "code\modules\spells\roguetown\acolyte\eora.dm" #include "code\modules\spells\roguetown\acolyte\general.dm" #include "code\modules\spells\roguetown\acolyte\malum.dm" +#include "code\modules\spells\roguetown\acolyte\minhur.dm" #include "code\modules\spells\roguetown\acolyte\necra.dm" #include "code\modules\spells\roguetown\acolyte\noc.dm" #include "code\modules\spells\roguetown\acolyte\pestra.dm"