Commit 0d298e35 authored by Mimeau Corentin's avatar Mimeau Corentin
Browse files

Merge branch 'master' of https://gitlab.univ-nantes.fr/E145267Z/PolyDefense

Conflicts:
	carte.py

ok
parents 1863033f 43a6ccbc
...@@ -6,9 +6,11 @@ class Base: ...@@ -6,9 +6,11 @@ class Base:
self.niveau = 1 #Niveau de la base self.niveau = 1 #Niveau de la base
self.unitesDispo = None #Unités que peut envoyer la base self.unitesDispo = None #Unités que peut envoyer la base
self.aggressivite = 0 #Calculé en fonction du nombre de soldats envoyés self.aggressivite = 0 #Calculé en fonction du nombre de soldats envoyés
self.argent = 20 #Argent disponible self.argent = 200 #Argent disponible
self.revenu = 20 #Revenu au début de chaque tour self.revenu = 20 #Revenu au début de chaque tour
self.unitesPoss = None #Unités achetés pour la prochaine vague self.unitesPoss = None #Unités achetés pour la prochaine vague
self.liste_tour = []
self.liste_unite = []
#def sante(self, ): #def sante(self, ):
......
...@@ -428,6 +428,8 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2): ...@@ -428,6 +428,8 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
carte.liste_tour_1.append(Constante.position) carte.liste_tour_1.append(Constante.position)
tour = Tour_feu(Constante.position, verif_tour) tour = Tour_feu(Constante.position, verif_tour)
base_1.liste_tour.append(tour) base_1.liste_tour.append(tour)
<<<<<<< HEAD
=======
carte.liste_herbe_obstacle.append(Constante.position) carte.liste_herbe_obstacle.append(Constante.position)
maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour) maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
maj_affichage_argent(ecran, base_1, j1) maj_affichage_argent(ecran, base_1, j1)
...@@ -439,10 +441,25 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2): ...@@ -439,10 +441,25 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
carte.liste_tour_1.append(Constante.position) carte.liste_tour_1.append(Constante.position)
tour = Tour_glace(Constante.position, verif_tour) tour = Tour_glace(Constante.position, verif_tour)
base_1.liste_tour.append(tour) base_1.liste_tour.append(tour)
>>>>>>> 43a6ccbcc5f92e1f86ed5191e4a955d9746f0a04
carte.liste_herbe_obstacle.append(Constante.position) carte.liste_herbe_obstacle.append(Constante.position)
maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour) maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
maj_affichage_argent(ecran, base_1, j1) maj_affichage_argent(ecran, base_1, j1)
<<<<<<< HEAD
elif (u, v) == (22, 3):
if verif_pose_tour(ecran, carte, Constante.position) == True:
couvrir_ecran_ennemie (ecran, verif_tour)
if base_1.depenser_argent(20) != "NON":
carte.liste_tour_1.append(Constante.position)
tour = Tour_glace(Constante.position, verif_tour)
base_1.liste_tour.append(tour)
carte.liste_herbe_obstacle.append(Constante.position)
maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
maj_affichage_argent(ecran, base_1, j1)
=======
>>>>>>> 43a6ccbcc5f92e1f86ed5191e4a955d9746f0a04
elif verif_tour == 2: elif verif_tour == 2:
if (u, v) == (8, 3): if (u, v) == (8, 3):
if verif_pose_tour(ecran, carte, Constante.position) == True: if verif_pose_tour(ecran, carte, Constante.position) == True:
......
...@@ -46,4 +46,3 @@ ecran_principal(ecran, j_1, j_2, 1, base_joueur_1, base_joueur_2) ...@@ -46,4 +46,3 @@ ecran_principal(ecran, j_1, j_2, 1, base_joueur_1, base_joueur_2)
ecran_principal(ecran, j_1, j_2, 2, base_joueur_1, base_joueur_2) ecran_principal(ecran, j_1, j_2, 2, base_joueur_1, base_joueur_2)
ecran_principal(ecran, j_1, j_2, 3, base_joueur_1, base_joueur_2) ecran_principal(ecran, j_1, j_2, 3, base_joueur_1, base_joueur_2)
...@@ -3,19 +3,27 @@ ...@@ -3,19 +3,27 @@
# http://pad.univ-nantes.fr/editor/p/g.KMzBqiBBATY1dYss$Ageofdefense # http://pad.univ-nantes.fr/editor/p/g.KMzBqiBBATY1dYss$Ageofdefense
import math import math
from pygame import *
import time
import os
from carteStruct import *
from constante import Constante
from base import *
from joueur import *
from tour import *
class Tour: class Tour:
def __init__(self): def __init__(self, pos, prop):
self.image = "img/tour.png" # Image de la tour self.degatType = "" # Type de dégat de la tour
self.degatType = "fire" # Type de dégat de la tour self.position = pos # Coordonées de la tour
self.position = (0, 0) # Coordonées de la tour self.portee = 0 # Portee de la tour
self.portee = 5 # Portee de la tour self.degat = 0 # Dégat de chaque projectile jeté de la tour
self.degat = 10 # Dégat de chaque projectile jeté de la tour self.vitesse = 0 # Nombre de projectile lancé par seconde
self.vitesse = 1 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour self.niveau = 0 # Niveau de la tour
self.proprietaire = 0 # Propriétaire de la tour self.proprietaire = prop # Propriétaire de la tour
### Attaque ### Attaque
...@@ -42,3 +50,42 @@ class Tour: ...@@ -42,3 +50,42 @@ class Tour:
return False return False
class Tour_feu(Tour):
def __init__(self, pos, prop):
self.image = image.load("tour_1_avec_fond.png")
self.degatType = "fire" # Type de dégat de la tour
self.position = pos # Coordonées de la tour
self.portee = 5 # Portee de la tour
self.degat = 10 # Dégat de chaque projectile jeté de la tour
self.vitesse = 1 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour
self.proprietaire = prop # Propriétaire de la tour
def afficher(self, ecran):
tour_1_finale = transform.scale(self.image,(Constante.taille_rel, Constante.taille_rel))
ecran.blit(tour_1_finale, (self.position[0]*Constante.taille_rel, self.position[1]*Constante.taille_rel))
class Tour_glace(Tour):
def __init__(self, pos, prop):
self.image = image.load("tour_2_avec_fond.png")
self.degatType = "ice" # Type de dégat de la tour
self.position = pos # Coordonées de la tour
self.portee = 5 # Portee de la tour
self.degat = 100 # Dégat de chaque projectile jeté de la tour
self.vitesse = 2 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour
self.proprietaire = prop # Propriétaire de la tour
def afficher(self, ecran):
tour_2_finale = transform.scale(self.image,(Constante.taille_rel, Constante.taille_rel))
ecran.blit(tour_2_finale, (self.position[0]*Constante.taille_rel, self.position[1]*Constante.taille_rel))
...@@ -13,26 +13,43 @@ from unite import * ...@@ -13,26 +13,43 @@ from unite import *
class Unite: class Unite:
def __init__(self, pos): def __init__(self, pos, pro):
self.chemin_image = "milieu_soldat.png" # Image du soldat self.chemin_image_soldat_1 = "" # Image du soldat
self.sante = 50 # Santé du soldat self.chemin_image_soldat_3 = ""
self.position = pos # Position du soldat self.chemin_image_soldat_2 = ""
self.chemin_image_soldat_4 = ""
self.chemin_image_route = ""
self.numero_image = 0
self.sante = 50 # Santé du soldat
self.position = pos
self.vitesse = 1 # Vitesse du soldat self.vitesse = 1 # Vitesse du soldat
self.proprietaire = 0 # Propriétaire du soldat self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5 # Prix du soldat self.prix = 5 # Prix du soldat
self.liste_case = [] self.liste_case = []
def modifier_vitesse(self, vit):
self.vitesse = vit
def afficher(self, ecran): def afficher(self, ecran):
res = image.load(self.chemin_image)
im = transform.scale(res, (Constante.taille_rel, Constante.taille_rel)) if self.numero_image == 1:
ecran.blit(im, self.position) 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 return
### Retire de la sante à l'unité (si elle se fait attaquer par exemple) ### Retire de la sante à l'unité (si elle se fait attaquer par exemple)
def retirerSante(self, quantite): def retirerSante(self, quantite):
if quantite < self.sante: if quantite < self.sante:
self.sante = self.sante - quantite self.sante = self.sante - quantite
...@@ -49,24 +66,28 @@ class Unite: ...@@ -49,24 +66,28 @@ class Unite:
prochaineCase = self.chercherProchaineCase(carte) prochaineCase = self.chercherProchaineCase(carte)
print prochaineCase
if prochaineCase != "erreur": if prochaineCase != "erreur":
a = (prochaineCase[0] * Constante.taille_rel - self.position[0]) a = (prochaineCase[0] * Constante.taille_rel - self.position[0])
b = (prochaineCase[1] * Constante.taille_rel - self.position[1]) b = (prochaineCase[1] * Constante.taille_rel - self.position[1])
print a, b
if a != 0: if a != 0:
dx = (-1 if a < 0 else 1) dx = (-self.vitesse if a < 0 else self.vitesse)
else: else:
dx = 0 dx = 0
if b != 0: if b != 0:
dy = (-1 if b < 0 else 1) dy = (-self.vitesse if b < 0 else self.vitesse)
else: else:
dy = 0 dy = 0
print dx, dy if dx == -self.vitesse:
self.numero_image = 1
elif dx == self.vitesse :
self.numero_image = 2
elif dy == -self.vitesse:
self.numero_image = 3
elif dy == self.vitesse:
self.numero_image = 4
nPos = (self.position[0] + dx, self.position[1] + dy) nPos = (self.position[0] + dx, self.position[1] + dy)
self.position = nPos self.position = nPos
...@@ -81,6 +102,8 @@ class Unite: ...@@ -81,6 +102,8 @@ class Unite:
(e, f) = (self.position[0]/Constante.taille_rel, (self.position[1]-1)/Constante.taille_rel) (e, f) = (self.position[0]/Constante.taille_rel, (self.position[1]-1)/Constante.taille_rel)
(g, h) = (self.position[0]/Constante.taille_rel, (self.position[1]+Constante.taille_rel)/Constante.taille_rel) (g, h) = (self.position[0]/Constante.taille_rel, (self.position[1]+Constante.taille_rel)/Constante.taille_rel)
if (u, v) in carte.liste_route and (u, v) not in self.liste_case:
return (u, v)
if (a, b) in carte.liste_route and (a, b) not in self.liste_case: if (a, b) in carte.liste_route and (a, b) not in self.liste_case:
return (a, b) return (a, b)
if (c, d) in carte.liste_route and (c, d) not in self.liste_case: if (c, d) in carte.liste_route and (c, d) not in self.liste_case:
...@@ -93,10 +116,41 @@ class Unite: ...@@ -93,10 +116,41 @@ class Unite:
else: else:
return "erreur" return "erreur"
class Unite_feu(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.numero_image = 0
self.chemin_image_route = "route.png"
self.sante = 50 # Santé du soldat
self.position = pos # Position du soldat
self.vitesse = 5 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
class Unite_glace(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.numero_image = 0
self.chemin_image_route = "route.png"
self.sante = 50 # Santé du soldat
self.position = pos # Position du soldat
self.vitesse = 6 # Vitesse du soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5
self.liste_case = []
\ 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