import curses from typing import Any from dungeonbattle.display.display import Display from dungeonbattle.entities.player import Player class StatsDisplay(Display): def __init__(self, screen: Any, player: Player, height: int, width: int, topleftx: int, toplefty: int): super().__init__(screen) self.width = width self.height = height self.topleftx = topleftx self.toplefty = toplefty self.player = player self.pad = curses.newpad(height, width) def update_pad(self) -> None: string = "" for i in range(self.width - 1): string = string + "-" string = string self.pad.addstr(0, 0, string) string2 = "Player -- LVL {} EXP {}/{} HP {}/{}"\ .format(self.player.level, self.player.current_xp, self.player.max_xp, self.player.health, self.player.maxhealth) for i in range(self.width - len(string2) - 1): string2 = string2 + " " self.pad.addstr(1, 0, string2) string3 = "Stats : STR {} INT {} CHR {} DEX {} CON {}"\ .format(self.player.strength, self.player.intelligence, self.player.charisma, self.player.dexterity, self.player.constitution) for i in range(self.width - len(string3) - 1): string3 = string3 + " " self.pad.addstr(2, 0, string3) def refresh(self) -> None: self.pad.clear() self.update_pad() self.pad.refresh(0, 0, self.toplefty, self.topleftx, 2 + self.toplefty, self.width + self.topleftx)