Update player.py
Updated how item type is portrayed at class level
This commit is contained in:
122
player.py
122
player.py
@@ -409,18 +409,20 @@ class Slots(Enum):
|
|||||||
Cloak = auto()
|
Cloak = auto()
|
||||||
LeftRing = auto()
|
LeftRing = auto()
|
||||||
RightRing = auto()
|
RightRing = auto()
|
||||||
|
Other = auto()
|
||||||
Attunement = auto()
|
Attunement = auto()
|
||||||
|
|
||||||
|
|
||||||
class Item:
|
class Item:
|
||||||
"""The base class for all items"""
|
"""The base class for all items"""
|
||||||
|
|
||||||
def __init__(self, name, description, value, magical):
|
def __init__(self, name, description, value, magical, ItemType, attunement):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.description = description
|
self.description = description
|
||||||
self.value = value
|
self.value = value
|
||||||
self.magical = magical
|
self.magical = magical
|
||||||
self.type = ItemType.Item
|
self.itemType = ItemType
|
||||||
|
self.attunement = attunement
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"{self.name}\n=====\n{self.description}\nValue: {self.value}\n"
|
return f"{self.name}\n=====\n{self.description}\nValue: {self.value}\n"
|
||||||
@@ -429,54 +431,79 @@ class Item:
|
|||||||
class Money(Item):
|
class Money(Item):
|
||||||
"""The currency item used in the world of Kanjin"""
|
"""The currency item used in the world of Kanjin"""
|
||||||
|
|
||||||
def __init__(self, name, amt, magical):
|
def __init__(self, name, amt, magical, ItemType):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.amt = amt
|
self.amt = amt
|
||||||
self.magical = magical
|
self.magical = magical
|
||||||
self.type = ItemType.Money
|
self.itemType = ItemType
|
||||||
super().__init__(name=self.name,
|
super().__init__(name=self.name,
|
||||||
description=f"A small round coin made of {self.name.lower()} "
|
description=f"A small round coin made of {self.name.lower()} "
|
||||||
f"with the imperial city logo stamped on the face.",
|
f"with the imperial city logo stamped on the face.",
|
||||||
value=self.amt,
|
value=self.amt,
|
||||||
magical=self.magical)
|
magical=self.magical,
|
||||||
|
ItemType=ItemType.Money,
|
||||||
|
attunement=False)
|
||||||
|
|
||||||
|
|
||||||
class Weapon(Item):
|
class Weapon(Item):
|
||||||
"""The base class for all weapons"""
|
"""The base class for all weapons"""
|
||||||
|
|
||||||
def __init__(self, name, description, value, slot, damage1H, damage2H,
|
def __init__(self, name, description, value, slot, damage1H, damage2H, versatiledmg,
|
||||||
dmgType, dmgMod, versatile, thrown, magical):
|
dmgType, dmgMod, versatile, thrown, ItemType, magical, attunement):
|
||||||
self.slot = slot
|
self.slot = slot
|
||||||
self.damage1H = damage1H
|
self.damage1H = damage1H
|
||||||
self.damage2H = damage2H
|
self.damage2H = damage2H
|
||||||
|
self.versatiledmg = versatiledmg
|
||||||
self.dmgType = dmgType
|
self.dmgType = dmgType
|
||||||
self.dmgMod = dmgMod
|
self.dmgMod = dmgMod
|
||||||
self.versatile = versatile
|
self.versatile = versatile
|
||||||
self.thrown = thrown
|
self.thrown = thrown
|
||||||
self.itemType = ItemType.Weapon
|
self.itemType = ItemType
|
||||||
self.attunement = False
|
super().__init__(name, description, value, magical, ItemType, attunement)
|
||||||
super().__init__(name, description, value, magical)
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __str__(self):
|
||||||
return f"{self.name}\n=====" \
|
if self.damage2H is None and self.damage1H is not None:
|
||||||
f"\n{self.description}" \
|
return f"{self.name}\n=====" \
|
||||||
f"\nValue: {self.value}" \
|
f"\n{self.description}" \
|
||||||
f"\nDamage: One Handed - {self.damage1H}" \
|
f"\nValue: {self.value}" \
|
||||||
f"\nDamage: Two Handed - {self.damage2H}" \
|
f"\nDamage: One Handed - {self.damage1H}" \
|
||||||
f"\nDamage Type: {self.dmgType.name.title()}" \
|
f"\nDamage Type: {self.dmgType.name.title()}" \
|
||||||
f"\nMagical: {self.magical}"
|
f"\nMagical: {self.magical}" \
|
||||||
|
f"\nAttunement: {'Required' if self.attunement else 'Not Required'}"
|
||||||
|
elif self.damage1H is None and self.damage2H is not None:
|
||||||
|
return f"{self.name}\n=====" \
|
||||||
|
f"\n{self.description}" \
|
||||||
|
f"\nValue: {self.value}" \
|
||||||
|
f"\nDamage: Two Handed - {self.damage2H}" \
|
||||||
|
f"\nDamage Type: {self.dmgType.name.title()}" \
|
||||||
|
f"\nMagical: {self.magical}" \
|
||||||
|
f"\nAttunement: {'Required' if self.attunement else 'Not Required'}"
|
||||||
|
elif self.versatile:
|
||||||
|
return f"{self.name}\n=====" \
|
||||||
|
f"\n{self.description}" \
|
||||||
|
f"\nValue: {self.value}" \
|
||||||
|
f"\nDamage: Versatile - {self.versatiledmg}" \
|
||||||
|
f"\nDamage Type: {self.dmgType.name.title()}" \
|
||||||
|
f"\nMagical: {self.magical}" \
|
||||||
|
f"\nAttunement: {'Required' if self.attunement else 'Not Required'}"
|
||||||
|
else:
|
||||||
|
return f"{self.name}\n=====" \
|
||||||
|
f"\n{self.description}" \
|
||||||
|
f"\nValue: {self.value}" \
|
||||||
|
f"\nMagical: {self.magical}" \
|
||||||
|
f"\nAttunement: {'Required' if self.attunement else 'Not Required'}"
|
||||||
|
|
||||||
|
|
||||||
class Armor(Item):
|
class Armor(Item):
|
||||||
"""The base class for all armor"""
|
"""The base class for all armor"""
|
||||||
|
|
||||||
def __init__(self, name, description, value, grade, ac, disadvantage, dmgRes, magical):
|
def __init__(self, name, description, value, grade, ac, disadvantage, dmgRes, ItemType, magical, attunement):
|
||||||
self.grade = grade
|
self.grade = grade
|
||||||
self.ac = ac
|
self.ac = ac
|
||||||
self.stealthDis = disadvantage
|
self.stealthDis = disadvantage
|
||||||
self.dmgRes = dmgRes
|
self.dmgRes = dmgRes
|
||||||
self.itemType = ItemType.Armor
|
self.itemType = ItemType
|
||||||
super().__init__(name, description, value, magical)
|
super().__init__(name, description, value, magical, ItemType, attunement)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.stealthDis:
|
if self.stealthDis:
|
||||||
@@ -496,37 +523,60 @@ class Armor(Item):
|
|||||||
|
|
||||||
|
|
||||||
# Different types of coins
|
# Different types of coins
|
||||||
GP1 = Money("Gold", 1, False)
|
GP1 = Money("Gold", 1, False, ItemType.Money)
|
||||||
SP1 = Money("Silver", 1, False)
|
SP1 = Money("Silver", 1, False, ItemType.Money)
|
||||||
CP1 = Money("Copper", 1, False)
|
CP1 = Money("Copper", 1, False, ItemType.Money)
|
||||||
|
|
||||||
# starting equip
|
# starting equip
|
||||||
rock = Weapon(
|
rock = Weapon(
|
||||||
name="Rock",
|
name="Rock",
|
||||||
description="A fist-sized rock, suitable for bludgeoning.",
|
description="A fist-sized rock, suitable for bludgeoning.",
|
||||||
value=None,
|
value=None,
|
||||||
slot=Slots.MainHand,
|
slot="Main Hand",
|
||||||
damage1H='1d6',
|
damage1H='1d6',
|
||||||
damage2H=None,
|
damage2H=None,
|
||||||
|
versatiledmg=None,
|
||||||
dmgType=DamageType.Crushing,
|
dmgType=DamageType.Crushing,
|
||||||
dmgMod=DamageMod.Strength,
|
dmgMod=DamageMod.Strength,
|
||||||
versatile=False,
|
versatile=False,
|
||||||
thrown=True,
|
thrown=True,
|
||||||
magical=False
|
magical=False,
|
||||||
|
ItemType=ItemType.Weapon,
|
||||||
|
attunement=True
|
||||||
)
|
)
|
||||||
|
|
||||||
dagger = Weapon(
|
dagger = Weapon(
|
||||||
name="Dagger",
|
name="Dagger",
|
||||||
description="Pointy stabby-stab",
|
description="Pointy stabby-stab",
|
||||||
value=None,
|
value=None,
|
||||||
slot=Slots.MainHand,
|
slot="Main Hand",
|
||||||
damage1H='1d6',
|
damage1H=None,
|
||||||
damage2H=None,
|
damage2H=None,
|
||||||
|
versatiledmg='1d6',
|
||||||
dmgType=DamageType.Slashing,
|
dmgType=DamageType.Slashing,
|
||||||
dmgMod=DamageMod.Dexterity,
|
dmgMod=DamageMod.Dexterity,
|
||||||
|
versatile=True,
|
||||||
|
thrown=True,
|
||||||
|
magical=False,
|
||||||
|
ItemType=ItemType.Weapon,
|
||||||
|
attunement=True
|
||||||
|
)
|
||||||
|
|
||||||
|
polearm = Weapon(
|
||||||
|
name="Polearm",
|
||||||
|
description="Long Pointy stabby-stab",
|
||||||
|
value=None,
|
||||||
|
slot="Two Handed",
|
||||||
|
damage1H=None,
|
||||||
|
damage2H="2d6",
|
||||||
|
versatiledmg=None,
|
||||||
|
dmgType=DamageType.Piercing,
|
||||||
|
dmgMod=DamageMod.Strength,
|
||||||
versatile=False,
|
versatile=False,
|
||||||
thrown=True,
|
thrown=True,
|
||||||
magical=False
|
magical=False,
|
||||||
|
ItemType=ItemType.Weapon,
|
||||||
|
attunement=True
|
||||||
)
|
)
|
||||||
|
|
||||||
tornRags = Armor(
|
tornRags = Armor(
|
||||||
@@ -537,13 +587,17 @@ tornRags = Armor(
|
|||||||
ac=0,
|
ac=0,
|
||||||
disadvantage=True,
|
disadvantage=True,
|
||||||
dmgRes="None",
|
dmgRes="None",
|
||||||
magical=False
|
magical=False,
|
||||||
|
ItemType=ItemType.Armor,
|
||||||
|
attunement=True
|
||||||
)
|
)
|
||||||
paper = Item(
|
paper = Item(
|
||||||
name="Paper",
|
name="Paper",
|
||||||
description="A blank piece of paper",
|
description="A blank piece of paper",
|
||||||
value=None,
|
value=None,
|
||||||
magical=False
|
magical=False,
|
||||||
|
ItemType=ItemType.Item,
|
||||||
|
attunement=True
|
||||||
)
|
)
|
||||||
|
|
||||||
Inventory = {
|
Inventory = {
|
||||||
@@ -553,6 +607,9 @@ Inventory = {
|
|||||||
dagger: {"Count": 1,
|
dagger: {"Count": 1,
|
||||||
"object": Weapon,
|
"object": Weapon,
|
||||||
},
|
},
|
||||||
|
polearm: {"Count": 1,
|
||||||
|
"object": Weapon
|
||||||
|
},
|
||||||
paper: {"Count": 1,
|
paper: {"Count": 1,
|
||||||
"object": Item
|
"object": Item
|
||||||
},
|
},
|
||||||
@@ -576,6 +633,7 @@ Equipment = {
|
|||||||
"Cloak": None,
|
"Cloak": None,
|
||||||
"Left Ring": None,
|
"Left Ring": None,
|
||||||
"Right Ring": None,
|
"Right Ring": None,
|
||||||
"Attunement": None
|
"Other": paper,
|
||||||
|
"Attunement": 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user