Files
dungeon-sheets/dungeonsheets/features/rogue.py
T
2018-12-27 13:00:26 -05:00

127 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 foes
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 dont need advantage on the attack roll if another enemy of the target
is within 5 feet of it, that enemy isnt incapacitated, and you dont 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 attacks damage against you.
"""
name = "Uncanny Dodge"
source = "Rogue"
class Evasion(Feature):
"""Beginning at 7th level, you can nimbly dodge out o f the way of certain
area effects, such as a red dragons 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 = "Rogue"
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
arent 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 cant use it again until you finish a short
or long rest.
"""
name = "Stroke of Luck"
source = "Rogue"