mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-24 06:38:28 +02:00
571 lines
20 KiB
Python
571 lines
20 KiB
Python
from .features import Feature
|
||
from math import ceil
|
||
|
||
|
||
# PHB
|
||
class RogueExpertise(Feature):
|
||
"""At 1st level, choose two of your skill proficiencies, or one of your skill
|
||
proficiencies and your proficiency with thieves’ tools. Your proficiency
|
||
bonus is doubled for any ability check you make that uses either of the
|
||
chosen proficiencies.
|
||
|
||
At 6th level, you can choose two more of your
|
||
proficiencies (in skills or with thieves’ tools) to gain this benefit.
|
||
|
||
Add these skills to "skill_expertise" in your character.py file
|
||
|
||
"""
|
||
name = "Expertise"
|
||
source = "Rogue"
|
||
|
||
|
||
class SneakAttack(Feature):
|
||
"""Beginning at 1st level, you know how to strike subtly and exploit a foe’s
|
||
distraction. Once per turn, you can deal an extra 1d6 damage to one
|
||
creature you hit with an attack if you have advantage on the attack
|
||
roll. The attack must use a finesse or a ranged weapon.
|
||
|
||
You don’t need advantage on the attack roll if another enemy of the target
|
||
is within 5 feet of it, that enemy isn’t incapacitated, and you don’t have
|
||
disadvantage on the attack roll.
|
||
|
||
The amount of the extra damage increases as you gain levels in this class,
|
||
as shown in the Sneak Attack column of the Rogue table.
|
||
"""
|
||
_name = "Sneak Attack"
|
||
source = "Rogue"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Rogue.level
|
||
dice = ceil(level / 2.)
|
||
name = self._name + " ({:d}d6)".format(dice)
|
||
return name
|
||
|
||
|
||
class CunningAction(Feature):
|
||
"""Starting at 2nd level, your quick thinking and agility allow you to move
|
||
and act quickly. You can take a bonus action on each of your turns in
|
||
combat. This action can be used only to take the Dash, Disengage, or Hide
|
||
action.
|
||
|
||
"""
|
||
name = "Cunning Action"
|
||
source = "Rogue"
|
||
|
||
|
||
class UncannyDodge(Feature):
|
||
"""Starting at 5th level, when an attacker that you can see hits you with an
|
||
attack, you can use your reaction to halve the attack’s damage against you.
|
||
|
||
"""
|
||
name = "Uncanny Dodge"
|
||
source = "Class (many)"
|
||
|
||
|
||
class Evasion(Feature):
|
||
"""Beginning at 7th level, you can nimbly dodge out o f the way of certain
|
||
area effects, such as a red dragon’s fiery breath or an ice storm
|
||
spell. When you are subjected to an effect that allows you to make a
|
||
Dexterity saving throw to take only half damage, you instead take no damage
|
||
if you succeed on the saving throw, and only half damage if you fail.
|
||
|
||
"""
|
||
name = "Evasion"
|
||
source = "Class (many)"
|
||
|
||
|
||
class ReliableTalent(Feature):
|
||
"""By 11th level, you have refined your chosen skills until they approach
|
||
perfection. Whenever you make an ability check that lets you add your
|
||
proficiency bonus, you can treat a d20 roll of 9 or lower as a 10.
|
||
|
||
"""
|
||
name = "Reliable Talent"
|
||
source = "Rogue"
|
||
|
||
|
||
class BlindSense(Feature):
|
||
"""Starting at 14th level, if you are able to hear, you are aware of the
|
||
location of any hidden or invisible creature within 10 feet of you.
|
||
"""
|
||
name = "Blind Sense"
|
||
source = "Rogue"
|
||
|
||
|
||
class SlipperyMind(Feature):
|
||
"""By 15th level, you have acquired greater mental strength. You gain
|
||
proficiency in W isdom saving throws.
|
||
|
||
"""
|
||
name = 'Slippery Mind'
|
||
source = "Rogue"
|
||
|
||
|
||
class Elusive(Feature):
|
||
"""Beginning at 18th level, you are so evasive that attackers rarely gain the
|
||
upper hand against you. No attack roll has advantage against you while you
|
||
aren’t incapacitated.
|
||
|
||
"""
|
||
name = "Elusive"
|
||
source = "Rogue"
|
||
|
||
|
||
class StrokeOfLuck(Feature):
|
||
"""At 20th level, you have an uncanny knack for succeeding when you need
|
||
to. If your attack m isses a target within range, you can turn the miss
|
||
into a hit. Alternatively, if you fail an ability check, you can treat the
|
||
d20 roll as a 20.
|
||
|
||
Once you use this feature, you can’t use it again until you finish a short
|
||
or long rest.
|
||
|
||
"""
|
||
name = "Stroke of Luck"
|
||
source = "Rogue"
|
||
|
||
|
||
# Thief
|
||
class FastHands(Feature):
|
||
"""Starting at 3rd level, you can use the bonus action granted by your Cunning
|
||
Action to make a Dexterity (Sleight of Hand) check, use your thieves’ tools
|
||
to disarm a trap or open a lock, or take the Use an Object action.
|
||
|
||
"""
|
||
name = "Fast Hands"
|
||
source = "Rogue (Thief)"
|
||
|
||
|
||
class SecondStoryWork(Feature):
|
||
"""When you choose this archetype at 3rd level, you gain the ability to climb
|
||
faster than normal; climbing no longer costs you extra movement. In
|
||
addition, when you make a running jump, the distance you cover increases by
|
||
a number of feet equal to your Dexterity modifier.
|
||
|
||
"""
|
||
name = "Second-Story Work"
|
||
source = "Rogue (Thief)"
|
||
|
||
|
||
class SupremeSneak(Feature):
|
||
"""Starting at 9th level, you have advantage on a Dexterity (Stealth) check if
|
||
you move no more than half your speed on the same turn
|
||
|
||
"""
|
||
name = "Supreme Sneak"
|
||
source = "Rogue (Thief)"
|
||
|
||
|
||
class UseMagicDevice(Feature):
|
||
"""By 13th level, you have learned enough about the workings of magic that you
|
||
can improvise the use of items even when they are not intended for you. You
|
||
ignore all class, race, and level requirements on the use of magic items
|
||
|
||
"""
|
||
name = "Use Magic Device"
|
||
source = "Rogue (Thief)"
|
||
|
||
|
||
class ThiefsReflexes(Feature):
|
||
"""When you reach 17th level, you have become adept at laying ambushes and
|
||
quickly escaping danger. You can take two turns during the first round of
|
||
any combat. You take your first turn at your normal initiative and your
|
||
second turn at your initiative minus 10. You can’t use this feature when
|
||
you are surprised.
|
||
|
||
"""
|
||
name = "Thief's Reflexes"
|
||
source = "Rogue (Thief)"
|
||
|
||
|
||
# Assassin
|
||
class Assassinate(Feature):
|
||
"""Starting at 3rd level, you are at your deadliest when you get the drop on
|
||
your enemies. You have advantage on attack rolls against any creature that
|
||
hasn’t taken a turn in the combat yet. In addition, any hit you score
|
||
against a creature that is surprised is a critical hit.
|
||
|
||
"""
|
||
name = "Assassinate"
|
||
source = "Rogue (Assassin)"
|
||
|
||
|
||
class InfiltrationExpertise(Feature):
|
||
"""Starting at 9th level, you can unfailingly create false identities for
|
||
yourself. You must spend seven days and 25 gp to establish the history,
|
||
profession, and affiliations for an identity. You can’t establish an
|
||
identity that belongs to someone else. For example, you might acquire
|
||
appropriate clothing, letters of introduction, and official- looking
|
||
certification to establish yourself as a member of a trading house from a
|
||
remote city so you can insinuate yourself into the company of other wealthy
|
||
merchants. Thereafter, if you adopt the new identity as a disguise, other
|
||
creatures believe you to be that person until given an obvious reason not
|
||
to.
|
||
|
||
"""
|
||
name = "Infiltration Expertise"
|
||
source = "Rogue (Assassin)"
|
||
|
||
|
||
class Imposter(Feature):
|
||
"""At 13th level, you gain the ability to unerringly mimic another person’s
|
||
speech, writing, and behavior. You must spend at least three hours studying
|
||
these three components of the person’s behavior, listening to speech,
|
||
examining handwriting, and observing mannerisms. Your ruse is indiscernible
|
||
to the casual observer. If a wary creature suspects something is amiss, you
|
||
have advantage on any Charisma (Deception) check you make to avoid
|
||
detection
|
||
|
||
"""
|
||
name = "Imposter"
|
||
source = "Rogue (Assassin)"
|
||
|
||
|
||
class DeathStrike(Feature):
|
||
"""Starting at 17th level, you become a master of instant death. When you
|
||
attack and hit a creature that is surprised, it must make a Constitution
|
||
saving throw (DC 8 + your Dexterity modifier + your proficiency bonus). On
|
||
a failed save, double the damage of your attack against the creature
|
||
|
||
"""
|
||
name = "Death Strike"
|
||
source = "Rogue (Assassin)"
|
||
|
||
|
||
# Arcane Trickster
|
||
class MageHandLegerdemain(Feature):
|
||
"""Starting at 3rd level, when you cast mage hand, you can make the spectral
|
||
hand invisible, and you can perform the following additional tasks with it:
|
||
|
||
-- You can stow one object the hand is holding in a container worn or
|
||
carried by another creature.
|
||
|
||
-- You can retrieve an object in a container worn or carried by another
|
||
creature.
|
||
|
||
--You can use thieves’ tools to pick locks and disarm traps at range
|
||
|
||
You can perform one of these tasks without being noticed by a creature if
|
||
you succeed on a Dexterity (Sleight of Hand) check contested by the
|
||
creature’s Wisdom (Perception) check. In addition, you can use the bonus
|
||
action granted by your Cunning Action to control the hand.
|
||
|
||
"""
|
||
name = "Mage Hand Legerdemain"
|
||
source = "Rogue (Arcane Trickster)"
|
||
|
||
|
||
class MagicalAmbush(Feature):
|
||
"""Starting at 9th level, if you are hidden from a creature when you cast a
|
||
spell on it, the creature has disadvantage on any saving throw it makes
|
||
against the spell this turn
|
||
|
||
"""
|
||
name = "Magical Ambush"
|
||
source = "Rogue (Arcane Trickster)"
|
||
|
||
|
||
class VersatileTrickster(Feature):
|
||
"""At 13th level, you gain the ability to distract targets with your mage
|
||
hand. As a bonus action on your turn, you can designate a creature within 5
|
||
feet of the spectral hand created by the spell. Doing so gives you
|
||
advantage on attack rolls against that creature until the end of the turn.
|
||
|
||
"""
|
||
name = "Versatile Trickster"
|
||
source = "Rogue (Arcane Trickster)"
|
||
|
||
|
||
class SpellThief(Feature):
|
||
"""At 17th level, you gain the ability to magically steal the knowledge of how
|
||
to cast a spell from another spellcaster. Immediately after a creature
|
||
casts a spell that targets you or includes you in its area of effect, you
|
||
can use your reaction to force the creature to make a saving throw with its
|
||
spellcasting ability modifier. The DC equals your spell save DC.
|
||
|
||
On a failed save, you negate the spell’s effect against you, and you steal
|
||
the knowledge of the spell if it is at least 1st level and of a level you
|
||
can cast (it doesn’t need to be a wizard spell). For the next 8 hours, you
|
||
know the spell and can cast it using your spell slots. The creature can’t
|
||
cast that spell until the 8 hours have passed. Once you use this feature,
|
||
you can’t use it again until you finish a long rest
|
||
|
||
"""
|
||
name = "Spell Thief"
|
||
source = "Rogue (Arcane Trickster)"
|
||
|
||
|
||
# Inquisitive
|
||
class EarForDeceit(Feature):
|
||
"""When you choose this archetype at 3rd level, you de— velop a talent for
|
||
picking out lies. Whenever you make a Wisdom (Insight) check to determine
|
||
whether a creature is lying, treat a roll of 7 or lower on the c120 as an
|
||
8.
|
||
|
||
"""
|
||
name = "Ear for Deceit"
|
||
source = "Rogue (Inquisitive)"
|
||
|
||
|
||
class EyeForDetail(Feature):
|
||
"""Starting at 3rd level, you can use a bonus action to make a Wisdom
|
||
(Perception) check to spot a hidden creature or object or to make an
|
||
Intelligence (Investigation) check to uncover or decipher clues
|
||
|
||
"""
|
||
name = "Eye for Detail"
|
||
source = "Rogue (Inquisitive)"
|
||
|
||
|
||
class InsightfulFighting(Feature):
|
||
"""At 3rd level, you gain the ability to decipher an opponent's tactics and
|
||
develop a counter to them. As a bonus action, you can make a Wisdom
|
||
(Insight) check against a creature you can see that isn’t incapacitated,
|
||
contested by the target’s Charisma (Deception) check. If you suc— ceed, you
|
||
can use your Sneak Attack against that target even ifyou don’t have
|
||
advantage on the attack roll, but not if you have disadvantage on it. This
|
||
benefit lasts for 1 minute or until you successfully use this feature
|
||
against a different target
|
||
|
||
"""
|
||
name = "Insightful Fighting"
|
||
source = "Rogue (Inquisitive)"
|
||
|
||
|
||
class SteadyEye(Feature):
|
||
"""Starting at 9th level, you have advantage on any Wisdom (Perception) or
|
||
Intelligence (Investigation) check if you move no more than half your speed
|
||
on the same turn
|
||
|
||
"""
|
||
name = "Steady Eye"
|
||
source = "Rogue (Inquisitive)"
|
||
|
||
|
||
class UnerringEye(Feature):
|
||
"""Beginning at 13th level, your senses are almost im« possible to foil. As an
|
||
action, you sense the presence of illusions, shapechangers not in their
|
||
original form, and other magic designed to deceive the senses within 30
|
||
feet ofyou, provided you aren’t blinded or deafened. You sense that an
|
||
effect is attempting to trick you, but you gain no insight into what is
|
||
hidden or into its true nature. You can use this feature a number of times
|
||
equal to your Wisdom modifier (minimum of once), and you regain all
|
||
expended uses of it when you finish a long rest
|
||
|
||
"""
|
||
name = "Unerring Eye"
|
||
source = "Rogue (Inquisitive)"
|
||
|
||
|
||
class EyeForWeakness(Feature):
|
||
"""At 17th level, you learn to exploit a creature’s weak— nesses by carefully
|
||
studying its tactics and movement. While your Insightful Fighting feature
|
||
applies to a creature, your Sneak Attack damage against that creature
|
||
increases by 3d6
|
||
|
||
"""
|
||
name = "Eye for Weakness"
|
||
source = "Rogue (Inquisitive)"
|
||
|
||
|
||
# Mastermind
|
||
class MasterOfIntrigue(Feature):
|
||
"""When you choose this archetype at 3rd level, you gain proficiency with the
|
||
disguise kit, the forgery kit, and one gaming set Of your choice. You also
|
||
learn two languages of your choice. Additionally, you can unerringly mimic
|
||
the speech patterns and accent of a creature that you hear speak for at
|
||
least 1 minute, enabling you to pass yourself off as a native speaker of a
|
||
particular land, provided that you know the language.
|
||
|
||
"""
|
||
name = "Master of Intrigue"
|
||
source = "Rogue (Mastermind)"
|
||
|
||
|
||
class MasterOfTactics(Feature):
|
||
"""Starting at 3rd level, you can use the Help action as a bonus
|
||
action. Additionally, when you use the Help action to aid an ally in
|
||
attacking a creature, the target of that attack can be within 30 feet of
|
||
you, rather than within 5 feet of you, if the target can see or hear you
|
||
|
||
"""
|
||
name = "Master of Tactics"
|
||
source = "Rogue (Mastermind)"
|
||
|
||
|
||
class InsightfulManipulator(Feature):
|
||
"""Starting at 9th level, if you spend at least 1 minute observing or
|
||
interacting with another creature outside combat, you can learn certain
|
||
information about its ca— pabilities compared to your own. The DM tells you
|
||
if the creature is your equal, superior, or inferior in regard to two of
|
||
the following characteristics of your choice:
|
||
|
||
-- Intelligence score
|
||
|
||
-- Wisdom score
|
||
|
||
-- Charisma score
|
||
|
||
--Class levels (if any)
|
||
|
||
At the DM’s option, you might also realize you know a piece of the
|
||
creature’s history or one of its personality traits, if it has any
|
||
|
||
"""
|
||
name = "Insightful Manipulator"
|
||
source = "Rogue (Mastermind)"
|
||
|
||
|
||
class Misdirection(Feature):
|
||
"""Beginning at 13th level, you can sometimes cause another creature to
|
||
suffer an attack meant for you. When you are targeted by an attack while a
|
||
creature within 5 feet of you is granting you cover against that attack,
|
||
you can use your reaction to have the attack target that crea— ture instead
|
||
of you
|
||
|
||
"""
|
||
name = "Misdirection"
|
||
source = "Rogue (Mastermind)"
|
||
|
||
|
||
class SoulOfDeceit(Feature):
|
||
"""Starting at 17th level, your thoughts can’t be read by telepathy or other
|
||
means, unless you allow it. You can present false thoughts by succeeding on
|
||
a Charisma (Deception) check contested by the mind reader’s Wis— dom
|
||
(Insight) check. Additionally, no matter what you say, magic that would
|
||
determine if you are telling the truth indicates you are being truthful if
|
||
you so choose, and you can’t be compelled to tell the truth by magic
|
||
|
||
"""
|
||
name = "Soul of Deceit"
|
||
source = "Rogue (Masterind)"
|
||
|
||
|
||
# Scout
|
||
class Skirmisher(Feature):
|
||
"""Starting at 3rd level, you are difficult to pin down during a fight. You
|
||
can move up to halfyour speed as a reaction when an enemy ends its turn
|
||
within 5 feet of you. This movement doesn’t provoke opportunity attacks
|
||
|
||
"""
|
||
name = "Skirmisher"
|
||
source = "Rogue (Scout)"
|
||
|
||
|
||
class Survivalist(Feature):
|
||
"""When you choose this archetype at 3rd level, you gain proficiency in the
|
||
Nature and Survival skills if you don’t already have it. Your proficiency
|
||
bonus is doubled for any ability check you make that uses either of those
|
||
pro— ficiencies
|
||
|
||
"""
|
||
|
||
def __init__(self, owner=None):
|
||
super().__init__(owner=owner)
|
||
self.owner.skill_expertise += ("nature", "survival")
|
||
|
||
|
||
class SuperiorMobility(Feature):
|
||
"""At 9th level, your walking speed increases by 10 feet. If you have a
|
||
climbing or swimming speed, this increase applies to that speed as well.
|
||
|
||
"""
|
||
name = "Superior Mobility"
|
||
source = "Rogue (Scout)"
|
||
needs_implementation = True # apply to climbing and swimming
|
||
|
||
|
||
class AmbushMaster(Feature):
|
||
"""Starting at 13th level, you excel at leading ambushes and acting first in a
|
||
fight. You have advantage on initiative rolls. In addition, the first
|
||
creature you hit during the first round of a combat becomes easier for you
|
||
and others to strike; attack rolls against that target have advantage until
|
||
the start ofyour next turn
|
||
|
||
"""
|
||
name = "Ambush Master"
|
||
source = "Rogue (Scout)"
|
||
|
||
|
||
class SuddenStrike(Feature):
|
||
"""Starting at 17th level, you can strike with deadly speed. If you take the
|
||
Attack action on your turn, you can make one additional attack as a bonus
|
||
action. This attack can benefit from your Sneak Attack even if you have
|
||
already used it this turn, but you can’t use your Sneak Attack against the
|
||
same target more than once in a turn
|
||
|
||
"""
|
||
name = "Sudden Strike"
|
||
source = "Rogue (Scout)"
|
||
|
||
|
||
# Swashbuckler
|
||
class FancyFootwork(Feature):
|
||
"""When you choose this archetype at 3rd level, you learn how to land a strike
|
||
and then slip away without reprisal. During your turn, if you make a melee
|
||
attack against a creature, that creature can’t make opportunity attacks
|
||
against you for the rest ofyour turn
|
||
|
||
"""
|
||
name = "Fancy Footwork"
|
||
source = "Rogue (Swashbuckler)"
|
||
|
||
|
||
class RakishAudacity(Feature):
|
||
"""Starting at 3rd level, your confidence propels you into battle. You can give
|
||
yourself a bonus to your initiative rolls equal to your Charisma
|
||
modifier. You also gain an additional way to use your Sneak Attack; you
|
||
don’t need advantage on the attack roll to use your Sneak Attack against a
|
||
creature if you are within 5 feet of it, no other creatures are within 5
|
||
feet of you, and you don’t have disadvantage on the attack roll. All the
|
||
other rules for Sneak Attack still apply to you.
|
||
|
||
"""
|
||
name = "Rakish Audacity"
|
||
source = "Rogue (Swashbuckler)"
|
||
|
||
|
||
class Panache(Feature):
|
||
"""At 9th level, your charm becomes extraordinarily be— guiling. As an action,
|
||
you can make a Charisma (Persuasion) check contested by a creature’s
|
||
Wisdom (Insight) check. The creature must be able to hear you, and the
|
||
two ofyou must share a language. If you succeed on the check and the
|
||
creature is hostile to you, it has disadvantage on attack rolls against
|
||
targets other than you and can’t make opportunity attacks against targets
|
||
other than you.
|
||
|
||
This effect lasts for 1 minute, until one of your companions attacks the
|
||
target or affects it with a spell, or until you and the target are more
|
||
than 60 feet apart. If you succeed on the check and the creature isn’t
|
||
hostile to you, it is charmed by you for 1 minute. While charmed, it
|
||
regards you as a friendly acquaintance. This effect ends immediately if you
|
||
or your companions do anything harmful to it
|
||
|
||
"""
|
||
name = "Panache"
|
||
source = "Rogue (Swashbuckler)"
|
||
|
||
|
||
class ElegantManeuver(Feature):
|
||
"""Starting at 13th level, you can use a bonus action on your turn to gain
|
||
advantage on the next Dexterity (Ac— robatics) or Strength (Athletics)
|
||
check you make during the same turn
|
||
|
||
"""
|
||
name = "Elegant Maneuver"
|
||
source = "Rogue (Swashbuckler)"
|
||
|
||
|
||
class MasterDuelist(Feature):
|
||
"""Beginning at 17th level, your mastery of the blade lets you turn failure
|
||
into success in combat. Ifyou miss with an attack roll, you can roll it
|
||
again with advantage. Once you do so, you can’t use this feature again
|
||
until you finish a short or long rest
|
||
|
||
"""
|
||
name = "Master Duelist"
|
||
source = "Rogue (Swashbuckler)"
|
||
|
||
|