contentProviderStorylineAgents.py (2557B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\contentProviders\contentProviderStorylineAgents.py 2 from eve.client.script.ui.shared.agencyNew import agencyConst 3 from eve.client.script.ui.shared.agencyNew.contentGroups import contentGroupConst 4 from eve.client.script.ui.shared.agencyNew.contentPieces.agentContentPiece import AgentContentPiece 5 from eve.client.script.ui.shared.agencyNew.contentProviders.baseContentProvider import BaseContentProvider 6 from eve.common.lib import appConst 7 from localization import GetByLabel 8 9 class ContentProviderStorylineAgents(BaseContentProvider): 10 contentType = agencyConst.CONTENTTYPE_STORYLINEAGENTS 11 contentGroup = contentGroupConst.contentGroupStorylineAgents 12 __notifyevents__ = BaseContentProvider.__notifyevents__ + ['OnAgentMissionChanged'] 13 14 def __init__(self): 15 super(ContentProviderStorylineAgents, self).__init__() 16 sm.RegisterNotify(self) 17 18 def _ConstructContentPieces(self): 19 agents = self.GetActiveStorylineAgents() 20 contentPieces = [ self.ConstructContentPiece(agent) for agent in agents ] 21 self.ExtendContentPieces(contentPieces) 22 23 def GetActiveStorylineAgents(self): 24 missions = self.GetAllActiveMissions() 25 agentSvc = sm.GetService('agents') 26 agents = [ agentSvc.GetAgentByID(mission.agentID) for mission in missions ] 27 return [ agent for agent in agents if self.CheckAgentTypeIDCriteria(agent) ] 28 29 def GetAllActiveMissions(self): 30 return sm.GetService('journal').GetActiveMissions() 31 32 def CheckAgentTypeIDCriteria(self, agent): 33 return agent.agentTypeID in (appConst.agentTypeStorylineMissionAgent, appConst.agentTypeGenericStorylineMissionAgent) 34 35 def ConstructContentPiece(self, agent): 36 contentPiece = AgentContentPiece(solarSystemID=agent.solarsystemID, itemID=agent.agentID, locationID=agent.stationID, typeID=agent.agentTypeID, ownerID=agent.corporationID, agent=agent) 37 return contentPiece 38 39 def OnAgentMissionChanged(self, missionState, agentID): 40 self.InvalidateContentPieces() 41 self._CheckBlinkNeocomButton(agentID, missionState) 42 43 def _CheckBlinkNeocomButton(self, agentID, missionState): 44 agent = sm.GetService('agents').GetAgentByID(agentID) 45 if agent and self.CheckAgentTypeIDCriteria(agent): 46 if missionState == appConst.agentMissionOffered: 47 sm.GetService('neocom').Blink('agency', GetByLabel('UI/Neocom/Blink/NewStorylineMissionAvailable'))