You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
3.6 KiB

from game.personnage import Personnage, ClassType
2 years ago
from graphics.colors import Colors
from graphics.engine import Layer
from getkey import keys
from re import match
class GUI(Layer):
2 years ago
def __init__(self, screen, z_index, buttons):
super().__init__(screen, z_index, "gui")
self.buttons = buttons
self.current = 0
2 years ago
self.handle_keys = False
#self.personnage = Personnage(" ", ClassType.GUERRIER)
#self.ennemy = Personnage("Zombie", ClassType.ZOMBIE)
def draw(self):
2 years ago
super().draw()
x = 1
for button in self.buttons:
color = (Colors.WHITEBG, Colors.BLACK)
if self.buttons[self.current] == button:
color = (Colors.REDBG, Colors.BLACK)
self.put_string(button, x, self.y-10, color)
x += len(button)+1
stats = self.screen.game.personnage.affiche_caracteristiques()
for i in range(4):
self.put_string(stats[i], 0, self.y-8+i, [Colors.RED2])
for i in range(7):
self.put_string(stats[i+4], 40, self.y-8+i, [Colors.RED2])
ennemy_stats = self.screen.game.ennemy.reduced_stats()
for i in range(3):
self.put_string(ennemy_stats[i], 80, self.y-8+i, [Colors.BLUE2])
return self
def key_handler(self, key):
if key == keys.RIGHT and self.current < len(self.buttons)-1:
self.current += 1
elif key == keys.LEFT and self.current > 0:
self.current -= 1
elif key == keys.ENTER and self.current == 0:
attacker = self.screen.game.personnage
victim = self.screen.game.ennemy
self.screen.game.attack(attacker, victim)
2 years ago
class StartPopUp(Layer):
def __init__(self, screen, z_index):
2 years ago
super().__init__(screen, z_index, "popup")
self.__classes = ["GUERRIER", "MAGICIEN", "VOLEUR", "ELF"]
self.__choosen_class = 0
self.__username = ""
def draw(self):
2 years ago
super().draw()
#bg
self.rect(self.x//3, self.y//6, self.x//3 + self.x//4, self.y//4 + self.y//3, Colors.WHITEBG)
#name
self.put_string("Nom: [A-z]", self.x//3 + 1, self.y//6 + 1, [Colors.WHITEBG, Colors.BLACK])
self.rect(self.x//3 + 1, self.y//6 + 2, self.x//3 + self.x//4 - 1, self.y//6 + 2, Colors.BLACKBG)
2 years ago
self.put_string(self.__username, self.x//3 + 1, self.y//6 + 2, [Colors.WHITE, Colors.BLACKBG])
#Classes
self.put_string("Classe perso.: SHIFT+[1-4]", self.x//3 + 1, self.y//6 + 4, [Colors.WHITEBG, Colors.BLACK])
y = 0
2 years ago
for user_class in self.__classes:
colors = [Colors.GREYBG, Colors.WHITE]
2 years ago
if y == self.__choosen_class:
colors = [Colors.REDBG, Colors.BLACK]
self.put_string(user_class, self.x//3 + 2, self.y//6 + 5 + y, colors)
y += 1
self.put_string("TAB pour confirmer", self.x//3 + 1, self.y//4 + self.y//3 -1, [Colors.WHITEBG, Colors.BLACK])
return self
def key_handler(self, key):
if match("[a-zA-Z]", key):
2 years ago
self.__username += key
elif key == keys.BACKSPACE:
2 years ago
self.__username = self.__username[:-1]
elif match("[1-4]", key):
2 years ago
self.__choosen_class = int(key)-1
elif key == keys.TAB:
2 years ago
self.screen.get_layer("gui").handle_keys = True
self.screen.del_layer("popup")
self.screen.game.personnage = Personnage(self.__username, ClassType[self.__classes[self.__choosen_class]])
#self.screen.get_layer("gui").personnage = Personnage(self.__username, ClassType[self.__classes[self.__choosen_class]])