Work in progress on printing a store menu. Its buggy though

This commit is contained in:
eichhornchen
2020-12-07 20:54:53 +01:00
parent d39427f978
commit 8540a8f354
7 changed files with 68 additions and 34 deletions

View File

@ -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: