Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorechinelli <emilianochinelli@gmail.com>2010-12-16 21:13:18 (GMT)
committer echinelli <emilianochinelli@gmail.com>2010-12-16 21:13:18 (GMT)
commit0b7574e9da0d801bc8b395158710e2b53ee63d0f (patch)
tree101279fa18abc6843e0d2ec96f5de21aceb7b00a
parenta4387347cc20804e4dbf1c8c446d2785a2868ab1 (diff)
weight bar implementation
-rwxr-xr-xSaludame.activity/status_bars.py39
-rwxr-xr-xSaludame.activity/status_bars_creator.py5
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
+