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 027f3e3b683..b45c7d6054c 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ 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"