~danigm/pixwar/trunk

« back to all changes in this revision

Viewing changes to Player.py

  • Committer: danigm
  • Date: 2008-05-19 17:44:05 UTC
  • mfrom: (9.2.2 pixWar)
  • Revision ID: danigm@arch_box-20080519174405-gevqmm23iio6zwie
Explosion en los planetas cuando se conquistan
instalador que no va bien, con setuptools

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
class Player():
2
 
    """
3
 
    Clase que representa a cada jugador
4
 
    """
5
 
    def __init__(self, nombre, color):
6
 
        self.nombre = nombre
7
 
        self.color = color
8
 
        self.ataque = 30
9
 
        self.planetas = []
10
 
        self.seleccionado = [] #planeta seleccionado
11
 
        self.amigos = []
12
 
 
13
 
    def add_friend(self, player):
14
 
        self.amigos.append(player)
15
 
 
16
 
    def get_friends(self):
17
 
        return self.amigos
18
 
 
19
 
    def get_color(self):
20
 
        return self.color
21
 
 
22
 
    def set_planetas(self, lista):
23
 
        self.planetas = lista
24
 
 
25
 
    def buscar_planeta(self, (x,y)):
26
 
        for planeta in self.planetas:
27
 
            xp, yp = planeta.get_pos()
28
 
            if xp - planeta.get_radio() < x < xp + planeta.get_radio() and \
29
 
            yp - planeta.get_radio() < y < yp + planeta.get_radio():
30
 
                return planeta
31
 
        return None
32
 
 
33
 
    def seleccionar_planeta(self, pos):
34
 
        sel = [i for i in self.seleccionado]
35
 
        for i in sel:
36
 
            i.unselect()
37
 
 
38
 
        planeta = self.buscar_planeta(pos)
39
 
        if planeta is not None:
40
 
            if planeta.get_habitante() == self:
41
 
                encontrado = self.buscar_planeta(pos)
42
 
                if encontrado is not None:
43
 
                    self.seleccionado.append(encontrado)
44
 
                    encontrado.select()
45
 
 
46
 
    def seleccionar_planeta_mas(self, pos):
47
 
        planeta = self.buscar_planeta(pos)
48
 
        if planeta is not None and planeta not in self.seleccionado:
49
 
            if planeta.get_habitante() == self:
50
 
                encontrado = self.buscar_planeta(pos)
51
 
                if encontrado is not None:
52
 
                    self.seleccionado.append(encontrado)
53
 
                    encontrado.select()
54
 
        elif planeta in self.seleccionado:
55
 
            p = self.seleccionado[self.seleccionado.index(planeta)]
56
 
            p.unselect()
57
 
 
58
 
    def atacar_planeta(self, pos):
59
 
        if len(self.seleccionado) > 0:
60
 
            atacar = self.buscar_planeta(pos)
61
 
            if atacar is not None and atacar not in self.seleccionado:
62
 
                return atacar
63
 
        return None
64
 
 
65
 
    def get_selected(self):
66
 
        return self.seleccionado
67
 
 
68
 
    def unset_selected(self, s):
69
 
        if s is None:
70
 
            self.seleccionado = None
71
 
        else:
72
 
            try:
73
 
                self.seleccionado.remove(s)
74
 
            except:
75
 
                pass
76
 
 
77
 
    def get_units(self, p=None):
78
 
        n = 0
79
 
        if p is None:
80
 
            for i in self.seleccionado:
81
 
                n += int(i.get_size() * (self.ataque / 100.0))
82
 
        else:
83
 
            try:
84
 
                i = self.seleccionado.index(p)
85
 
                planeta = self.seleccionado[i]
86
 
                n = int(planeta.get_size() * (self.ataque / 100.0))
87
 
            except:
88
 
                pass
89
 
        return n
90
 
 
91
 
    def get_ataque(self):
92
 
        return self.ataque
93
 
 
94
 
    def inc_ataque(self):
95
 
        if self.ataque < 100:
96
 
            self.ataque += 1
97
 
 
98
 
    def dec_ataque(self):
99
 
        if self.ataque > 0:
100
 
            self.ataque -= 1
101
 
 
102
 
    def set_ataque(self, n):
103
 
        self.ataque = n % 101
104
 
 
105
 
    def get_name(self):
106
 
        return self.nombre