diff options
author | echinelli <emilianochinelli@gmail.com> | 2010-12-16 21:13:18 (GMT) |
---|---|---|
committer | echinelli <emilianochinelli@gmail.com> | 2010-12-16 21:13:18 (GMT) |
commit | 0b7574e9da0d801bc8b395158710e2b53ee63d0f (patch) | |
tree | 101279fa18abc6843e0d2ec96f5de21aceb7b00a | |
parent | a4387347cc20804e4dbf1c8c446d2785a2868ab1 (diff) |
weight bar implementation
-rwxr-xr-x | Saludame.activity/status_bars.py | 39 | ||||
-rwxr-xr-x | Saludame.activity/status_bars_creator.py | 5 |
2 files changed, 26 insertions, 18 deletions
diff --git a/Saludame.activity/status_bars.py b/Saludame.activity/status_bars.py index 47ac252..c12736d 100755 --- a/Saludame.activity/status_bars.py +++ b/Saludame.activity/status_bars.py @@ -266,7 +266,10 @@ class BarDisplay(Widget): self.label = status_bar.label self.color_partitions = color_partitions self.position = position - self.background = pygame.image.load("assets/layout/main_bar_back.png").convert_alpha() + if isinstance(self.status_bar, WeightBar): + self.background = pygame.image.load("assets/layout/weight_bar_back.png").convert_alpha() + else: + self.background = pygame.image.load("assets/layout/main_bar_back.png").convert_alpha() self.surface = self.background.copy() # The actual surface to be blitted # visuals @@ -441,6 +444,9 @@ class StatusBar: self.parent = parent_bar # Barra padre self.children_list = children_list # conjunto de barras hijas + def get_score(self): + return self.value + def increase(self, increase_rate): """ Incrementa el valor de la barra y repercute en los hijos y la barra padre @@ -465,27 +471,12 @@ class StatusBar: def recalculate(self): children = len(self.children_list) if children > 0: - values = sum([child.value for child in self.children_list]) + values = sum([child.get_score() for child in self.children_list]) value = float(values) / children if self.value <> value: self.value = value if self.parent: self.parent.recalculate() - - #def increase_from_child(self, increase_rate): - #""" - #Incrementa el valor de la barra. - #""" - #value = float(increase_rate) / len(self.children_list) #para que el incremento de esta barra mantenga relacion con la de sus hijos - #self.value += value - - #if self.parent != None: - #self.parent.increase_from_child(value) - - #if self.value > self.max: - #self.value = self.maxbars_controller - #elif self.value < 0: - #self.value = 0 def increase_from_parent(self, increase_rate): """ @@ -503,4 +494,18 @@ class StatusBar: elif self.value < 0: self.value = 0 +class WeightBar(StatusBar): + + def __init__(self, id, label, parent_bar, children_list, max_value, init_value): + StatusBar.__init__(self, id, label, parent_bar, children_list, max_value, init_value) + + def get_score(self): + if self.value < 50: + return self.value * 2.0 + else: + return 100.0 - 2.0 * self.value + + + + diff --git a/Saludame.activity/status_bars_creator.py b/Saludame.activity/status_bars_creator.py index c9157ca..58e3e79 100755 --- a/Saludame.activity/status_bars_creator.py +++ b/Saludame.activity/status_bars_creator.py @@ -18,9 +18,11 @@ class BarsLoader: #'hard_level' para plasmar que la idea es que los valores por defecto de las barras #se carguen segun un nivel de dificultad # physica - physica_children_id = [("energy", _(u"Energía")), ("defenses", _("Defenses")), ("weight", _("Peso"))] + physica_children_id = [("energy", _(u"Energía")), ("defenses", _("Defenses"))] physica = status_bars.StatusBar("physica", "Physica", self.overall_bar, [], hard_level[0], hard_level[1]) physica_children_bar = [status_bars.StatusBar(id[0], id[1], physica, [], hard_level[0], hard_level[1]) for id in physica_children_id] + weight_bar = status_bars.WeightBar("weight", _("Peso"), physica, [], hard_level[0], hard_level[1]) + physica_children_bar.append(weight_bar) physica.children_list = physica_children_bar ### hygiene @@ -65,3 +67,4 @@ class BarsLoader: def get_score_bar(self): return self.score_bar + |