mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-19 04:33:26 +02:00
added Aasimar, updated background languages, and corrected a few other issues
This commit is contained in:
@@ -1 +1,3 @@
|
|||||||
from . import weapons, character
|
from . import weapons, character
|
||||||
|
|
||||||
|
__VERSION__ = "0.6.1"
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class GuildMerchant(GuildArtisan):
|
|||||||
class Hermit(Background):
|
class Hermit(Background):
|
||||||
name = "Hermit"
|
name = "Hermit"
|
||||||
skill_proficiencies = ("medicine", "religion")
|
skill_proficiencies = ("medicine", "religion")
|
||||||
languages = ("[choose one]")
|
languages = ("[choose one]", )
|
||||||
|
|
||||||
|
|
||||||
class Noble(Background):
|
class Noble(Background):
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ races = {
|
|||||||
'Half-Elf': race.HalfElf,
|
'Half-Elf': race.HalfElf,
|
||||||
'Half-Orc': race.HalfOrc,
|
'Half-Orc': race.HalfOrc,
|
||||||
'Tiefling': race.Tiefling,
|
'Tiefling': race.Tiefling,
|
||||||
|
'Fallen Aasimar': race.FallenAasimar,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,12 +55,15 @@ CHECKBOX_ON = 'Yes'
|
|||||||
CHECKBOX_OFF = 'Off'
|
CHECKBOX_OFF = 'Off'
|
||||||
PDFTK_CMD = 'pdftk'
|
PDFTK_CMD = 'pdftk'
|
||||||
|
|
||||||
|
|
||||||
def text_box(string):
|
def text_box(string):
|
||||||
"""Format a string for displaying in a text box."""
|
"""Format a string for displaying in a text box."""
|
||||||
# Remove line breaks
|
# Remove line breaks
|
||||||
new_string = string.replace('\n', ' ').replace('\r', ' ')
|
# new_string = string.replace('\n', ' ').replace('\r', ' ')
|
||||||
|
new_string = string
|
||||||
# Remove multiple whitespace
|
# Remove multiple whitespace
|
||||||
new_string = ' '.join(new_string.split())
|
# new_string = ' '.join(new_string.split())
|
||||||
|
new_string = new_string
|
||||||
return new_string
|
return new_string
|
||||||
|
|
||||||
|
|
||||||
@@ -328,8 +331,8 @@ def create_character_pdf(character, basename, flatten=False):
|
|||||||
for _fields, weapon in zip(weapon_fields, character.weapons):
|
for _fields, weapon in zip(weapon_fields, character.weapons):
|
||||||
name_field, atk_field, dmg_field = _fields
|
name_field, atk_field, dmg_field = _fields
|
||||||
fields[name_field] = weapon.name
|
fields[name_field] = weapon.name
|
||||||
fields[atk_field] = str(weapon.attack_bonus)
|
fields[atk_field] = '{:+d}'.format(weapon.attack_bonus)
|
||||||
fields[dmg_field] = f'{weapon.damage} {weapon.damage_type}'
|
fields[dmg_field] = f'{weapon.damage}/{weapon.damage_type}'
|
||||||
# Other attack information
|
# Other attack information
|
||||||
attack_str = f'Armor: {character.armor}'
|
attack_str = f'Armor: {character.armor}'
|
||||||
attack_str += '\n\r'
|
attack_str += '\n\r'
|
||||||
@@ -460,7 +463,8 @@ def make_sheet(character_file, flatten=False):
|
|||||||
char_base = os.path.splitext(character_file)[0] + '_char'
|
char_base = os.path.splitext(character_file)[0] + '_char'
|
||||||
sheets = [char_base + '.pdf']
|
sheets = [char_base + '.pdf']
|
||||||
pages = []
|
pages = []
|
||||||
char_pdf = create_character_pdf(character=char, basename=char_base, flatten=flatten)
|
char_pdf = create_character_pdf(character=char, basename=char_base,
|
||||||
|
flatten=flatten)
|
||||||
pages.append(char_pdf)
|
pages.append(char_pdf)
|
||||||
if char.is_spellcaster:
|
if char.is_spellcaster:
|
||||||
# Create spell sheet
|
# Create spell sheet
|
||||||
|
|||||||
+17
-1
@@ -4,7 +4,8 @@ from . import weapons
|
|||||||
__all__ = ('Dwarf', 'HillDwarf', 'MountainDwarf', 'Elf', 'HighElf',
|
__all__ = ('Dwarf', 'HillDwarf', 'MountainDwarf', 'Elf', 'HighElf',
|
||||||
'WoodElf', 'DarkElf', 'Halfling', 'LightfootHalfling',
|
'WoodElf', 'DarkElf', 'Halfling', 'LightfootHalfling',
|
||||||
'StoutHalfling', 'Human', 'Dragonborn', 'Gnome', 'ForestGnome',
|
'StoutHalfling', 'Human', 'Dragonborn', 'Gnome', 'ForestGnome',
|
||||||
'RockGnome', 'HalfElf', 'HalfOrc', 'Tiefling')
|
'RockGnome', 'HalfElf', 'HalfOrc', 'Tiefling', 'Aasimar',
|
||||||
|
'FallenAasimar')
|
||||||
|
|
||||||
|
|
||||||
class Race():
|
class Race():
|
||||||
@@ -176,3 +177,18 @@ class Tiefling(Race):
|
|||||||
intelligence_bonus = 1
|
intelligence_bonus = 1
|
||||||
charisma_bonus = 2
|
charisma_bonus = 2
|
||||||
languages = ("Common", "Infernal")
|
languages = ("Common", "Infernal")
|
||||||
|
|
||||||
|
|
||||||
|
# Aassimar
|
||||||
|
class Aasimar(Race):
|
||||||
|
name = 'Aasimar'
|
||||||
|
size = 'medium'
|
||||||
|
speed = 30
|
||||||
|
charisma_bonus = 2
|
||||||
|
languages = ("Common", "Celestial")
|
||||||
|
|
||||||
|
|
||||||
|
# Fallen Aasimar
|
||||||
|
class FallenAasimar(Aasimar):
|
||||||
|
name = "Fallen Aasimar"
|
||||||
|
strength_bonus = 1
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ def create_spell(**params):
|
|||||||
NewSpell = type('UnknownSpell', (Spell,), params)
|
NewSpell = type('UnknownSpell', (Spell,), params)
|
||||||
return NewSpell
|
return NewSpell
|
||||||
|
|
||||||
|
|
||||||
class Spell():
|
class Spell():
|
||||||
"""A magical spell castable by a player character."""
|
"""A magical spell castable by a player character."""
|
||||||
level = 0
|
level = 0
|
||||||
@@ -2078,7 +2079,7 @@ class EldritchBlast(Spell):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
name = 'Eldritch Blast'
|
name = 'Eldritch Blast'
|
||||||
level = 3
|
level = 0
|
||||||
casting_time = "1 action"
|
casting_time = "1 action"
|
||||||
casting_range = "120 feet"
|
casting_range = "120 feet"
|
||||||
components = ('V', 'S')
|
components = ('V', 'S')
|
||||||
|
|||||||
+55
-39
@@ -5,7 +5,7 @@ class Weapon():
|
|||||||
cost = "0 gp"
|
cost = "0 gp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
bonus_damage = 0
|
bonus_damage = 0
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
attack_bonus = 0
|
attack_bonus = 0
|
||||||
weight = 1 # In lbs
|
weight = 1 # In lbs
|
||||||
properties = "Light"
|
properties = "Light"
|
||||||
@@ -16,7 +16,7 @@ class Weapon():
|
|||||||
def damage(self):
|
def damage(self):
|
||||||
dam_str = str(self.base_damage)
|
dam_str = str(self.base_damage)
|
||||||
if self.bonus_damage != 0:
|
if self.bonus_damage != 0:
|
||||||
dam_str += ' ' + mod_str(self.bonus_damage)
|
dam_str += '' + mod_str(self.bonus_damage)
|
||||||
return dam_str
|
return dam_str
|
||||||
|
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ class Club(Weapon):
|
|||||||
name = "Club"
|
name = "Club"
|
||||||
cost = "1 sp"
|
cost = "1 sp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Light"
|
properties = "Light"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -34,7 +34,7 @@ class Dagger(Weapon):
|
|||||||
name = "Dagger"
|
name = "Dagger"
|
||||||
cost = "2 gp"
|
cost = "2 gp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 1
|
weight = 1
|
||||||
properties = "Finesse, light, thrown (range 20/60)"
|
properties = "Finesse, light, thrown (range 20/60)"
|
||||||
is_finesse = True
|
is_finesse = True
|
||||||
@@ -45,7 +45,7 @@ class Greatclub(Weapon):
|
|||||||
name = "Greatclub"
|
name = "Greatclub"
|
||||||
cost = "2 sp"
|
cost = "2 sp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 10
|
weight = 10
|
||||||
properties = "Two-handed"
|
properties = "Two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -55,7 +55,7 @@ class Handaxe(Weapon):
|
|||||||
name = "Handaxe"
|
name = "Handaxe"
|
||||||
cost = "5 gp"
|
cost = "5 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Light, thrown (range 20/60)"
|
properties = "Light, thrown (range 20/60)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -65,7 +65,7 @@ class Javelin(Weapon):
|
|||||||
name = "Javelin"
|
name = "Javelin"
|
||||||
cost = "5 sp"
|
cost = "5 sp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Thrown (range 30/120)"
|
properties = "Thrown (range 30/120)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -75,7 +75,7 @@ class LightHammer(Weapon):
|
|||||||
name = "Light hammer"
|
name = "Light hammer"
|
||||||
cost = "2 gp"
|
cost = "2 gp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Light, thrown (range 20/60)"
|
properties = "Light, thrown (range 20/60)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -85,7 +85,7 @@ class Mace(Weapon):
|
|||||||
name = "Mace"
|
name = "Mace"
|
||||||
cost = "5 gp"
|
cost = "5 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 4
|
weight = 4
|
||||||
properties = ""
|
properties = ""
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -95,7 +95,7 @@ class Quarterstaff(Weapon):
|
|||||||
name = "Quarterstaff"
|
name = "Quarterstaff"
|
||||||
cost = "2 sp"
|
cost = "2 sp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 4
|
weight = 4
|
||||||
properties = "Versatile (1d8)"
|
properties = "Versatile (1d8)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -105,7 +105,7 @@ class Sickle(Weapon):
|
|||||||
name = "Sickle"
|
name = "Sickle"
|
||||||
cost = "1 gp"
|
cost = "1 gp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Light"
|
properties = "Light"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -115,7 +115,7 @@ class Spear(Weapon):
|
|||||||
name = "Spear"
|
name = "Spear"
|
||||||
cost = "1 gp"
|
cost = "1 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 3
|
weight = 3
|
||||||
properties = "Thrown (range 20/60), versatile (1d8)"
|
properties = "Thrown (range 20/60), versatile (1d8)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -125,7 +125,7 @@ class LightCrossbow(Weapon):
|
|||||||
name = "Light crossbow"
|
name = "Light crossbow"
|
||||||
cost = "25 gp"
|
cost = "25 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 5
|
weight = 5
|
||||||
properties = "Ammunition (range 80/320, loading, two-handed"
|
properties = "Ammunition (range 80/320, loading, two-handed"
|
||||||
ability = 'dexterity'
|
ability = 'dexterity'
|
||||||
@@ -135,7 +135,7 @@ class Dart(Weapon):
|
|||||||
name = "Dart"
|
name = "Dart"
|
||||||
cost = "5 cp"
|
cost = "5 cp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 0.25
|
weight = 0.25
|
||||||
properties = "Finesse, thrown (range 20/60)"
|
properties = "Finesse, thrown (range 20/60)"
|
||||||
is_finesse = True
|
is_finesse = True
|
||||||
@@ -146,7 +146,7 @@ class Shortbow(Weapon):
|
|||||||
name = "Shortbow"
|
name = "Shortbow"
|
||||||
cost = "25 gp"
|
cost = "25 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Ammunition (range 80/320), two-handed"
|
properties = "Ammunition (range 80/320), two-handed"
|
||||||
ability = 'dexterity'
|
ability = 'dexterity'
|
||||||
@@ -156,7 +156,7 @@ class Sling(Weapon):
|
|||||||
name = "Sling"
|
name = "Sling"
|
||||||
cost = "1 sp"
|
cost = "1 sp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 0
|
weight = 0
|
||||||
properties = "Ammunition (range 30/120)"
|
properties = "Ammunition (range 30/120)"
|
||||||
ability = 'dexterity'
|
ability = 'dexterity'
|
||||||
@@ -166,7 +166,7 @@ class Battleaxe(Weapon):
|
|||||||
name = "Battleaxe"
|
name = "Battleaxe"
|
||||||
cost = "10 gp"
|
cost = "10 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 4
|
weight = 4
|
||||||
properties = "Versatile (1d10)"
|
properties = "Versatile (1d10)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -176,7 +176,7 @@ class Flail(Weapon):
|
|||||||
name = "Flail"
|
name = "Flail"
|
||||||
cost = "10gp"
|
cost = "10gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = ""
|
properties = ""
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -186,7 +186,7 @@ class Glaive(Weapon):
|
|||||||
name = "Glaive"
|
name = "Glaive"
|
||||||
cost = "20 gp"
|
cost = "20 gp"
|
||||||
base_damage = "1d10"
|
base_damage = "1d10"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 6
|
weight = 6
|
||||||
properties = "Heavy, reach, two-handed"
|
properties = "Heavy, reach, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -196,7 +196,7 @@ class Greataxe(Weapon):
|
|||||||
name = "Greataxe"
|
name = "Greataxe"
|
||||||
cost = "30 gp"
|
cost = "30 gp"
|
||||||
base_damage = "1d12"
|
base_damage = "1d12"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 7
|
weight = 7
|
||||||
properties = "Heavy, two-handed"
|
properties = "Heavy, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -206,7 +206,7 @@ class Greatsword(Weapon):
|
|||||||
name = "Greatsword"
|
name = "Greatsword"
|
||||||
cost = "50 gp"
|
cost = "50 gp"
|
||||||
base_damage = "2d6"
|
base_damage = "2d6"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 6
|
weight = 6
|
||||||
properties = "Heavy, two-handed"
|
properties = "Heavy, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -216,7 +216,7 @@ class Halberd(Weapon):
|
|||||||
name = "Halberd"
|
name = "Halberd"
|
||||||
cost = "20 gp"
|
cost = "20 gp"
|
||||||
base_damage = "1d10"
|
base_damage = "1d10"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 6
|
weight = 6
|
||||||
properties = "Heavy, reach, two-handed"
|
properties = "Heavy, reach, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -226,7 +226,7 @@ class Lance(Weapon):
|
|||||||
name = "Lance"
|
name = "Lance"
|
||||||
cost = "10gp"
|
cost = "10gp"
|
||||||
base_damage = "1d12"
|
base_damage = "1d12"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 6
|
weight = 6
|
||||||
properties = "Reach, special"
|
properties = "Reach, special"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -236,7 +236,7 @@ class Longsword(Weapon):
|
|||||||
name = "Longsword"
|
name = "Longsword"
|
||||||
cost = "15 gp"
|
cost = "15 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 3
|
weight = 3
|
||||||
properties = "Versatile (1d10)"
|
properties = "Versatile (1d10)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -246,7 +246,7 @@ class Maul(Weapon):
|
|||||||
name = "Maul"
|
name = "Maul"
|
||||||
cost = "10 gp"
|
cost = "10 gp"
|
||||||
base_damage = "2d6"
|
base_damage = "2d6"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 10
|
weight = 10
|
||||||
properties = "Heavy, two-handed"
|
properties = "Heavy, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -256,7 +256,7 @@ class Morningstar(Weapon):
|
|||||||
name = "Morningstar"
|
name = "Morningstar"
|
||||||
cost = "15 gp"
|
cost = "15 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 4
|
weight = 4
|
||||||
properties = ""
|
properties = ""
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -266,7 +266,7 @@ class Pike(Weapon):
|
|||||||
name = "Pike"
|
name = "Pike"
|
||||||
cost = "5 gp"
|
cost = "5 gp"
|
||||||
base_damage = "1d10"
|
base_damage = "1d10"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 18
|
weight = 18
|
||||||
properties = "Heavy, reach, two-handed"
|
properties = "Heavy, reach, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -276,7 +276,7 @@ class Rapier(Weapon):
|
|||||||
name = "Rapier"
|
name = "Rapier"
|
||||||
cost = "25 gp"
|
cost = "25 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Finesse"
|
properties = "Finesse"
|
||||||
is_finesse = True
|
is_finesse = True
|
||||||
@@ -287,7 +287,7 @@ class Scimitar(Weapon):
|
|||||||
name = "Scimitar"
|
name = "Scimitar"
|
||||||
cost = "25 gp"
|
cost = "25 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 3
|
weight = 3
|
||||||
properties = "Finesse, light"
|
properties = "Finesse, light"
|
||||||
is_finesse = True
|
is_finesse = True
|
||||||
@@ -298,7 +298,7 @@ class Shortsword(Weapon):
|
|||||||
name = "Shortsword"
|
name = "Shortsword"
|
||||||
cost = "10 gp"
|
cost = "10 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 0
|
weight = 0
|
||||||
properties = "Finesse, light"
|
properties = "Finesse, light"
|
||||||
is_finesse = True
|
is_finesse = True
|
||||||
@@ -309,7 +309,7 @@ class ThrowingHammer(Weapon):
|
|||||||
name = "Throwing Hammer"
|
name = "Throwing Hammer"
|
||||||
cost = "15 gp"
|
cost = "15 gp"
|
||||||
base_damage = '1d6'
|
base_damage = '1d6'
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 4
|
weight = 4
|
||||||
properties = "Thrown (range 60/120)"
|
properties = "Thrown (range 60/120)"
|
||||||
ability = "strength"
|
ability = "strength"
|
||||||
@@ -319,7 +319,7 @@ class Trident(Weapon):
|
|||||||
name = "Trident"
|
name = "Trident"
|
||||||
cost = "5 gp"
|
cost = "5 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 4
|
weight = 4
|
||||||
properties = "Thrown (range 20/60), versatile (1d8)"
|
properties = "Thrown (range 20/60), versatile (1d8)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -329,7 +329,7 @@ class WarPick(Weapon):
|
|||||||
name = "War pick"
|
name = "War pick"
|
||||||
cost = "5 gp"
|
cost = "5 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = ""
|
properties = ""
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -339,7 +339,7 @@ class Warhammer(Weapon):
|
|||||||
name = "Warhammer"
|
name = "Warhammer"
|
||||||
cost = "15 gp"
|
cost = "15 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "bludgeoning"
|
damage_type = "b"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Versatile (1d10)"
|
properties = "Versatile (1d10)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -349,7 +349,7 @@ class Whip(Weapon):
|
|||||||
name = "Whip"
|
name = "Whip"
|
||||||
cost = "2 gp"
|
cost = "2 gp"
|
||||||
base_damage = "1d4"
|
base_damage = "1d4"
|
||||||
damage_type = "slashing"
|
damage_type = "s"
|
||||||
weight = 3
|
weight = 3
|
||||||
properties = "Finesse, reach"
|
properties = "Finesse, reach"
|
||||||
is_finesse = True
|
is_finesse = True
|
||||||
@@ -360,7 +360,7 @@ class Blowgun(Weapon):
|
|||||||
name = "Blowgun"
|
name = "Blowgun"
|
||||||
cost = "10 gp"
|
cost = "10 gp"
|
||||||
base_damage = "1"
|
base_damage = "1"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 1
|
weight = 1
|
||||||
properties = "Ammunition (range 25/100), loading"
|
properties = "Ammunition (range 25/100), loading"
|
||||||
ability = 'dexterity'
|
ability = 'dexterity'
|
||||||
@@ -370,7 +370,7 @@ class HandCrossbow(Weapon):
|
|||||||
name = "Crossbow, hand"
|
name = "Crossbow, hand"
|
||||||
cost = "75 gp"
|
cost = "75 gp"
|
||||||
base_damage = "1d6"
|
base_damage = "1d6"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 3
|
weight = 3
|
||||||
properties = "Ammunition (range 30/120), light, loading"
|
properties = "Ammunition (range 30/120), light, loading"
|
||||||
ability = 'dexterity'
|
ability = 'dexterity'
|
||||||
@@ -380,7 +380,7 @@ class HeavyCrossbow(Weapon):
|
|||||||
name = "Crossbow, heavy"
|
name = "Crossbow, heavy"
|
||||||
cost = "50 gp"
|
cost = "50 gp"
|
||||||
base_damage = "1d10"
|
base_damage = "1d10"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 18
|
weight = 18
|
||||||
properties = "Ammunition (range 100/400), heaving, loading, two-handed"
|
properties = "Ammunition (range 100/400), heaving, loading, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -390,7 +390,7 @@ class Longbow(Weapon):
|
|||||||
name = "Longbow"
|
name = "Longbow"
|
||||||
cost = "50 gp"
|
cost = "50 gp"
|
||||||
base_damage = "1d8"
|
base_damage = "1d8"
|
||||||
damage_type = "piercing"
|
damage_type = "p"
|
||||||
weight = 2
|
weight = 2
|
||||||
properties = "Ammunition (range 150/600), heavy, two-handed"
|
properties = "Ammunition (range 150/600), heavy, two-handed"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
@@ -405,6 +405,22 @@ class Net(Weapon):
|
|||||||
properties = "Special, thrown (range 5/15)"
|
properties = "Special, thrown (range 5/15)"
|
||||||
ability = 'strength'
|
ability = 'strength'
|
||||||
|
|
||||||
|
|
||||||
|
class Unarmed(Weapon):
|
||||||
|
name = "Unarmed"
|
||||||
|
cost = "0 gp"
|
||||||
|
base_damage = "1"
|
||||||
|
damage_type = "b"
|
||||||
|
weight = 0
|
||||||
|
properties = ""
|
||||||
|
ability = "strength"
|
||||||
|
|
||||||
|
|
||||||
|
class SotaFist(Unarmed):
|
||||||
|
name = "Sota Fist"
|
||||||
|
base_damage = "1d4"
|
||||||
|
bonus_damage = 2
|
||||||
|
|
||||||
|
|
||||||
# Some lists of weapons for easy proficiency resolution
|
# Some lists of weapons for easy proficiency resolution
|
||||||
simple_melee_weapons = (Club, Dagger, Greatclub, Handaxe, Javelin,
|
simple_melee_weapons = (Club, Dagger, Greatclub, Handaxe, Javelin,
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ setup(name='dungeonsheets',
|
|||||||
packages=['dungeonsheets'],
|
packages=['dungeonsheets'],
|
||||||
package_data={
|
package_data={
|
||||||
'dungeonsheets': ['blank-character-sheet-default.pdf', 'blank-spell-sheet-default.pdf',
|
'dungeonsheets': ['blank-character-sheet-default.pdf', 'blank-spell-sheet-default.pdf',
|
||||||
'spellbook_template.tex']
|
'spellbook_template.tex', '../VERSION',
|
||||||
|
'character_template.txt']
|
||||||
},
|
},
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'fdfgen', 'npyscreen', 'jinja2', 'pdfrw',
|
'fdfgen', 'npyscreen', 'jinja2', 'pdfrw',
|
||||||
|
|||||||
Reference in New Issue
Block a user