diff --git a/dungeonsheets/classes/cleric.py b/dungeonsheets/classes/cleric.py index b821898..68fa598 100644 --- a/dungeonsheets/classes/cleric.py +++ b/dungeonsheets/classes/cleric.py @@ -311,6 +311,30 @@ class GraveDomain(ClericDomain): features_by_level[8] = [features.PotentSpellcasting] features_by_level[17] = [features.KeeperOfSouls] +class DeathDomain(ClericDomain): + """The Death domain is concerned with the forces that cause death, as + well as the negative energy that gives rise to undead creatures. + Deities such as Chemosh, Myrkul, and Wee Jas are patrons of necromancers, + death knights, liches, mummy lords, and vampires. Gods of the Death + domain also embody murder (Anubis, Bhaal, and Pyremius), pain + (Iuz or Loviatar), disease or poison (Incabulos, Talona, or Morgion), + and the underworld (Hades and Hel).. + + """ + name = "Death Domain" + _domain_spells = {1: [spells.FalseLife, spells.RayOfSickness], + 3: [spells.Blindnessdeafness, spells.RayOfEnfeeblement], + 5: [spells.AnimateDead, spells.VampiricTouch], + 7: [spells.Blight, spells.DeathWard], + 9: [spells.AntilifeShell, spells.Cloudkill]} + weapon_proficiencies = (weapons.MartialWeapon,) + _proficiencies_text = ('martial weapons',) + features_by_level = defaultdict(list) + features_by_level[1] = [features.Reaper] + features_by_level[2] = [features.TouchOfDeathCleric] #a different one though + features_by_level[6] = [features.InescapableDestruction] + features_by_level[8] = [features.DivineStrikeDeath] + features_by_level[17] = [features.ImprovedReaper] class Cleric(CharClass): name = 'Cleric' @@ -332,7 +356,7 @@ class Cleric(CharClass): subclasses_available = (KnowledgeDomain, LifeDomain, LightDomain, NatureDomain, TempestDomain, TrickeryDomain, WarDomain, ArcanaDomain, ForgeDomain, - GraveDomain) + GraveDomain, DeathDomain) spellcasting_ability = 'wisdom' spell_slots_by_level = { # char_lvl: (cantrips, 1st, 2nd, 3rd, ...) diff --git a/dungeonsheets/features/cleric.py b/dungeonsheets/features/cleric.py index ceac93a..3399adc 100644 --- a/dungeonsheets/features/cleric.py +++ b/dungeonsheets/features/cleric.py @@ -779,3 +779,51 @@ class KeeperOfSouls(Feature): name = "Keeper of Souls" source = "Cleric (Grave Domain)" +class Reaper(Feature): + """At 1st level, you learn one necromancy cantrip of your choice from any + spell list. When you cast a necromancy cantrip that normally targets only + one creature, the spell can instead target two creatures within range and + within 5 feet of each other. + + """ + name = "Reaper" + source = "Cleric (Death Domain)" + +class TouchOfDeathCleric(Feature): + """Starting at 2nd level, you can use Channel Divinity to destroy another + creature's life force by touch. When you hit a creature with a melee + attack, you can use Channel Divinity to deal extra necrotic damage to + the target. The damage equals 5 + twice your cleric level. + + """ + name = "Channel Divinity: Touch of Death" + source = "Cleric (Death Domain)" + +class InescapableDestruction(Feature): + """Starting at 6th level, your ability to channel negative energy becomes + more potent. Necrotic damage dealt by your cleric spells and Channel + Divinity options ignores resistance to necrotic damage + + """ + name = "Inescapable Destruction" + source = "Cleric (Death Domain)" + +class DivineStrikeDeath(DivineStrike): + """At 8th level, you gain the ability to infuse your weapon strikes with + necrotic energy. Once on each of your turns when you hit a creature with + a weapon attack, you can cause the attack to deal an a 1d8 necrotic + damage to the target. When you reach 14th level, the extra damage + increases to 2d8. + + """ + source = "Cleric (Death Domain)" + +class ImprovedReaper(Feature): + """Starting at 17th level, when you cast a necromancy spell of 1st through + 5th level that targets only one creature, the spell can instead target two + creatures within range and within 5 feet of each other. If the spell + consumes its material components, you must provide them for each target. + + """ + name = "Improved Reaper" + source = "Cleric (Death Domain)" \ No newline at end of file diff --git a/examples/cleric2.pdf b/examples/cleric2.pdf index f9b89d2..c3015db 100644 Binary files a/examples/cleric2.pdf and b/examples/cleric2.pdf differ diff --git a/examples/cleric2.py b/examples/cleric2.py index 3dfde88..37184cc 100644 --- a/examples/cleric2.py +++ b/examples/cleric2.py @@ -16,7 +16,7 @@ player_name = "Ben" # Be sure to list Primary class first classes = ['Cleric'] # ex: ['Wizard'] or ['Rogue', 'Fighter'] levels = [20] # ex: [10] or [3, 2] -subclasses = ["War Domain"] # ex: ['Necromacy'] or ['Thief', None] +subclasses = ["Death Domain"] # ex: ['Necromacy'] or ['Thief', None] background = "Gladiator" race = "Lightfoot Halfling" alignment = "Chaotic good"