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:
self.niveau = 1 #Niveau de 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.argent = 20 #Argent disponible
self.argent = 200 #Argent disponible
self.revenu = 20 #Revenu au début de chaque tour
self.unitesPoss = None #Unités achetés pour la prochaine vague
self.liste_tour = []
self.liste_unite = []
#def sante(self, ):
......@@ -27,4 +29,4 @@ class Base:
if self.argent - cout >=0:
self.argent = self.argent - cout
else :
return "NON"
\ No newline at end of file
return "NON"
......@@ -428,6 +428,8 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
carte.liste_tour_1.append(Constante.position)
tour = Tour_feu(Constante.position, verif_tour)
base_1.liste_tour.append(tour)
<<<<<<< HEAD
=======
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)
......@@ -439,10 +441,25 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
carte.liste_tour_1.append(Constante.position)
tour = Tour_glace(Constante.position, verif_tour)
base_1.liste_tour.append(tour)
>>>>>>> 43a6ccbcc5f92e1f86ed5191e4a955d9746f0a04
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)
<<<<<<< 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:
if (u, v) == (8, 3):
if verif_pose_tour(ecran, carte, Constante.position) == True:
......
......@@ -45,5 +45,4 @@ 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, 3, base_joueur_1, base_joueur_2)
ecran_principal(ecran, j_1, j_2, 3, base_joueur_1, base_joueur_2)
\ No newline at end of file
......@@ -3,21 +3,29 @@
# http://pad.univ-nantes.fr/editor/p/g.KMzBqiBBATY1dYss$Ageofdefense
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:
def __init__(self):
self.image = "img/tour.png" # Image de la tour
self.degatType = "fire" # Type de dégat de la tour
self.position = (0, 0) # 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
def __init__(self, pos, prop):
self.degatType = "" # Type de dégat de la tour
self.position = pos # Coordonées de la tour
self.portee = 0 # Portee de la tour
self.degat = 0 # Dégat de chaque projectile jeté de la tour
self.vitesse = 0 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour
self.proprietaire = 0 # Propriétaire de la tour
self.proprietaire = prop # Propriétaire de la tour
### Attaque
def attaquerUnite(self, unite):
print "Attaque."
......@@ -42,3 +50,42 @@ class Tour:
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 *
class Unite:
def __init__(self, pos):
self.chemin_image = "milieu_soldat.png" # Image du soldat
self.sante = 50 # Santé du soldat
self.position = pos # Position du soldat
def __init__(self, pos, pro):
self.chemin_image_soldat_1 = "" # Image du soldat
self.chemin_image_soldat_3 = ""
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.proprietaire = 0 # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.proprietaire = pro # Propriétaire du soldat
self.violence = 1 # Agressivité qu'apporte le soldat
self.prix = 5 # Prix du soldat
self.liste_case = []
def modifier_vitesse(self, vit):
self.vitesse = vit
def afficher(self, ecran):
res = image.load(self.chemin_image)
im = transform.scale(res, (Constante.taille_rel, Constante.taille_rel))
ecran.blit(im, self.position)
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
### 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):
if quantite < self.sante:
self.sante = self.sante - quantite
......@@ -47,28 +64,32 @@ class Unite:
self.liste_case.append((u, v))
prochaineCase = self.chercherProchaineCase(carte)
print prochaineCase
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])
print a, b
if a != 0:
dx = (-1 if a < 0 else 1)
dx = (-self.vitesse if a < 0 else self.vitesse)
else:
dx = 0
if b != 0:
dy = (-1 if b < 0 else 1)
dy = (-self.vitesse if b < 0 else self.vitesse)
else:
dy = 0
print dx, dy
nPos = (self.position[0] + dx, self.position[1] + 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)
self.position = nPos
return
......@@ -80,7 +101,9 @@ class Unite:
(c, d) = ((self.position[0]+Constante.taille_rel)/Constante.taille_rel, self.position[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)
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:
return (a, b)
if (c, d) in carte.liste_route and (c, d) not in self.liste_case:
......@@ -92,11 +115,42 @@ class Unite:
else:
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