Commit 43302b13 authored by Vincent BRULE's avatar Vincent BRULE
Browse files

grosse maj

parent a9e3d2f8
......@@ -21,12 +21,13 @@ class Unite:
self.chemin_image_route = ""
self.numero_image = 0
self.sante = 50 # Santé du soldat
self.sante_totale = 50
self.position = pos
self.vitesse = 1 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5 # Prix du soldat
self.temps = 0
self.temps = 0
self.liste_case = []
self.temps_passe = 0
......@@ -34,27 +35,28 @@ class Unite:
self.vitesse = vit
def chrono(self):
return self.temps_passe - self.temps
return self.temps_passe - self.temps
def afficher(self, ecran):
if self.affichage == 1:
if self.numero_image == 1:
image_soldat_initiale = image.load(self.chemin_image_soldat)
elif self.numero_image == 2:
image_soldat_initiale = image.load(self.chemin_image_soldat_2)
elif self.numero_image == 3:
image_soldat_initiale = image.load(self.chemin_image_soldat_3)
elif self.numero_image == 4:
image_soldat_initiale = image.load(self.chemin_image_soldat_4)
image_soldat_finale = transform.scale(image_soldat_initiale, (Constante.taille_rel, Constante.taille_rel))
ecran.blit(image_soldat_finale, self.position)
return
else :
return
if self.affichage == 1:
if self.numero_image == 1:
image_soldat_initiale = image.load(self.chemin_image_soldat)
elif self.numero_image == 2:
image_soldat_initiale = image.load(self.chemin_image_soldat_2)
elif self.numero_image == 3:
image_soldat_initiale = image.load(self.chemin_image_soldat_3)
elif self.numero_image == 4:
image_soldat_initiale = image.load(self.chemin_image_soldat_4)
image_soldat_finale = transform.scale(image_soldat_initiale, (Constante.taille_rel, Constante.taille_rel))
ecran.blit(image_soldat_finale, self.position)
draw.rect(ecran, (255,0,0), (self.position[0], self.position[1],(Constante.taille_rel*self.sante/self.sante_totale), Constante.taille_rel/10))
return
else :
return
### Retire de la sante à l'unité (si elle se fait attaquer par exemple)
......@@ -64,60 +66,62 @@ class Unite:
else:
self.sante = 0
def avancer(self, carte, base, ecran):
if self.chrono() > self.vitesse:
self.temps = time.time()
(u, v) = (self.position[0]/Constante.taille_rel, self.position[1]/Constante.taille_rel)
if (u, v) not in self.liste_case:
if (self.position[0] % Constante.taille_rel == 0 and self.position[1] % Constante.taille_rel == 0):
self.liste_case.append((u, v))
prochaineCase = self.chercherProchaineCase(carte)
if prochaineCase != "erreur":
a = (prochaineCase[0] * Constante.taille_rel - self.position[0])
b = (prochaineCase[1] * Constante.taille_rel - self.position[1])
if a != 0:
dx = (-5 if a < 0 else 5)
else:
dx = 0
if b != 0:
dy = (-5 if b < 0 else 5)
else:
dy = 0
if dx == -5 :
self.numero_image = 1
elif dx == 5 :
self.numero_image = 2
elif dy == -5:
self.numero_image = 3
elif dy == 5:
self.numero_image = 4
nPos = (self.position[0] + dx, self.position[1] + dy)
self.position = nPos
if self.proprietaire == 2:
if nPos[0] == 2*Constante.taille_rel and nPos[1]== 4*Constante.taille_rel:
base.perte_sante()
base.liste_unite.remove(self)
self.affichage = 0
if self.proprietaire == 1:
if nPos[0] == 27*Constante.taille_rel and nPos[1]== 4*Constante.taille_rel:
base.perte_sante()
base.liste_unite.remove(self)
self.affichage = 0
return
else :
self.temps_passe = time.time()
return
def avancer(self, carte, base, base_ennemie, ecran):
if self.chrono() > self.vitesse:
self.temps = time.time()
(u, v) = (self.position[0]/Constante.taille_rel, self.position[1]/Constante.taille_rel)
if (u, v) not in self.liste_case:
if (self.position[0] % Constante.taille_rel == 0 and self.position[1] % Constante.taille_rel == 0):
self.liste_case.append((u, v))
prochaineCase = self.chercherProchaineCase(carte)
if prochaineCase != "erreur":
a = (prochaineCase[0] * Constante.taille_rel - self.position[0])
b = (prochaineCase[1] * Constante.taille_rel - self.position[1])
if a != 0:
dx = (-(Constante.taille_rel/4) if a < 0 else Constante.taille_rel/4)
else:
dx = 0
if b != 0:
dy = (-(Constante.taille_rel/4) if b < 0 else Constante.taille_rel/4)
else:
dy = 0
if dx == -(Constante.taille_rel/4) :
self.numero_image = 1
elif dx == Constante.taille_rel/4 :
self.numero_image = 2
elif dy == -(Constante.taille_rel/4):
self.numero_image = 3
elif dy == Constante.taille_rel/4:
self.numero_image = 4
nPos = (self.position[0] + dx, self.position[1] + dy)
self.position = nPos
if self.proprietaire == 2:
if nPos[0] == 2*Constante.taille_rel and nPos[1]== 4*Constante.taille_rel:
base_ennemie.perte_sante()
base.liste_unite.remove(self)
self.affichage = 0
if self.proprietaire == 1:
if nPos[0] == 27*Constante.taille_rel and nPos[1]== 4*Constante.taille_rel:
base_ennemie.perte_sante()
base.liste_unite.remove(self)
self.affichage = 0
return
else :
self.temps_passe = time.time()
return
def chercherProchaineCase(self, carte):
(u, v) = (self.position[0]/Constante.taille_rel, self.position[1]/Constante.taille_rel)
......@@ -140,43 +144,86 @@ class Unite:
else:
return "erreur"
class Unite_feu(Unite):
class Elfe(Unite):
def __init__(self, pos, pro):
self.type = 1
self.chemin_image_soldat = "soldat_feu.png" # Image du soldat
self.chemin_image_soldat_2 = "soldat_feu_2.png"
self.chemin_image_soldat_3 = "soldat_feu_3.png"
self.chemin_image_soldat_4 = "soldat_feu_4.1.png"
self.chemin_image_soldat = "elfe.png" # Image du soldat
self.chemin_image_soldat_2 = "elfe_2.png"
self.chemin_image_soldat_3 = "elfe_3.png"
self.chemin_image_soldat_4 = "elfe_4.png"
self.numero_image = 1
self.chemin_image_route = "route.png"
self.sante = 50 # Santé du soldat
self.sante = 100 # Santé du soldat
self.sante_totale = 100
self.position = pos # Position du soldat
self.vitesse = 0.01 # Vitesse du soldat
self.vitesse = 0.1 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.type = 1 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
self.temps = time.time()
self.temps_passe = time.time()
self.affichage = 1
class Unite_glace(Unite):
class Loup(Unite):
def __init__(self, pos, pro):
self.type = 2
self.chemin_image_soldat = "soldat_glace.png" # Image du soldat
self.chemin_image_soldat_2 = "soldat_glace_2.png"
self.chemin_image_soldat_3 = "soldat_glace_3.png"
self.chemin_image_soldat_4 = "soldat_glace_4.png"
self.chemin_image_soldat = "loup.png" # Image du soldat
self.chemin_image_soldat_2 = "loup_2.png"
self.chemin_image_soldat_3 = "loup_3.png"
self.chemin_image_soldat_4 = "loup_4.png"
self.numero_image = 1
self.chemin_image_route = "route.png"
self.sante = 50 # Santé du soldat
self.sante_totale = 50
self.position = pos # Position du soldat
self.vitesse = 0.0001 # Vitesse du soldat
self.vitesse = 0.01 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.type = 2 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
self.temps = time.time()
self.temps_passe = time.time()
self.affichage = 1
\ No newline at end of file
self.temps_passe = time.time()
self.affichage = 1
class Paladin(Unite):
def __init__(self, pos, pro):
self.chemin_image_soldat = "paladin.png" # Image du soldat
self.chemin_image_soldat_2 = "paladin_2.png"
self.chemin_image_soldat_3 = "paladin_3.png"
self.chemin_image_soldat_4 = "paladin_4.png"
self.numero_image = 1
self.chemin_image_route = "route.png"
self.sante = 10 # Santé du soldat
self.sante_totale = 10
self.position = pos # Position du soldat
self.vitesse = 0.3 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.type = 3 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
self.temps = time.time()
self.temps_passe = time.time()
self.affichage = 1
class Soldat(Unite):
def __init__(self, pos, pro):
self.chemin_image_soldat = "soldat.png" # Image du soldat
self.chemin_image_soldat_2 = "soldat_2.png"
self.chemin_image_soldat_3 = "soldat_3.png"
self.chemin_image_soldat_4 = "soldat_4.png"
self.numero_image = 1
self.chemin_image_route = "route.png"
self.sante = 20 # Santé du soldat
self.sante_totale = 20
self.position = pos # Position du soldat
self.vitesse = 0.04 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.type = 4 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
self.temps = time.time()
self.temps_passe = time.time()
self.affichage = 1
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment