career_goal_svc.py (2902B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\careergoals\client\career_goal_svc.py 2 import logging 3 import uuid 4 from careergoals.client.goal_data_controller import GoalDataController 5 from careergoals.client.messenger.event_messenger import PublicCareerGoalEventMessenger 6 from careergoals.client.messenger.notice_messenger import PublicCareerGoalNoticeMessenger 7 import careergoals.client.messenger.messenger_signal as messenger_signal 8 _instance = None 9 10 def get_career_goals_svc(): 11 global _instance 12 if _instance is None: 13 _instance = _CareerGoalsSvc() 14 return _instance 15 16 17 logger = logging.getLogger(__name__) 18 19 class _CareerGoalsSvc(object): 20 __startupdependencies__ = ['publicGatewaySvc', 'machoNet'] 21 __notifyevents__ = ['OnSessionReset', 'OnSessionChanged'] 22 23 def __init__(self): 24 self._public_gateway = sm.GetService('publicGatewaySvc') 25 self._goal_data_controller = GoalDataController() 26 self._event_messenger = PublicCareerGoalEventMessenger(self._public_gateway) 27 self._notice_messenger = PublicCareerGoalNoticeMessenger(self._public_gateway) 28 messenger_signal.on_goal_progressed.connect(self._on_progressed_notice) 29 messenger_signal.on_goal_completed.connect(self._on_completed_notice) 30 sm.RegisterNotify(self) 31 32 def __del__(self): 33 messenger_signal.on_goal_progressed.disconnect(self._on_progressed_notice) 34 messenger_signal.on_goal_completed.disconnect(self._on_completed_notice) 35 36 def get_goal_data_controller(self): 37 return self._goal_data_controller 38 39 def emit_goal_tracked(self, goal_id): 40 self._event_messenger.goal_tracked(goal_id) 41 42 def emit_career_selected(self, goal_id): 43 self._event_messenger.career_selected(goal_id) 44 45 def emit_group_selected(self, group_name, career_name): 46 self._event_messenger.group_selected(group_name, career_name) 47 48 def emit_goal_selected(self, goal_id): 49 self._event_messenger.goal_selected(goal_id) 50 51 def claim_reward(self, goal_id, reward_label): 52 self._goal_data_controller.claim_reward(goal_id, reward_label) 53 54 def _on_progressed_notice(self, goal_id, progress): 55 logger.info('CAREER GOALS - goal %s progressed to %s' % (goal_id, progress)) 56 self._goal_data_controller.update_local_goal_progress(goal_id, progress) 57 58 def _on_completed_notice(self, goal_id): 59 logger.info('CAREER GOALS - goal %s completed' % goal_id) 60 self._goal_data_controller.mark_local_goal_completed(goal_id) 61 62 def OnSessionChanged(self, _isRemote, _sess, change): 63 if 'charid' in change: 64 self._goal_data_controller.clear_state_cache() 65 self._goal_data_controller.clear_local_cache() 66 67 def OnSessionReset(self): 68 self._goal_data_controller.clear_state_cache() 69 self._goal_data_controller.clear_local_cache()