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:
parent
3886bee1ba
commit
ba68e68584
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -26,6 +26,7 @@ class GameMode(Enum):
|
|||
PLAY = auto()
|
||||
SETTINGS = auto()
|
||||
INVENTORY = auto()
|
||||
STORE = auto()
|
||||
|
||||
|
||||
class KeyValues(Enum):
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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("_", " "))
|
||||
|
|
Loading…
Reference in New Issue