Added a Gamemode for selling interfaces, as well as the base of the player/merchant interaction, related to issue #18

This commit is contained in:
eichhornchen 2020-12-05 21:43:13 +01:00
parent 3886bee1ba
commit ba68e68584
5 changed files with 18 additions and 4 deletions

View File

@ -22,7 +22,7 @@ class Merchant(FriendlyEntity) :
self.inventory = inventory
self.hazel = hazel
def talk_to(self, player : Player) -> None:
def talk_to(self, player : Player) -> str:
"""
This function is used to open the merchant's inventory in a menu,
and allow the player to buy/sell objects

View File

@ -117,6 +117,12 @@ class Player(FightingEntity):
queue.append((new_y, new_x))
self.paths = predecessors
def add_to_inventory(self, obj : Item) -> None :
"""
Adds an object to inventory
"""
self.inventory.append(obj)
def save_state(self) -> dict:
"""
Saves the state of the entity into a dictionary

View File

@ -26,6 +26,7 @@ class GameMode(Enum):
PLAY = auto()
SETTINGS = auto()
INVENTORY = auto()
STORE = auto()
class KeyValues(Enum):

View File

@ -130,7 +130,8 @@ class Game:
if entity.is_friendly() and entity.x == xp and entity.y == yp :
msg = entity.talk_to(self.player)
self.logs.add_message(msg)
if entity.is_merchant() :
self.state = GameMode.STORE
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:

View File

@ -329,6 +329,12 @@ class Entity:
"""
return isinstance(self, FriendlyEntity)
def is_merchant(self) -> bool:
"""
Is this entity a merchant?
"""
return isinstance(self, Merchant)
@property
def translated_name(self) -> str:
return _(self.name.replace("_", " "))