This commit is contained in:
Yohann D'ANELLO
2020-12-11 17:06:30 +01:00
parent b9b776b7ad
commit 98b5dd64a8
3 changed files with 21 additions and 16 deletions

View File

@ -17,8 +17,8 @@ class Item(Entity):
held_by: Optional[Player]
price: int
def __init__(self, held: bool = False, held_by: Optional[Player] = None, price : int=2,
*args, **kwargs):
def __init__(self, held: bool = False, held_by: Optional[Player] = None,
price: int = 2, *args, **kwargs):
super().__init__(*args, **kwargs)
self.held = held
self.held_by = held_by
@ -66,27 +66,30 @@ class Item(Entity):
def get_all_items() -> list:
return [BodySnatchPotion, Bomb, Heart, Sword]
def be_sold(self, buyer: Entity, seller: Entity, game : Any) -> bool:
def be_sold(self, buyer: Entity, seller: Entity, game: Any) -> bool:
"""
Does all necessary actions when an object is to be sold.
Is overwritten by some classes that cannot exist in the player's inventory
Is overwritten by some classes that cannot exist in the player's
inventory
"""
if buyer.hazel>=self.price :
if buyer.hazel >= self.price:
buyer.add_to_inventory(self)
seller.remove_from_inventory(self)
buyer.change_hazel_balance(-self.price)
seller.change_hazel_balance(self.price)
return True
else :
else:
return False
class Heart(Item):
"""
A heart item to return health to the player
"""
healing: int
def __init__(self, name: str = "heart", healing: int = 5, price: int = 3, *args, **kwargs):
def __init__(self, name: str = "heart", healing: int = 5, price: int = 3,
*args, **kwargs):
super().__init__(name=name, price=price, *args, **kwargs)
self.healing = healing
@ -105,20 +108,21 @@ class Heart(Item):
d["healing"] = self.healing
return d
def be_sold(self, buyer: Entity, seller: Entity, game: Any) -> str:
def be_sold(self, buyer: Entity, seller: Entity, game: Any) -> bool:
"""
Does all necessary actions when an object is to be sold.
Is overwritten by some classes that cannot exist in the player's inventory
Is overwritten by some classes that cannot exist in the player's
inventory
"""
if buyer.hazel>=self.price :
if buyer.hazel >= self.price:
self.hold(buyer)
seller.remove_from_inventory(self)
buyer.change_hazel_balance(-self.price)
seller.change_hazel_balance(self.price)
return True
else :
else:
return False
class Bomb(Item):
"""
@ -212,7 +216,8 @@ class BodySnatchPotion(Item):
other entity.
"""
def __init__(self, name: str = "body_snatch_potion", price: int = 14, *args, **kwargs):
def __init__(self, name: str = "body_snatch_potion", price: int = 14,
*args, **kwargs):
super().__init__(name=name, price=price, *args, **kwargs)
def use(self) -> None: