Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Saludame.activity/game_manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'Saludame.activity/game_manager.py')
-rw-r--r--Saludame.activity/game_manager.py31
1 files changed, 27 insertions, 4 deletions
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