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:
		@@ -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("_", " "))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user