More generic display update

This commit is contained in:
Yohann D'ANELLO
2020-12-18 15:07:09 +01:00
parent b8d32b29c8
commit 85870494a0
8 changed files with 46 additions and 18 deletions

View File

@ -5,7 +5,7 @@ import curses
from random import randint
from typing import List
from squirrelbattle.menus import Menu, MainMenu
from squirrelbattle.menus import Menu, MainMenu, SettingsMenu
from .display import Box, Display
from ..enums import KeyValues, GameMode
from ..game import Game
@ -17,6 +17,7 @@ class MenuDisplay(Display):
"""
A class to display the menu objects
"""
menu: Menu
position: int
def __init__(self, *args, **kwargs):
@ -80,6 +81,11 @@ class SettingsMenuDisplay(MenuDisplay):
"""
A class to display specifically a settingsmenu object
"""
menu: SettingsMenu
def update(self, game: Game) -> None:
self.update_menu(game.settings_menu)
@property
def values(self) -> List[str]:
return [_(a[1][1]) + (" : "
@ -122,6 +128,9 @@ class MainMenuDisplay(Display):
menuy, menux, min(self.menudisplay.preferred_height,
self.height - menuy), menuwidth)
def update(self, game: Game) -> None:
self.menudisplay.update_menu(game.main_menu)
def handle_click(self, y: int, x: int, game: Game) -> None:
menuwidth = min(self.menudisplay.preferred_width, self.width)
menuy, menux = len(self.title) + 8, self.width // 2 - menuwidth // 2 - 1
@ -135,6 +144,9 @@ class MainMenuDisplay(Display):
class PlayerInventoryDisplay(MenuDisplay):
def update(self, game: Game) -> None:
self.update_menu(game.inventory_menu)
def update_pad(self) -> None:
self.menubox.update_title(_("INVENTORY"))
for i, item in enumerate(self.menu.values):
@ -166,6 +178,9 @@ class PlayerInventoryDisplay(MenuDisplay):
class StoreInventoryDisplay(MenuDisplay):
def update(self, game: Game) -> None:
self.update_menu(game.store_menu)
def update_pad(self) -> None:
self.menubox.update_title(_("STALL"))
for i, item in enumerate(self.menu.values):