adding in flask

This commit is contained in:
zack
2026-04-23 18:35:11 -04:00
parent 206a229895
commit 390f062e0a
7 changed files with 309 additions and 27 deletions

59
main.py
View File

@@ -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():