Ce code définit une classe Upgrade et une classe Item utilisées pour afficher et gérer le système d'amélioration dans un jeu. Voici une explication des principales parties du code :
Classe Upgrade :
__init__(self, player) : Initialise les attributs de la classe Upgrade.
display_surface : Surface d'affichage.
player : Instance du joueur.
attribute_nr : Nombre d'attributs à améliorer (santé, énergie, attaque, magie, vitesse).
attribute_names : Noms des attributs.
max_values : Valeurs maximales des attributs.
font : Police d'écriture pour l'affichage.
height, width : Hauteur et largeur des éléments d'amélioration.
item_list : Liste des éléments à améliorer.
selection_index : Index de l'élément sélectionné.
selection_time : Temps de la dernière sélection.
can_move : Indique si le joueur peut bouger la sélection.
Méthodes de la classe Upgrade :
input(self) : Gère les entrées du joueur pour la sélection des améliorations.
selection_cooldown(self) : Gère le délai de sélection entre deux mouvements.
create_items(self) : Crée les éléments à améliorer.
display(self) : Affiche les éléments d'amélioration à l'écran.
Classe Item :
__init__(self, l, t, w, h, index, font) : Initialise les attributs de la classe Item.
rect : Rectangle représentant la position et les dimensions de l'élément.
index : Index de l'élément.
font : Police d'écriture pour l'affichage.
Méthodes de la classe Item :
display_names(self, surface, name, cost, selected) : Affiche le nom et le coût de l'élément.
display_bar(self, surface, value, max_value, selected) : Affiche la barre de progression de l'élément.
trigger(self, player) : Gère l'amélioration de l'attribut sélectionné.
display(self, surface, selection_num, name, value, max_value, cost) : Affiche l'élément à l'écran en fonction de sa sélection.