Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Moleri <pmoleri@gmail.com>2011-05-08 20:07:45 (GMT)
committer Pablo Moleri <pmoleri@gmail.com>2011-05-08 20:07:45 (GMT)
commit00ae8a9d573d5aebc114164e55b5f9fd4b83455c (patch)
tree814d21ede8eb52441f316f24adcd0229625de0b1
parentac269c42e20c14fcba32d4410b1991a8baba30c2 (diff)
Return home action now triggers when the environment changes.
Plan Ceibal logo white background corrected Challenges text colors updated
-rw-r--r--Saludame.activity/app_init.py2
-rw-r--r--Saludame.activity/assets/layout/customization.pngbin5032 -> 5009 bytes
-rw-r--r--Saludame.activity/assets/slides/screen_loading.jpgbin58429 -> 57843 bytes
-rw-r--r--Saludame.activity/challenges.py19
-rw-r--r--Saludame.activity/challenges_creator.py8
-rw-r--r--Saludame.activity/credits/Logotipo PLAN CEIBAL.pngbin25161 -> 25096 bytes
-rw-r--r--Saludame.activity/customization.py3
-rwxr-xr-xSaludame.activity/customization/boy_small.pngbin1871 -> 0 bytes
-rwxr-xr-xSaludame.activity/customization/girl_small.pngbin1893 -> 0 bytes
-rwxr-xr-xSaludame.activity/customization/www.clker.com0
-rw-r--r--Saludame.activity/events.py18
-rw-r--r--Saludame.activity/game_manager.py31
-rwxr-xr-xSaludame.activity/gui/utilities.py6
-rw-r--r--Saludame.activity/panel_window.py7
14 files changed, 66 insertions, 28 deletions
diff --git a/Saludame.activity/app_init.py b/Saludame.activity/app_init.py
index ad80691..77aaa99 100644
--- a/Saludame.activity/app_init.py
+++ b/Saludame.activity/app_init.py
@@ -391,7 +391,7 @@ class AppLoader:
probability = ("all", [("overall_bar", "range", (0, 100), (300, 300))])
effect = effects.Effect([("responsability", -15)])
- event = events.SocialEvent(father_neg, father, "volver_a_casa", u"Volver a casa", "neg", "random", m(2), probability, effect, u"Es tarde,\ndebes volver a casa", None, 1, normal)
+ event = events.SocialEvent(father_neg, father, "volver_a_casa", u"Volver a casa", "neg", "environment", m(2), probability, effect, u"Es tarde,\ndebes volver a casa", None, 1, normal)
event.add_restriction("place", ["schoolyard", "classroom", "square"])
event.add_restriction("time", ["night"])
_events.append(event)
diff --git a/Saludame.activity/assets/layout/customization.png b/Saludame.activity/assets/layout/customization.png
index c403085..ae28452 100644
--- a/Saludame.activity/assets/layout/customization.png
+++ b/Saludame.activity/assets/layout/customization.png
Binary files differ
diff --git a/Saludame.activity/assets/slides/screen_loading.jpg b/Saludame.activity/assets/slides/screen_loading.jpg
index 258a3d6..98e70b3 100644
--- a/Saludame.activity/assets/slides/screen_loading.jpg
+++ b/Saludame.activity/assets/slides/screen_loading.jpg
Binary files differ
diff --git a/Saludame.activity/challenges.py b/Saludame.activity/challenges.py
index 25a6ad7..68dd6df 100644
--- a/Saludame.activity/challenges.py
+++ b/Saludame.activity/challenges.py
@@ -20,12 +20,15 @@ N_TF = 5
FIN_MC = False # Toma el valor True cuando finaliza el juego de multiple choice
-TITLE_FONT_SIZE = 24
+QUESTION_FONT_SIZE = 24
TEXT_FONT_SIZE = 20
TEXT_TRUE_OR_FALSE_SIZE = 24
-ANSWER_COLOR = pygame.Color("blue")
-MOUSE_OVER_COLOR = pygame.Color("green")
+TITLE_COLOR = pygame.Color("#0f5e65")
+TEXT_COLOR = pygame.Color("#0f5e65")
+QUESTION_COLOR = pygame.Color("#0f5e65")
+ANSWER_COLOR = pygame.Color("#1c9db4")
+MOUSE_OVER_COLOR = pygame.Color("#0f5e65")
class MultipleChoice(gui.Window):
@@ -58,7 +61,7 @@ class MultipleChoice(gui.Window):
# Close Button
self.btn_close = gui.TextButton(self.rect, pygame.Rect((910, 0), (30, 30)), 1, "X", 32, (0, 0, 0), self._cb_button_click_close)
- self.add_button(self.btn_close)
+ #self.add_button(self.btn_close)
self.wait = 0
@@ -71,7 +74,7 @@ class MultipleChoice(gui.Window):
self.erase()
question = self.prepare(question, 70)
- self.question = gui.TextBlock(self.rect, 30, 90, 1, question, TITLE_FONT_SIZE, pygame.Color("#0f5e65"), "normal", False)
+ self.question = gui.TextBlock(self.rect, 30, 90, 1, question, QUESTION_FONT_SIZE, QUESTION_COLOR, "normal", False)
self.add_child(self.question)
def set_correct_answer(self, a):
@@ -187,7 +190,7 @@ class MultipleChoice(gui.Window):
"""
self.choices = []
self.clear_childs()
- self.add_button(self.btn_close)
+ #self.add_button(self.btn_close)
self.add_child(self.title)
self.set_dirty_background()
self.wait = 0
@@ -363,8 +366,8 @@ class InfoChallenge(gui.Window):
self.add_button(self.btn_continue)
# Texts
- self.title = gui.Text(rect, 40, 40, 1, "Verdadero o Falso", 45, pygame.Color("blue"))
- self.text = gui.TextBlock(rect, 40, 120, 1, "", 35, pygame.Color("black"), "normal", False)
+ self.title = gui.Text(rect, 40, 40, 1, "Verdadero o Falso", 45, TITLE_COLOR)
+ self.text = gui.TextBlock(rect, 40, 120, 1, "", 35, TEXT_COLOR, "normal", False)
self.image = gui.Image(rect, pygame.Rect(640, 240, 80, 80), 1, "assets/challenges/ninio_normal.png")
self.add_child(self.title)
diff --git a/Saludame.activity/challenges_creator.py b/Saludame.activity/challenges_creator.py
index 62a5f4b..642e3c6 100644
--- a/Saludame.activity/challenges_creator.py
+++ b/Saludame.activity/challenges_creator.py
@@ -55,7 +55,7 @@ class ChallengesCreator:
self._create_mc_challenge(u"Acerca de la actividad física:", [u"Todas las veces que hagamos actividad física es muy importante tomar abundante agua para hidratarnos.", u"Antes de realizar actividad física no necesito controlarme con el doctor.", u"Es conveniente, para evitar el sedentarismo, pasar más de tres horas diarias sentados frente a la TV, la computadora, o el video juegos.", u"Bailar no es una actividad física.", u"La actividad física solo pueden realizarla adultos.", u"Solo tiene que realizar actividad física los escolares."], u"Todas las veces que hagamos actividad física es muy importante tomar abundante agua para hidratarnos.", 3),
self._create_mc_challenge(u"Acerca de la actividad física:", [u"Se dice que una persona es sedentaria cuando su actividad física no llega a ser de por lo menos media hora diaria por lo menos 5 días a la semana.", u"Las personas que tuvieron un infarto no puede hacer actividad física.", u"Realizar actividad física solo es correr y jugar pelota y no otras actividades como bailar, o andar a caballo.", u"Para no ser sedentarios debemos hacer actividad física de moderada intensidad por lo menos 2 días a la semana con una duración de 10 min por día.", u"La gran mayoría de las personas no deben realizar actividad física para mantenerse sanos.", u"Solo debe realizar actividad física si tengo sobrepeso."], u"Se dice que una persona es sedentaria cuando su actividad física no llega a ser de por lo menos media hora diaria por lo menos 5 días a la semana.", 4),
self._create_mc_challenge(u"La actividad física:", [u"Mejora nuestra salud cardiovascular.", u"No importa tomar agua cuando realizamos actividad física.", u"Nos hace subir de peso.", u"Solo la deben realizar los adultos.", u"Es menos importante que una buena alimentación.", u"Cuando realizamos actividad física debemos ingerir coca cola."], u"Mejora nuestra salud cardiovascular.", 5),
- self._create_mc_challenge(u"¿Cual se estas preguntas acerca de actividad física te parece la correcta?", [u"El 40 % de los niños en Uruguay son sedentarios.", u"Es recomendable que estemos jugando en la Xo o mirando tv 5 horas por día.", u"Las personas son sedentarias cuando realizan actividad física 5 veces a la semana.", u"Los niños no necesitan realizar actividad física.", u"No es importante estirar nuestros músculos cuando hacemos actividad física.", u"Cuando realizamos actividad física no debemos ingerir agua."], u"El 40 % de los niños en Uruguay son sedentarios.", 5),
+ self._create_mc_challenge(u"¿Cuál se estas preguntas acerca de actividad física te parece la correcta?", [u"El 40 % de los niños en Uruguay son sedentarios.", u"Es recomendable que estemos jugando en la Xo o mirando tv 5 horas por día.", u"Las personas son sedentarias cuando realizan actividad física 5 veces a la semana.", u"Los niños no necesitan realizar actividad física.", u"No es importante estirar nuestros músculos cuando hacemos actividad física.", u"Cuando realizamos actividad física no debemos ingerir agua."], u"El 40 % de los niños en Uruguay son sedentarios.", 5),
self._create_mc_challenge(u"Acerca de la actividad física, elije la opción verdadera.", [u"Si realizamos actividad física desde niños podemos prevenir enfermedades cuando seamos más grandes.", u"Las personas que tienen enfermedades cardiovasculares no pueden hacer ningún tipo de actividad física.", u"Los niños pequeños no necesitan hacer actividad física.", u"Los niños que realizan actividad física tienen más probabilidad de enfermarse.", u"Los adultos no tienen que realizar actividad física porque les perjudica su salud.", u"La actividad física solo deben realizarla las personas obesas."], u"Si realizamos actividad física desde niños podemos prevenir enfermedades cuando seamos más grandes.", 6),
self._create_mc_challenge(u"La actividad física:", [u"Propicia una buena circulación a todos nuestro organismo.", u"No nos ayuda a controlar nuestro peso corporal.", u"No mejora la actividad de nuestro corazón.", u"No disminuye el estrés y libera tensiones.", u"No mejora nuestra digestión.", u"No mejora nuestra imagen personal."], u"Propicia una buena circulación a todos nuestro organismo.", 7),
self._create_mc_challenge(u"Acerca de nuestras defensas del cuerpo:", [u"Las vacunas nos protegen de enfermedades y trabajan con nuestro sistema inmunológico. ", u"Las vacunas no son importantes para cuidar de nuestra salud.", u"Tener las vacunas al día no es importante.", u"El reír, descansar y disfrutar no afecta nuestro sistema inmunológico.", u"Si no nos alimentamos correctamente nuestro sistema inmunológico no se afecta.", u"Las vacunas obligatorias no son gratuitas."], u"Las vacunas nos protegen de enfermedades y trabajan con nuestro sistema inmunológico. ", 8),
@@ -121,7 +121,7 @@ class ChallengesCreator:
self._create_mc_challenge(u"Las proteínas son macronutrientes y las podemos encontrar en:", [u"Carnes y huevos ", u"Las golosinas", u"Refrescos", u"Manteca", u"Dulces", u"Chocolate"], u"Carnes y huevos ", 6),
self._create_mc_challenge(u"¿Cuál de estos es un macronutriente? ", [u"Las proteínas.", u"Vitaminas.", u"Minerales.", u"La sal.", u"El flúor.", u"El calcio."], u"Las proteínas.", 6),
self._create_mc_challenge(u"¿Acerca de las vitaminas, cuál es la opción verdadera?", [u"Son vitales para el organismo.", u"Las vitaminas son todas fabricadas por nuestro propio organismo.", u"Las vitaminas no son importantes.", u"La falta de vitaminas no nos produce enfermedades.", u"La cáscara de las frutas no contiene vitaminas.", u"Cocinar las frutas y verduras con una olla al vapor no nos conserva las vitaminas"], u"Son vitales para el organismo.", 7),
- self._create_mc_challenge(u"¿Cual de estos consejos de las guías GABA es el correcto?", [u"La alimentación debe ser variada e incluir alimentos de los 6 grupos.", u"Para rendir más durante el día debemos incluir un desayuno que incluya asado.", u"Comer sin importar las porciones indicadas en los grupos de alimentos.", u"Los lácteos no son necesarios en todas las edades.", u"Consumir una vez a la semana frutas de estación.", u"Aumentar el consumo de bebidas azucaradas."], u"La alimentación debe ser variada e incluir alimentos de los 6 grupos.", 7),
+ self._create_mc_challenge(u"¿Cuál de estos consejos de las guías GABA es el correcto?", [u"La alimentación debe ser variada e incluir alimentos de los 6 grupos.", u"Para rendir más durante el día debemos incluir un desayuno que incluya asado.", u"Comer sin importar las porciones indicadas en los grupos de alimentos.", u"Los lácteos no son necesarios en todas las edades.", u"Consumir una vez a la semana frutas de estación.", u"Aumentar el consumo de bebidas azucaradas."], u"La alimentación debe ser variada e incluir alimentos de los 6 grupos.", 7),
self._create_mc_challenge(u"En relación a las vitaminas que se encuentran en frutas y verduras: ", [u"Se conservan mejor si consumo frutas y verduras con cáscara porque muchas vitaminas se concentran en la cáscara.", u"Se conservan mejor en las frutas y verduras si las hiervo durante un tiempo prolongado.", u"Se conservan mejor si las consumo fritas.", u"Las vitaminas no se encuentran en las frutas.", u"La vitamina A se encuentra en el tomate.", u"La vitamina A se encuentra en el limón."], u"Se conservan mejor si consumo frutas y verduras con cáscara porque muchas vitaminas se concentran en la cáscara.", 7),
self._create_mc_challenge(u"Las fibras en la alimentación:", [u"Ayudan a regularizar nuestro tránsito intestinal junto al agua y el ejercicio.", u"No ayudan a movilizar nuestro intestino.", u"No son tan importantes.", u"Se encuentran en el asado.", u"Se encuentran en las golosinas.", u"No se encuentran en las frutas"], u"Ayudan a regularizar nuestro tránsito intestinal junto al agua y el ejercicio.", 8),
self._create_mc_challenge(u"¿Cuál de estos consejos es el verdadero?", [u"Es importante incluir en el desayuno frutas.", u"No es necesario separar alimentos crudos de los cocidos", u"No es importante lavar los alimentos con agua y jabón.", u"No es necesario guardar la carne en la heladera.", u"Los niños deben consumir media fruta por día.", u"No es importante limpiar el lugar donde voy a cocinar."], u"Es importante incluir en el desayuno frutas.", 8),
@@ -154,7 +154,7 @@ class ChallengesCreator:
self.mc_challenges["responsability"] = [
self._create_mc_challenge(u"Lo primero que debemos determinar para realizar nuestra huerta es:", [u"El terreno.", u"Que vamos a sembrar.", u"Como lo vamos a cercar.", u"Quien lo va a trabajar.", u"Como va a ser el riego.", u"Como protegerla del sol."], u"El terreno.", 1),
- self._create_mc_challenge(u"¿Cual es la parte más importante, trabajando en la huerta?", [u"Todas.", u"La siembra.", u"La elección de semillas.", u"La cosecha.", u"Separar las semillas.", u"El riego."], u"Todas.", 1),
+ self._create_mc_challenge(u"¿Cuál es la parte más importante, trabajando en la huerta?", [u"Todas.", u"La siembra.", u"La elección de semillas.", u"La cosecha.", u"Separar las semillas.", u"El riego."], u"Todas.", 1),
self._create_mc_challenge(u"Los controles en salud con el doctor sirven para:", [u"Aprender a cuidar de mi salud y prevenir enfermedades. ", u"Aprender matemáticas.", u"Aburrirme.", u"Aprender las tablas.", u"Perder el tiempo.", u"Aprender a leer."], u"Aprender a cuidar de mi salud y prevenir enfermedades. ", 1),
self._create_mc_challenge(u"En relación a los controles en salud, ¿Cuál es la opción correcta?", [u"Todas las personas tienen derecho a poder controlar su salud.", u"Sólo deben controlarse los bebés.", u"Sólo deben controlarse los niños.", u"Sólo deben controlarse los adultos.", u"Sólo deben controlarse los ancianos.", u"Sólo deben controlarse los escolares."], u"Todas las personas tienen derecho a poder controlar su salud.", 1),
self._create_mc_challenge(u"En relación a los controles en salud, ¿Cuál es la opción correcta?", [u"Los niños tienen derecho a que los adultos los lleven a controlar su salud. ", u"La frecuencia de controles en salud es igual para todas las edades.", u"En los controles en salud no aprendemos a cuidarnos y a alimentarnos correctamente.", u"Los controles en salud no son importantes.", u"Los controles en salud no me permiten aprender cosas acerca de mi salud.", u""], u"Los niños tienen derecho a que los adultos los lleven a controlar su salud. ", 1),
@@ -187,7 +187,7 @@ class ChallengesCreator:
self._create_mc_challenge(u"Los canteros de la huerta se deben realizar de la siguiente manera:", [u"Separados por 50 cms.", u"Uno al lado del otro.", u"Separados por 6 metros.", u"Separados por 6 centímetros.", u"Sin separación.", u"A menos de 10 centímetros entre si."], u"Separados por 50 cms.", 6),
self._create_mc_challenge(u"Acerca de mis derechos y obligaciones en relación a mi salud marque la opción verdadera.", [u"Todos los niños tenemos derecho a que los adultos responsables nos lleven a nuestros controles en salud.", u"Aprender a practicar hábitos saludables no es importante.", u"No es necesario que visite a mi doctor si no estoy viendo bien con mis ojos.", u"El olvidarme de mis controles en salud con el doctor no tiene importancia.", u"En mis controles en salud con el doctor el control de mi peso y de mi altura no son importantes.", u"En mis controles en salud con el doctor no es importante que valoren como ven mis ojos."], u"Todos los niños tenemos derecho a que los adultos responsables nos lleven a nuestros controles en salud.", 7),
self._create_mc_challenge(u"Cuando vamos a nadar a ríos o arroyos es importante:", [u"No nadar en contra de la corriente pues podemos cansarnos. ", u"Tirarnos al agua aunque no sepamos nadar.", u"Comer antes de ir.", u"No llevar gorro", u"Llevar alcohol.", u"Ir solos."], u"No nadar en contra de la corriente pues podemos cansarnos. ", 7),
- self._create_mc_challenge(u"Sobre nuestra huerta: ¿Que planta no es conveniente plantar con el pepino?", [u"Papa", u"Girasol.", u"Porotos.", u"Maíz.", u"Arvejas.", u"Rabanito."], u"Papa", 7),
+ self._create_mc_challenge(u"Sobre nuestra huerta: ¿Qué planta no es conveniente plantar con el pepino?", [u"Papa", u"Girasol.", u"Porotos.", u"Maíz.", u"Arvejas.", u"Rabanito."], u"Papa", 7),
self._create_mc_challenge(u"Cuando se usan agroquímicos en la huerta: ", [u"No debemos mezclar la ropa contaminada con agroquímicos con ropa limpia.", u"No es importante usar ropa de protección específica para esa actividad.", u"Luego de haberlos aplicado no es importante colgar en ambiente ventilado la vestimenta utilizada durante la aplicación.", u"No es necesario ducharse con abundante agua y jabón.", u"No es importante lavar la ropa contaminada con abundante agua y jabón.", u"No es necesario utilizar guantes durante el lavado de la ropa contaminada."], u"No debemos mezclar la ropa contaminada con agroquímicos con ropa limpia.", 7),
self._create_mc_challenge(u"¿Cuáles de estos síntomas deben tenerse en cuenta cuando usamos agroquímicos y consultar inmediatamente?.", [u"Dificultad para respirar o falta de aire", u"Risa.", u"Ganas de tomar un helado.", u"Ganas de leer.", u"Ganas de jugar a la Xo.", u"Ganas de ir a la escuela."], u"Dificultad para respirar o falta de aire", 8),
self._create_mc_challenge(u"¿Cuál de estas plantas en la huerta no se lleva bien con el resto de la lista?", [u"La Papa.", u"La Cebolla.", u"La Zanahoria.", u"La Menta.", u"La Ortiga.", u"La Borraja."], u"La Papa.", 8),
diff --git a/Saludame.activity/credits/Logotipo PLAN CEIBAL.png b/Saludame.activity/credits/Logotipo PLAN CEIBAL.png
index 144d5f9..ca340c6 100644
--- a/Saludame.activity/credits/Logotipo PLAN CEIBAL.png
+++ b/Saludame.activity/credits/Logotipo PLAN CEIBAL.png
Binary files differ
diff --git a/Saludame.activity/customization.py b/Saludame.activity/customization.py
index 135bfee..8442492 100644
--- a/Saludame.activity/customization.py
+++ b/Saludame.activity/customization.py
@@ -49,6 +49,9 @@ class CustomizationWindow(gui.Window):
self.kid = CustomizatedKid(self.rect, kid_rect, 1, character)
self.add_child(self.kid)
+ title = gui.Text(self.rect, 590, 60, 1, _("Creá tu personaje"), 32, pygame.Color("#0f5e65"), alignment=gui.Text.ALIGN_CENTER, bold=True)
+ self.add_child(title)
+
btn_close = utilities.get_accept_button(self.rect, pygame.Rect((400, 500), (1, 1)), _("Continue"), self._cb_button_click_close)
button_back = pygame.image.load("customization/customization_button.png").convert()
diff --git a/Saludame.activity/customization/boy_small.png b/Saludame.activity/customization/boy_small.png
deleted file mode 100755
index 1d60e66..0000000
--- a/Saludame.activity/customization/boy_small.png
+++ /dev/null
Binary files differ
diff --git a/Saludame.activity/customization/girl_small.png b/Saludame.activity/customization/girl_small.png
deleted file mode 100755
index cbb71a7..0000000
--- a/Saludame.activity/customization/girl_small.png
+++ /dev/null
Binary files differ
diff --git a/Saludame.activity/customization/www.clker.com b/Saludame.activity/customization/www.clker.com
deleted file mode 100755
index e69de29..0000000
--- a/Saludame.activity/customization/www.clker.com
+++ /dev/null
diff --git a/Saludame.activity/events.py b/Saludame.activity/events.py
index b2c978e..21176b8 100644
--- a/Saludame.activity/events.py
+++ b/Saludame.activity/events.py
@@ -5,11 +5,12 @@ MAX_BAR_VALUE = 100.0 #maximo valor que puede alcanzar una barra
class Event:
- def __init__(self, directory_path, name, description, impact, trigger, time_span, conditioned_bars, effect, library_link, level, preferred_mood):
+ def __init__(self, event_type, directory_path, name, description, impact, trigger, time_span, conditioned_bars, effect, library_link, level, preferred_mood):
if not time_span:
time_span = 999
+ self.event_type = event_type
self.directory_path = directory_path
self.name = name
self.description = description
@@ -19,6 +20,7 @@ class Event:
self.trigger = trigger # "random" - it's selected at random by it's probability,
# "triggered" - it should appear only when it's triggered as a consequence of an action and it's probability is higher than zero
+ # "environment" - it's triggered every time there's a change in {place, time, weather}
self.time_span = time_span
self.time_left = time_span
@@ -26,7 +28,7 @@ class Event:
self.operator = conditioned_bars[0]
self.condicioned_bars = conditioned_bars[1]
- self.condicioned_probability = 0.0 # starts in 0.0
+ self.probability = 0.0 # starts in 0.0
self.level = level # Starting level, in levels prior to this one, the event is not triggered
self.library_link = library_link
@@ -45,7 +47,7 @@ class Event:
Updates event probability
"""
- self.condicioned_probability = 0.0
+ self.probability = 0.0
if not self.check_restrictions(restrictions):
return 0.0
@@ -88,14 +90,14 @@ class Event:
probs.append(prob)
if probs:
- self.condicioned_probability = sum(probs) / len(probs)
+ self.probability = sum(probs) / len(probs)
- return self.condicioned_probability
+ return self.probability
def get_probability(self):
#eventually we just take the conditioned
#probability
- return int(self.condicioned_probability)
+ return int(self.probability)
def perform(self):
@@ -120,7 +122,7 @@ class Event:
class PersonalEvent(Event):
def __init__(self, picture, kid_animation_path, name, description, impact, trigger, time_span, conditioned_bars, effect, kid_message, library_link, level=1, preferred_mood=9):
- Event.__init__(self, picture, name, description, impact, trigger, time_span, conditioned_bars, effect, library_link, level, preferred_mood)
+ Event.__init__(self, "personal", picture, name, description, impact, trigger, time_span, conditioned_bars, effect, library_link, level, preferred_mood)
self.kid_animation_path = kid_animation_path
@@ -132,7 +134,7 @@ class PersonalEvent(Event):
class SocialEvent(Event):
def __init__(self, picture, person_path, name, description, impact, trigger, time_span, conditioned_bars, effect, message, library_link, level=1, preferred_mood=9):
- Event.__init__(self, picture, name, description, impact, trigger, time_span, conditioned_bars, effect, library_link, level, preferred_mood)
+ Event.__init__(self, "social", picture, name, description, impact, trigger, time_span, conditioned_bars, effect, library_link, level, preferred_mood)
self.time_left = time_span
diff --git a/Saludame.activity/game_manager.py b/Saludame.activity/game_manager.py
index 2e090b4..4a402a8 100644
--- a/Saludame.activity/game_manager.py
+++ b/Saludame.activity/game_manager.py
@@ -174,8 +174,7 @@ class GameManager:
def update_environment(self):
"""
- Sets the character environment and send a message to the
- windows_controller
+ Sets the character environment and send a message to the windows_controller
"""
environment_id = (self.character.current_place, self.current_weather[0])
self.environment = self.environments_dictionary[environment_id]
@@ -184,6 +183,8 @@ class GameManager:
if self.started:
self.windows_controller.set_environment(self.environment, self.current_time)
+
+ self.check_environment_events()
def update_environment_effect(self):
"""
@@ -569,13 +570,34 @@ class GameManager:
def check_consequence_event(self, event):
""" Check if an event can be added """
- if event in self.personal_events_list:
+ if event.event_type == "personal":
if len(self.active_events) < self.level_conf[self.character.level - 1]["events_qty_personal"]:
self.add_personal_event(event)
else:
if len(self.active_social_events) < self.level_conf[self.character.level - 1]["events_qty_social"]:
self.add_social_event(event)
+
+ def check_environment_events(self):
+ """ Checks if any event should be triggered by an environment change """
+ print "checking environment"
+ events_list = self.events_dict.values()
+ events_list = [event for event in events_list if event.trigger == "environment"] # Subset of events which are triggered randomly
+
+ allowed_events = [evt for evt in events_list if evt.level <= self.character.level] # verify wich events are allowed in the current level.
+
+ self.__update_events_probability(allowed_events) # it updates the probabilities of the list's events
+ allowed_events = [evt for evt in events_list if evt.get_probability() > 0]
+
+ if len(allowed_events) > 0:
+ event = random.choice(allowed_events)
+ if event.event_type == "personal":
+ if len(self.active_events) < self.level_conf[self.character.level - 1]["events_qty_personal"]:
+ self.add_personal_event(event)
+ else:
+ if len(self.active_social_events) < self.level_conf[self.character.level - 1]["events_qty_social"]:
+ self.add_social_event(event)
+
def remove_social_event(self, event):
""" removes an active social event """
self.windows_controller.remove_social_event(event)
@@ -620,8 +642,9 @@ class GameManager:
"""
events_list = [event for event in events_list if event.trigger == "random"] # Subset of events which are triggered randomly
- self.__update_events_probability(events_list) # it updates the probabilities of the list's events
allowed_events = [evt for evt in events_list if evt.level <= self.character.level]#verify wich events are allowed in the current level.
+ self.__update_events_probability(allowed_events) # it updates the probabilities of the list's events
+
if len(allowed_events) > 0:
probability_ranges = self.__calculate_ranges(allowed_events) # calculate the ranges for these events
max_rand = probability_ranges[-1][1] # Second member of last event
diff --git a/Saludame.activity/gui/utilities.py b/Saludame.activity/gui/utilities.py
index 64c9508..a331b2a 100755
--- a/Saludame.activity/gui/utilities.py
+++ b/Saludame.activity/gui/utilities.py
@@ -234,7 +234,7 @@ class TextBlock(Widget):
(b, _, a) = a.partition(eol)
self.lines.append(b)
- def prepare_text_block(self):
+ def render_lines(self):
self.rendered_lines = []
for l in self.lines:
r = self.font.render(l, False, self.color)
@@ -243,6 +243,9 @@ class TextBlock(Widget):
self.rect_absolute.height += r.get_rect().height
self.rendered_lines.append(r)
+ def prepare_text_block(self):
+ self.render_lines()
+
if self.type == "tooltip":
self.rect_absolute.height += 20
self.rect_absolute.width += 20
@@ -292,6 +295,7 @@ class TextBlock(Widget):
def switch_color_text(self, color):
self.color = color
+ self.render_lines()
self.set_dirty()
font_dict = {} # Chaches created font instances
diff --git a/Saludame.activity/panel_window.py b/Saludame.activity/panel_window.py
index 93d9e33..9c4008e 100644
--- a/Saludame.activity/panel_window.py
+++ b/Saludame.activity/panel_window.py
@@ -64,13 +64,14 @@ class PanelWindow(gui.Window):
self.add_window(self.social_window)
# Customization
- customization_button = gui.ImageButton(self.rect, pygame.Rect(885, 0, 1, 1), 1, "assets/layout/customization.png", self._cb_button_click_customization)
+ customization_button = gui.ImageButton(self.rect, pygame.Rect(953, 0, 1, 1), 1, "assets/layout/customization.png", self._cb_button_click_customization)
customization_button.set_tooltip(_("Customization module"))
self.add_button(customization_button)
# Info
- self.info_button = gui.ImageButton(self.rect, pygame.Rect(953, 0, 1, 1), 1, "assets/layout/info.png", self._cb_button_click_info)
+ self.info_button = gui.ImageButton(self.rect, pygame.Rect(885, 0, 1, 1), 1, "assets/layout/info.png", self._cb_button_click_info)
self.add_button(self.info_button)
+ self.info_button.visible = False
self.info_button_blink_timeout = 0
# Environment
@@ -148,6 +149,7 @@ class PanelWindow(gui.Window):
self.info_button.set_super_tooltip(tooltip)
self.info_button_blink_timeout = 6
sound_manager.instance.play_forbidden_action()
+ self.info_button.visible = True
def update(self, frames):
@@ -180,6 +182,7 @@ class PanelWindow(gui.Window):
if self.info_button_event == event:
self.info_button_event = None
self.info_button.set_super_tooltip("")
+ self.info_button.visible = False
# Buttons Callbacks
def _cb_button_click_customization(self, button):