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
|
@ -11,7 +11,7 @@ class Merchant(FriendlyEntity) :
|
||||||
inventory = list
|
inventory = list
|
||||||
hazel = int
|
hazel = int
|
||||||
|
|
||||||
def keys(self) -> list :
|
def keys(self) -> list:
|
||||||
"""
|
"""
|
||||||
Returns a friendly entitie's specific attributes
|
Returns a friendly entitie's specific attributes
|
||||||
"""
|
"""
|
||||||
|
@ -22,7 +22,7 @@ class Merchant(FriendlyEntity) :
|
||||||
self.inventory = inventory
|
self.inventory = inventory
|
||||||
self.hazel = hazel
|
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,
|
This function is used to open the merchant's inventory in a menu,
|
||||||
and allow the player to buy/sell objects
|
and allow the player to buy/sell objects
|
||||||
|
|
|
@ -117,6 +117,12 @@ class Player(FightingEntity):
|
||||||
queue.append((new_y, new_x))
|
queue.append((new_y, new_x))
|
||||||
self.paths = predecessors
|
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:
|
def save_state(self) -> dict:
|
||||||
"""
|
"""
|
||||||
Saves the state of the entity into a dictionary
|
Saves the state of the entity into a dictionary
|
||||||
|
|
|
@ -26,6 +26,7 @@ class GameMode(Enum):
|
||||||
PLAY = auto()
|
PLAY = auto()
|
||||||
SETTINGS = auto()
|
SETTINGS = auto()
|
||||||
INVENTORY = auto()
|
INVENTORY = auto()
|
||||||
|
STORE = auto()
|
||||||
|
|
||||||
|
|
||||||
class KeyValues(Enum):
|
class KeyValues(Enum):
|
||||||
|
|
|
@ -130,7 +130,8 @@ class Game:
|
||||||
if entity.is_friendly() and entity.x == xp and entity.y == yp :
|
if entity.is_friendly() and entity.x == xp and entity.y == yp :
|
||||||
msg = entity.talk_to(self.player)
|
msg = entity.talk_to(self.player)
|
||||||
self.logs.add_message(msg)
|
self.logs.add_message(msg)
|
||||||
|
if entity.is_merchant() :
|
||||||
|
self.state = GameMode.STORE
|
||||||
|
|
||||||
|
|
||||||
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:
|
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:
|
||||||
|
|
|
@ -329,6 +329,12 @@ class Entity:
|
||||||
"""
|
"""
|
||||||
return isinstance(self, FriendlyEntity)
|
return isinstance(self, FriendlyEntity)
|
||||||
|
|
||||||
|
def is_merchant(self) -> bool:
|
||||||
|
"""
|
||||||
|
Is this entity a merchant?
|
||||||
|
"""
|
||||||
|
return isinstance(self, Merchant)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def translated_name(self) -> str:
|
def translated_name(self) -> str:
|
||||||
return _(self.name.replace("_", " "))
|
return _(self.name.replace("_", " "))
|
||||||
|
@ -459,7 +465,7 @@ class FriendlyEntity(FightingEntity):
|
||||||
"""
|
"""
|
||||||
dialogue_option : list
|
dialogue_option : list
|
||||||
|
|
||||||
def talk_to(self, player : Any) -> str:
|
def talk_to(self, player : Any) -> str :
|
||||||
a = randint(0,len(self.dialogue_option)-1)
|
a = randint(0,len(self.dialogue_option)-1)
|
||||||
return "The "+self.name+" said : "+self.dialogue_option[a]
|
return "The "+self.name+" said : "+self.dialogue_option[a]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue