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:
		@@ -11,7 +11,7 @@ class Merchant(FriendlyEntity) :
 | 
			
		||||
    inventory = list
 | 
			
		||||
    hazel = int
 | 
			
		||||
    
 | 
			
		||||
    def keys(self) -> list :
 | 
			
		||||
    def keys(self) -> list:
 | 
			
		||||
        """
 | 
			
		||||
        Returns a friendly entitie's specific attributes
 | 
			
		||||
        """
 | 
			
		||||
@@ -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("_", " "))
 | 
			
		||||
@@ -459,7 +465,7 @@ class FriendlyEntity(FightingEntity):
 | 
			
		||||
    """
 | 
			
		||||
    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)
 | 
			
		||||
        return "The "+self.name+" said : "+self.dialogue_option[a]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user