adding in flask
This commit is contained in:
59
main.py
59
main.py
@@ -3,22 +3,22 @@ import random
|
||||
|
||||
armor= { 'None' : 9, 'Leather' : 7, 'Leather, Shield' : 6, 'Chain' : 5, 'Chain, Shield' : 4, 'Plate' : 3, 'Plate, Shield' : 2 }
|
||||
weapons = [
|
||||
{ 'name' : 'battle axe', 'type' : 'melee', 'damage-dice' : 8},
|
||||
{ 'name' : 'crossbow', 'type' : 'missle', 'damage-dice' : 6, 'ammo' : '20 bolts'},
|
||||
{ 'name' : 'hand axe', 'type' : 'melee', 'damage-dice' : 6 },
|
||||
{ 'name' : 'mace', 'type' : 'melee', 'damage-dice' : 6 , 'traits' : [ 'blunt' ] },
|
||||
{ 'name' : 'pole arm', 'type' : 'melee', 'damage-dice' : 10 },
|
||||
{ 'name' : 'short bow', 'type' : 'missle', 'damage-dice' : 6, 'ammo' : '20 arrows'},
|
||||
{ 'name' : 'short sword', 'type' : 'melee', 'damage-dice' : 6 },
|
||||
{ 'name' : 'silver dagger', 'type' : 'melee', 'damage-dice' : 4 },
|
||||
{ 'name' : 'sling', 'type' : 'missle', 'damage-dice' : 4, 'ammo' : '20 stones', 'traits' : [ 'blunt' ] },
|
||||
{ 'name' : 'staff', 'type' : 'melee', 'damage-dice' : 4 , 'traits' : [ 'blunt', 'slow' ] },
|
||||
{ 'name' : 'spear', 'type' : 'melee', 'damage-dice' : 6 },
|
||||
{ 'name' : 'sword', 'type' : 'melee', 'damage-dice' : 8 },
|
||||
{ 'name' : 'war hammer', 'type' : 'melee', 'damage-dice' : 6 , 'traits' : [ 'blunt' ] }
|
||||
{ 'name' : 'battle axe', 'damage-dice' : 8, 'traits' : [ 'melee', 'slow', 'two-handed' ] },
|
||||
{ 'name' : 'club', 'damage-dice' : 4, 'traits' : [ 'melee', 'blunt' ] },
|
||||
{ 'name' : 'crossbow', 'damage-dice' : 6, 'traits' : [ 'missile', 'reload','slow','two-handed'], 'ammo' : '20 bolts'},
|
||||
{ 'name' : 'hand axe', 'damage-dice' : 6, 'traits' : [ 'melee', 'missile'] },
|
||||
{ 'name' : 'mace', 'damage-dice' : 6, 'traits' : [ 'melee', 'blunt' ] },
|
||||
{ 'name' : 'pole arm', 'damage-dice' : 10, 'traits' : [ 'melee', 'brace', 'slow', 'two-handed' ] },
|
||||
{ 'name' : 'short bow', 'damage-dice' : 6, 'traits' : [ 'missile', 'two-handed' ], 'ammo' : '20 arrows'},
|
||||
{ 'name' : 'short sword', 'damage-dice' : 6, 'traits' : [ 'melee' ] },
|
||||
{ 'name' : 'silver dagger','damage-dice' : 4, 'traits' : [ 'melee', 'missile' ] },
|
||||
{ 'name' : 'sling', 'damage-dice' : 4, 'traits' : [ 'missile', 'blunt' ], 'ammo' : '20 stones'},
|
||||
{ 'name' : 'staff', 'damage-dice' : 4, 'traits' : [ 'melee', 'blunt', 'slow', 'two-handed' ] },
|
||||
{ 'name' : 'spear', 'damage-dice' : 6, 'traits' : [ 'melee', 'missile', 'brace' ] },
|
||||
{ 'name' : 'sword', 'damage-dice' : 8, 'traits' : [ 'melee' ] },
|
||||
{ 'name' : 'war hammer', 'damage-dice' : 6, 'traits' : [ 'melee', 'blunt' ] }
|
||||
]
|
||||
|
||||
|
||||
# Player Character Classes
|
||||
class Adventurer:
|
||||
def __init__(self, level=1, attributes={}) -> None:
|
||||
@@ -35,8 +35,15 @@ class Adventurer:
|
||||
self.torches = roll_dice(1,6)
|
||||
self.rations = roll_dice(1,6)
|
||||
self.equipment = [ 'backpack', 'tinderbox', 'waterskin' ]
|
||||
self.weapons = []
|
||||
self.armor = []
|
||||
# all armor, individual classes may have overrides
|
||||
self.possible_armor = list(armor.keys())
|
||||
# all weapons, individual classes may have overrides
|
||||
self.possible_weapons = weapons
|
||||
self.possible_melee_weapons = list(filter(lambda d: 'melee' in d['traits'], weapons))
|
||||
self.possible_missile_weapons = list(filter(lambda d: 'missile' in d['traits'], weapons))
|
||||
# each character should get 1 melee and 1 random (missle or melee)
|
||||
self.weapons = [ random.choice(self.possible_melee_weapons), random.choice(self.possible_weapons) ]
|
||||
self.armor = random.choice(self.possible_armor)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.player_class}"
|
||||
@@ -53,8 +60,8 @@ class Adventurer:
|
||||
sheet.append('{0: <26}'.format(f"| Rations: {self.rations}"))
|
||||
sheet.append('{0: <26}'.format(f"| Armor: {self.armor}"))
|
||||
sheet.append('{0: <26}'.format(f"| Weapons:"))
|
||||
sheet.append('{0: <26}'.format(f"| {self.weapons[0]}"))
|
||||
sheet.append('{0: <26}'.format(f"| {self.weapons[1]}"))
|
||||
sheet.append('{0: <26}'.format(f"| {self.weapons[0]['name'].title()}"))
|
||||
sheet.append('{0: <26}'.format(f"| {self.weapons[1]['name'].title()}"))
|
||||
return sheet
|
||||
|
||||
def get_attributes(self):
|
||||
@@ -78,9 +85,7 @@ class Fighter(Adventurer):
|
||||
Adventurer.__init__(self, level, attributes)
|
||||
self.player_class = "fighter"
|
||||
self.hp = roll_dice(self.level, 8)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
|
||||
class MagicUser(Adventurer):
|
||||
prime_requisite = "intelligence"
|
||||
@@ -89,9 +94,10 @@ class MagicUser(Adventurer):
|
||||
Adventurer.__init__(self, level, attributes)
|
||||
self.player_class = "magic user"
|
||||
self.hp = roll_dice(self.level, 4)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.armor = "None"
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
self.weapons = [ list(filter(lambda d: 'silver dagger' in d['name'],weapons))[0], { "name" : "" } ]
|
||||
|
||||
|
||||
class Cleric(Adventurer):
|
||||
prime_requisite = "wisdom"
|
||||
@@ -102,7 +108,10 @@ class Cleric(Adventurer):
|
||||
self.hp = roll_dice(self.level, 6)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
# clerics can only wield blunt weapons
|
||||
self.possible_melee_weapons = list(filter(lambda d: 'blunt' in d['traits'] and 'melee' in d['traits'], weapons))
|
||||
self.possible_weapons = list(filter(lambda d: 'blunt' in d['traits'], weapons))
|
||||
self.weapons = [ random.choice(self.possible_melee_weapons), random.choice(self.possible_weapons) ]
|
||||
|
||||
class Thief(Adventurer):
|
||||
prime_requisite = "dexterity"
|
||||
@@ -113,7 +122,6 @@ class Thief(Adventurer):
|
||||
self.hp = roll_dice(self.level, 4)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
|
||||
class Dwarf(Adventurer):
|
||||
prime_requisite = "strength"
|
||||
@@ -124,7 +132,6 @@ class Dwarf(Adventurer):
|
||||
self.hp = roll_dice(self.level, 8)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
|
||||
class Elf(Adventurer):
|
||||
prime_requisite = "intellgence"
|
||||
@@ -135,7 +142,6 @@ class Elf(Adventurer):
|
||||
self.hp = roll_dice(self.level, 6)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
|
||||
class Halfling(Adventurer):
|
||||
prime_requisite = "dexterity"
|
||||
@@ -146,7 +152,6 @@ class Halfling(Adventurer):
|
||||
self.hp = roll_dice(self.level, 6)
|
||||
self.armor = random.choice(list(armor.keys()))
|
||||
self.ac = armor[self.armor]
|
||||
self.weapons = [ "sword", "dagger" ]
|
||||
|
||||
# Player Class Selector
|
||||
class ClassSelector():
|
||||
|
||||
Reference in New Issue
Block a user