Commit a9e3d2f8 authored by Vincent BRULE's avatar Vincent BRULE
Browse files

grosse maj

parent 8c486e0c
......@@ -12,7 +12,7 @@ from constante import Constante
from base import *
from joueur import *
from tour import *
from projectile import *
class Tour:
......@@ -26,25 +26,46 @@ class Tour:
self.niveau = 0 # Niveau de la tour
self.proprietaire = prop # Propriétaire de la tour
self.liste_proj = []
self.unite_vise = []
self.temps_passe = 0
self.temps = 0
self.image_route = image.load("route.png")
self.image_route_finale = transform.scale(self.image_route, (Constante.taille_rel, Constante.taille_rel))
def chrono(self):
return self.temps_passe - self.temps
### Attaque
def attaquer(self, liste_unite):
#print "Attaque."
u = self.chercherUnite(liste_unite)
def attaquer(self, base, base_e, ecran):
if self.en_cours_de_tir == 1:
self.afficher(ecran)
self.en_cours_de_tir = 0
u = self.chercherUnite(base.liste_unite)
if u != 0:
p = Projectile((self.position[0] * Constante.taille_rel, self.position[1] * Constante.taille_rel), (50, 50), self.vitesse, u)
self.liste_proj.append(p)
#u.retirerSante(self.degat)
if self.chrono() > self.vitesse:
self.temps = time.time()
u.retirerSante(self.degat)
if self.en_cours_de_tir == 0:
ecran.blit(self.tir_finale, (self.position[0]*Constante.taille_rel, self.position[1]*Constante.taille_rel))
self.en_cours_de_tir = 2
if u.sante == 0:
base.liste_unite.remove(u)
if u.type == 1:
base_e.argent = base_e.argent + 50
elif u.type == 2:
base_e.argent = base_e.argent + 20
elif u.type == 3:
base_e.argent = base_e.argent + 100
elif u.type == 4:
base_e.argent = base_e.argent + 10
ecran.blit(self.image_route_finale, u.position)
else :
self.temps_passe = time.time()
else:
print "Pas d'unité à attaquer"
self.en_cours_de_tir = 1
def actualiserProj(self, ecran):
for i in self.liste_proj:
i.avancer(ecran)
#def calculerPositionProj(self, unite):
......@@ -52,7 +73,6 @@ class Tour:
### Vérifie si une unité est a portée
def verifierUnite(self, unite):
distance = math.fabs(self.position[0] - unite.position[0]/Constante.taille_rel) + math.fabs(self.position[1] - unite.position[1]/Constante.taille_rel)
print "Distance a la tour : " + str(distance)
if (distance <= self.portee):
#assert(unite.proprietaire == self.proprietaire)
......@@ -70,145 +90,71 @@ class Tour:
class Tour_feu(Tour):
class Tour_dragon(Tour):
def __init__(self, pos, prop):
self.image = image.load("tour_1_avec_fond.png")
self.image = image.load("tour_dragon_1.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.portee = 1 # Portee de la tour
self.degat = 5 # Dégat de chaque projectile jeté de la tour
self.vitesse = 0.1 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour
self.proprietaire = prop # Propriétaire de la tour
self.liste_proj = []
self.temps_passe = 0
self.temps = 0
self.en_cours_de_tir = 1
self.image_route = image.load("route.png")
self.image_route_finale = transform.scale(self.image_route, (Constante.taille_rel, Constante.taille_rel))
self.tir = image.load("tour_dragon_tir_1.png")
self.tir_finale = transform.scale(self.tir, (Constante.taille_rel, Constante.taille_rel))
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):
class Tour_simple(Tour):
def __init__(self, pos, prop):
self.image = image.load("tour_2_avec_fond.png")
self.image = image.load("tour_1.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.portee = 3 # Portee de la tour
self.degat = 1 # Dégat de chaque projectile jeté de la tour
self.vitesse = 0.1 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour
self.proprietaire = prop # Propriétaire de la tour
self.liste_proj = []
self.temps_passe = 0
self.temps = 0
self.image_route = image.load("route.png")
self.en_cours_de_tir = 1
self.image_route_finale = transform.scale(self.image_route, (Constante.taille_rel, Constante.taille_rel))
self.tir = image.load("tour_1_tir.png")
self.tir_finale = transform.scale(self.tir, (Constante.taille_rel, Constante.taille_rel))
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))
# -*- coding: utf-8 -*-
# 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 *
from projectile import *
class Tour:
class Tour_mortier(Tour):
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 = prop # Propriétaire de la tour
self.liste_proj = []
### Attaque
def attaquer(self, liste_unite):
#print "Attaque."
u = self.chercherUnite(liste_unite)
if u != 0:
p = Projectile((self.position[0] * Constante.taille_rel, self.position[1] * Constante.taille_rel), (50, 50), self.vitesse, u)
self.liste_proj.append(p)
#u.retirerSante(self.degat)
else:
print "Pas d'unité à attaquer"
def actualiserProj(self, ecran):
for i in self.liste_proj:
i.avancer(ecran)
#def calculerPositionProj(self, unite):
### Vérifie si une unité est a portée
def verifierUnite(self, unite):
distance = math.fabs(self.position[0] - unite.position[0]/Constante.taille_rel) + math.fabs(self.position[1] - unite.position[1]/Constante.taille_rel)
print "Distance a la tour : " + str(distance)
if (distance <= self.portee):
#assert(unite.proprietaire == self.proprietaire)
if (unite.proprietaire != self.proprietaire):
return True
return False
def chercherUnite(self, liste_unite):
for i in liste_unite:
if self.verifierUnite(i):
return i
return 0
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
self.liste_proj = []
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.image = image.load("mortier_1.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.portee = 10 # Portee de la tour
self.degat = 1 # Dégat de chaque projectile jeté de la tour
self.vitesse = 0.1 # Nombre de projectile lancé par seconde
self.niveau = 0 # Niveau de la tour
self.proprietaire = prop # Propriétaire de la tour
self.liste_proj = []
self.temps_passe = 0
self.temps = 0
self.en_cours_de_tir = 1
self.image_route = image.load("route.png")
self.image_route_finale = transform.scale(self.image_route, (Constante.taille_rel, Constante.taille_rel))
self.tir = image.load("mortier_tir_1.png")
self.tir_finale = transform.scale(self.tir, (Constante.taille_rel, Constante.taille_rel))
def afficher(self, ecran):
tour_2_finale = transform.scale(self.image,(Constante.taille_rel, Constante.taille_rel))
......
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