commit entity-modify-player-inventory

This commit is contained in:
2026-01-29 22:05:56 +01:00
parent 7b5c411c8d
commit fc5076d054
4 changed files with 56 additions and 14 deletions

View File

@@ -16,7 +16,9 @@ class Entity(Serializable):
self.hp = hp
self.armor = armor
self.speed = speed
self.equipped_item = equipped_item
self.equipped_item = None
if equipped_item:
self.set_equipped_item(equipped_item)
def get_id(self):
return self.id
@@ -74,4 +76,44 @@ class Entity(Serializable):
def set_equipped_item(self, item):
self.equipped_item = item
if item.stat_modifier == "strength":
self.set_strength(self.get_strength() + item.stat_modifier_value)
elif item.stat_modifier == "dexterity":
self.set_dexterity(self.get_dexterity() + item.stat_modifier_value)
elif item.stat_modifier == "intelligence":
self.set_intelligence(self.get_intelligence() + item.stat_modifier_value)
elif item.stat_modifier == "wisdom":
self.set_wisdom(self.get_wisdom() + item.stat_modifier_value)
elif item.stat_modifier == "charisma":
self.set_charisma(self.get_charisma() + item.stat_modifier_value)
elif item.stat_modifier == "hp":
self.set_hp(self.get_hp() + item.stat_modifier_value)
elif item.stat_modifier == "armor":
self.set_armor(self.get_armor() + item.stat_modifier_value)
elif item.stat_modifier == "speed":
self.set_speed(self.get_speed() + item.stat_modifier_value)
else:
raise ValueError(f"Unknown stat modifier: {item.stat_modifier}")
def change_equipped_item(self, new_item):
if self.equipped_item:
# Remove the stat modifier of the currently equipped item
if self.equipped_item.stat_modifier == "strength":
self.set_strength(self.get_strength() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "dexterity":
self.set_dexterity(self.get_dexterity() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "intelligence":
self.set_intelligence(self.get_intelligence() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "wisdom":
self.set_wisdom(self.get_wisdom() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "charisma":
self.set_charisma(self.get_charisma() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "hp":
self.set_hp(self.get_hp() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "armor":
self.set_armor(self.get_armor() - self.equipped_item.stat_modifier_value)
elif self.equipped_item.stat_modifier == "speed":
self.set_speed(self.get_speed() - self.equipped_item.stat_modifier_value)
# Equip the new item
self.set_equipped_item(new_item)

View File

@@ -1,9 +1,7 @@
from inventory import Inventory
from entity import Entity
class Player(Entity):
def __init__(self, name, strength, dexterity, intelligence, wisdom, charisma, hp, armor, speed, item=None):
super().__init__(name, strength, dexterity, intelligence, wisdom, charisma, hp, armor, speed)
self.inventory = Inventory()
if item:
self.inventory.add_item(item)
def __init__(self, name, strength, dexterity, intelligence, wisdom, charisma, hp, armor, speed, equipped_item=None):
super().__init__(name, strength, dexterity, intelligence, wisdom, charisma, hp, armor, speed, equipped_item)