Work in progress on printing a store menu. Its buggy though
This commit is contained in:
@ -41,6 +41,7 @@ class Game:
|
||||
self.settings_menu = menus.SettingsMenu()
|
||||
self.settings_menu.update_values(self.settings)
|
||||
self.inventory_menu = menus.InventoryMenu()
|
||||
self.store_menu = menus.StoreMenu()
|
||||
self.logs = Logs()
|
||||
self.message = None
|
||||
|
||||
@ -92,6 +93,8 @@ class Game:
|
||||
self.handle_key_pressed_main_menu(key)
|
||||
elif self.state == GameMode.SETTINGS:
|
||||
self.settings_menu.handle_key_pressed(key, raw_key, self)
|
||||
elif self.state == GameMode.STORE:
|
||||
self.handle_key_pressed_store(key)
|
||||
self.display_actions(DisplayActions.REFRESH)
|
||||
|
||||
def handle_key_pressed_play(self, key: KeyValues) -> None:
|
||||
@ -138,6 +141,7 @@ class Game:
|
||||
self.logs.add_message(msg)
|
||||
if entity.is_merchant() :
|
||||
self.state = GameMode.STORE
|
||||
self.store_menu.update_merchant(entity)
|
||||
|
||||
|
||||
def handle_key_pressed_inventory(self, key: KeyValues) -> None:
|
||||
@ -162,28 +166,23 @@ class Game:
|
||||
self.inventory_menu.position = min(self.inventory_menu.position,
|
||||
len(self.inventory_menu.values)
|
||||
- 1)
|
||||
|
||||
def handle_key_pressed_inventory(self, key: KeyValues) -> None:
|
||||
|
||||
def handle_key_pressed_store(self, key: KeyValues) -> None:
|
||||
"""
|
||||
In the inventory menu, we can interact with items or close the menu.
|
||||
In a store menu, we can buy items or close the menu.
|
||||
"""
|
||||
if key == KeyValues.SPACE or key == KeyValues.INVENTORY:
|
||||
if key == KeyValues.SPACE :
|
||||
self.state = GameMode.PLAY
|
||||
elif key == KeyValues.UP:
|
||||
self.inventory_menu.go_up()
|
||||
self.store_menu.go_up()
|
||||
elif key == KeyValues.DOWN:
|
||||
self.inventory_menu.go_down()
|
||||
if self.inventory_menu.values and not self.player.dead:
|
||||
if key == KeyValues.USE:
|
||||
self.inventory_menu.validate().use()
|
||||
elif key == KeyValues.EQUIP:
|
||||
self.inventory_menu.validate().equip()
|
||||
elif key == KeyValues.DROP:
|
||||
self.inventory_menu.validate().drop()
|
||||
|
||||
self.store_menu.go_down()
|
||||
if self.store_menu.values and not self.player.dead:
|
||||
if key == KeyValues.ENTER:
|
||||
self.player.add_to_inventory(self.store_menu.validate())
|
||||
# Ensure that the cursor has a good position
|
||||
self.inventory_menu.position = min(self.inventory_menu.position,
|
||||
len(self.inventory_menu.values)
|
||||
self.store_menu.position = min(self.store_menu.position,
|
||||
len(self.store_menu.values)
|
||||
- 1)
|
||||
|
||||
def handle_key_pressed_main_menu(self, key: KeyValues) -> None:
|
||||
|
Reference in New Issue
Block a user