Changed armor to go on armor slot instead of chest slot.
This commit is contained in:
34
player.py
34
player.py
@@ -1,5 +1,5 @@
|
||||
from random import randint
|
||||
from enum_list import DamageType, DamageMod, ItemType, Slots # Import specific enums
|
||||
from enum_list import DamageType, DamageMod, ItemType, Slots
|
||||
|
||||
# Define Item classes here, as they are fundamental building blocks
|
||||
class Item:
|
||||
@@ -15,6 +15,7 @@ class Item:
|
||||
def __repr__(self):
|
||||
return f"{self.name}\n=====\n{self.description}\nValue: {self.value}\n"
|
||||
|
||||
|
||||
class Money(Item):
|
||||
"""The currency item used in the world of Kanjin"""
|
||||
def __init__(self, name, amt, magical, ItemType):
|
||||
@@ -30,14 +31,17 @@ class Money(Item):
|
||||
itemType=ItemType.Money,
|
||||
attunement=False)
|
||||
|
||||
|
||||
class Weapon(Item):
|
||||
"""The base class for all weapons"""
|
||||
def __init__(self, name, description, value, slot, damage1H, damage2H, versatiledmg,
|
||||
def __init__(self, name, description, value, slot, damage1H, damage2H, versatiledmg, light, finesse,
|
||||
dmgType, dmgMod, versatile, thrown, ItemType, magical, attunement):
|
||||
self.slot = slot
|
||||
self.damage1H = damage1H
|
||||
self.damage2H = damage2H
|
||||
self.versatiledmg = versatiledmg
|
||||
self.light = light
|
||||
self.finesse = finesse
|
||||
self.dmgType = dmgType
|
||||
self.dmgMod = dmgMod
|
||||
self.versatile = versatile
|
||||
@@ -77,6 +81,7 @@ class Weapon(Item):
|
||||
f"Magical: {self.magical}\n" \
|
||||
f"Attunement: {'Required' if self.attunement else 'Not Required'}"
|
||||
|
||||
|
||||
class Armor(Item):
|
||||
"""The base class for all armor"""
|
||||
def __init__(self, name, description, value, slot, grade, ac, disadvantage, dmgRes, ItemType, magical, attunement):
|
||||
@@ -116,7 +121,7 @@ class Inventory:
|
||||
Slots.OffHand: None,
|
||||
Slots.TwoHanded: None,
|
||||
Slots.Helm: None,
|
||||
Slots.Chest: None,
|
||||
Slots.Armor: None,
|
||||
Slots.Wrists: None,
|
||||
Slots.Feet: None,
|
||||
Slots.Neck: None,
|
||||
@@ -310,26 +315,30 @@ rock = Weapon(
|
||||
damage1H='1d6',
|
||||
damage2H=None,
|
||||
versatiledmg=None,
|
||||
light=True,
|
||||
finesse=False,
|
||||
dmgType=DamageType.Bludgeoning,
|
||||
dmgMod=DamageMod.Strength,
|
||||
versatile=False,
|
||||
thrown=True,
|
||||
magical=False,
|
||||
ItemType=ItemType.Weapon,
|
||||
attunement=False # Rocks typically aren't attuned
|
||||
attunement=False
|
||||
)
|
||||
|
||||
dagger = Weapon(
|
||||
name="Dagger",
|
||||
description="Pointy stabby-stab",
|
||||
value=None,
|
||||
slot=Slots.MainHand, # Can be main hand or off hand
|
||||
damage1H='1d4', # Daggers are usually 1d4
|
||||
slot=Slots.MainHand,
|
||||
damage1H='1d4',
|
||||
damage2H=None,
|
||||
versatiledmg=None, # Daggers are not versatile in the D&D sense (they are light, finesse)
|
||||
dmgType=DamageType.Piercing, # Changed to piercing
|
||||
versatiledmg=None,
|
||||
light=True,
|
||||
finesse=True,
|
||||
dmgType=DamageType.Piercing,
|
||||
dmgMod=DamageMod.Dexterity,
|
||||
versatile=False, # Changed to False, as D&D versatile means 1H or 2H damage
|
||||
versatile=False,
|
||||
thrown=True,
|
||||
magical=False,
|
||||
ItemType=ItemType.Weapon,
|
||||
@@ -344,6 +353,8 @@ polearm = Weapon(
|
||||
damage1H=None,
|
||||
damage2H="1d10", # Polearms are typically 1d10
|
||||
versatiledmg=None,
|
||||
light=False,
|
||||
finesse=False,
|
||||
dmgType=DamageType.Piercing,
|
||||
dmgMod=DamageMod.Strength,
|
||||
versatile=False,
|
||||
@@ -357,7 +368,7 @@ tornRags = Armor(
|
||||
name="Torn Rags",
|
||||
description="A ripped and worn-out outfit.",
|
||||
value=None,
|
||||
slot=Slots.Chest,
|
||||
slot=Slots.Armor,
|
||||
grade="Light",
|
||||
ac=10, # Base AC for light armor without proficiency is 10 + Dex mod
|
||||
disadvantage=False, # Light armor usually doesn't give disadvantage
|
||||
@@ -430,9 +441,10 @@ class Player:
|
||||
# Initial items and equipment (now with silent=True)
|
||||
self.inventory.add_item(rock, 1, silent=True)
|
||||
self.inventory.add_item(tornRags, 1, silent=True)
|
||||
|
||||
# Equip initial items (using the inventory's equip method)
|
||||
self.inventory.equip_item(rock, Slots.MainHand, silent=True)
|
||||
self.inventory.equip_item(tornRags, Slots.Chest, silent=True)
|
||||
self.inventory.equip_item(tornRags, Slots.Armor, silent=True)
|
||||
|
||||
|
||||
def getModifier(self):
|
||||
|
||||
Reference in New Issue
Block a user