add Goblin race

This commit adds Goblin race and it's features.
Source: Guildmaster's Guide to Ravnica
This commit is contained in:
Robert Kubosz
2020-01-16 19:35:23 +01:00
parent 9a49e7cb14
commit 4dd998501a
2 changed files with 53 additions and 20 deletions
+32 -12
View File
@@ -32,7 +32,7 @@ class PowerfulBuild(Feature):
name = "Powerful Build"
source = "Race"
class Amphibious(Feature):
"""
You can breath air and water
@@ -41,7 +41,7 @@ class Amphibious(Feature):
name = "Amphibious"
source = "Race"
# Dwarves
class DwarvenResilience(Feature):
"""You have advantage on saving throws against poison, and you have resistance
@@ -62,7 +62,7 @@ class Stonecunning(Feature):
name = "Stonecunning"
source = "Race (Dwarf)"
class DwarvenToughness(Feature):
"""
Your hit point maximum
@@ -73,7 +73,7 @@ class DwarvenToughness(Feature):
source = "Race (Hill Dwarf)"
needs_implementation = True
# Elves
class FeyAncestry(Feature):
"""You have advantage on saving throws against being charmed, and magic cant
@@ -163,7 +163,7 @@ class HalflingNimbleness(Feature):
name = "Halfling Nimbleness"
source = "Race (Halfling)"
class NaturallyStealthy(Feature):
"""You can attempt to hide even when you are obscured only by a creature that
is at least one size larger than you.
@@ -283,7 +283,7 @@ class ArtificersLore(Feature):
name = "Artificer's Lore"
source = "Race (Rock Gnome)"
class Tinker(Feature):
"""You have proficiency with artisans tools (tinkers tools). Using those
tools, you can spend 1 hour and 10 gp worth of materials to construct a
@@ -316,8 +316,28 @@ class StoneCamouflage(Feature):
source = "Race (Deep Gnome)"
# Goblins
class FuryOfTheSmall(Feature):
"""
When you damage a creature with an attack or a spell and the creature's
size is larger than yours, you can cause the attack or spell to deal extra
damage to the creature. The extra damage equals your level. Once you use
this trait, you can't use it again until you finish a short or long rest.
"""
name = "Fury of the Small"
source = "Race (Goblin)"
class NimbleEscape(Feature):
"""
You can take the Disengage or Hide action as a bonus action on each of your
turns.
"""
name = "Nimble Escape"
source "Race (Goblin)"
# Half-Elves
# Half-Orcs
class RelentlessEndurance(Feature):
"""When you are reduced to 0 hit points but not killed outright, you can drop
@@ -353,7 +373,7 @@ class InfernalLegacy(Feature):
the hellish rebuke spell once per day as a 2nd-level spell. Once you reach
5th level, you can also cast the darkness spell once per day. Charisma is
your spellcasting ability for these spells.
"""
name = "Infernal Legacy"
source = "Race (Tiefling)"
@@ -422,7 +442,7 @@ class RadiantConsumption(Feature):
Once you use this trait, you can't use it again until you finish a long
rest.
"""
name = "Radiant Consumption"
source = "Race (Scourge Aasimar)"
@@ -519,7 +539,7 @@ class ExpertForgery(Feature):
name = "Expert Forgery"
source = "Race (Kenku)"
class Mimicry(Feature):
"""You can mimic sounds you have heard, including voices. A creature that
hears the sounds you make can tell they are imitations with a successful
@@ -529,7 +549,7 @@ class Mimicry(Feature):
name = "Mimicry"
source = "Race (Kenku)"
# Lizardfolk
class CunningArtisan(Feature):
"""As part of a short rest, you can harvest bone and hide from a slain
@@ -695,7 +715,7 @@ class ReachToTheBlaze(Feature):
class AcidResistance(Feature):
"""
You have resistance to acid damage.
"""
name = "Acid Resistance"
source = "Race (Water Genasi)"
+21 -8
View File
@@ -39,10 +39,10 @@ class Race():
@property
def spells_prepared(self):
return self.spells_known
def __str__(self):
return self.name
def __repr__(self):
return "\"{:s}\"".format(self.name)
@@ -129,7 +129,7 @@ class LightfootHalfling(_Halfling):
name = "Lightfoot Halfling"
charisma_bonus = 1
features = _Halfling.features + (feats.NaturallyStealthy,)
class StoutHalfling(_Halfling):
name = "Stout Halfling"
@@ -179,7 +179,7 @@ class ForestGnome(_Gnome):
features = _Gnome.features + (feats.NaturalIllusionist,
feats.SpeakWithSmallBeasts)
spells_known = (spells.MinorIllusion,)
class RockGnome(_Gnome):
name = "Rock Gnome"
@@ -248,7 +248,7 @@ class _Aasimar(Race):
feats.HealingHands, feats.LightBearer)
spells_known = (spells.Light,)
# Protector Aasimar
class ProtectorAasimar(_Aasimar):
name = "Protector Aasimar"
@@ -393,7 +393,7 @@ class AirGenasi(_Genasi):
features = (feats.UnendingBreath,
feats.MingleWithTheWind)
class EarthGenasi(_Genasi):
name = "Earth Genasi"
strength_bonus = 1
@@ -415,6 +415,16 @@ class WaterGenasi(_Genasi):
feats.CallToTheWave)
class Goblin(Race):
name = "Goblin"
size = "small"
dexterity_bonus = 2
constitution_bonus = 1
speed = 30
languages = ("Common", "Goblin")
features = (feats.Darkvision, feats.FuryOfTheSmall, feats.NimbleEscape)
PHB_races = [HillDwarf, MountainDwarf, HighElf, WoodElf, DarkElf,
LightfootHalfling, StoutHalfling, Human, Dragonborn,
ForestGnome, RockGnome, HalfElf, HalfOrc, Tiefling]
@@ -425,7 +435,10 @@ VOLO_races = [ProtectorAasimar, ScourgeAasimar, FallenAasimar,
EE_races = [Aarakocra, DeepGnome, AirGenasi, FireGenasi, EarthGenasi,
WaterGenasi]
available_races = PHB_races + VOLO_races + EE_races
#Guildmaster's Guide to Ravnica
GGTR_races = [Goblin]
available_races = PHB_races + VOLO_races + EE_races + GGTR_races
__all__ = tuple([r.name for r in available_races]) + (
'available_races', 'PHB_races', 'VOLO_races', 'EE_races')
'available_races', 'PHB_races', 'VOLO_races', 'EE_races', 'GGTR_races')