# -*- coding: utf-8 -*-

"""
Created on Mon Sep 16 08:31:19 2024

@author: fort
"""

from random import randint

class Pokemon:
    def __init__(self,nom,niveau,points_vie,attaque,défense):
        """constructeur"""
        self.nom=nom
        self.__niveau=niveau
        self.__points_vie=points_vie
        self.attaque=attaque
        self.défense=défense
    
    def __str__(self):
        """Représentation de l'objet sous forme de chaine de caractère"""
        return self.nom + ", " + str(self.__niveau) + ", " + str(self.__points_vie)
    
    def get_niveau(self):
        """Méthode accesseur du niveau"""
        return self.__niveau
    
    def set_niveau(self, valeur):
        """Mutateur du niveau"""
        self.__niveau=valeur
        
    def get_points_vie(self):
        """Méthode accesseur des points_vie"""
        return self.__points_vie
    
    def set_points_vie(self,valeur):
        """Mutateur de points de vies"""
        self.__points_vie=valeur
        
    def puissance_attaque(self):
        """ Renvoie une valeur qui représente la puissance de l'attaque"""

        return  int((randint(0, 100)* self.attaque)/100)
    
    def résistance_dégats(self):
        """Renvoie une valeur qui représente la défense (résistance) à l'attaque """
        
        return int((randint(0, 100)* self.défense)/100)
    
    def est_en_vie(self):
        """ Renvoie True si les points de vie du pokemon sont supérieurs à zéro
        False sinon"""
        return self.get_points_vie() > 0

class Arene:
    
    def __init__(self,nom, pokemon1,pokemon2,type_arene):
        """ Constructeur de la classe arène qui prends deux objets pokemon"""
        self.nom=nom
        self.pokemon1=pokemon1
        self.pokemon2=pokemon2
        self.type=type_arene
    
    def __str__(self):
        return "Aren : "+ self.nom +" Pokemon 1 : " + str(self.pokemon1) + " Pokemon2 :  " + str(self.pokemon2)
    
    def fin(self):
        """Renvoie True si l'un des deux pokemon n'est plus en vie"""
        return not (self.pokemon1.est_en_vie()) or not(self.pokemon2.est_en_vie())
    
    
    def jouer_tour(self,attaquant,défenseur):
        """Modifie les points de vie du défenseur en fonction de la puissance de l'attaque de l'attaquant"""
        valeur = attaquant.puissance_attaque()-défenseur.résistance_dégats()
        if valeur > 0 :
            défenseur.set_points_vie(défenseur.get_points_vie()-valeur)
    
    def combattre(self):
        
        


        
        
 
      

poke1=Pokemon("dracaufeu",100,232,74,20)
poke2=Pokemon("tortank",100,132,90,30)

ABriand=Arene("Lycee",poke1,poke2,"Roche") 


print(ABriand)

ABriand.jouer_tour(ABriand.pokemon1, ABriand.pokemon2)

print(ABriand)
