epicArcMissionCont.py (4788B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\epicArcs\epicArcMissionCont.py 2 from carbon.common.script.sys.serviceConst import ROLE_PROGRAMMER 3 from carbonui import uiconst 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.sprite import Sprite 6 from carbonui.util.color import Color 7 from eve.client.script.ui.control.glowSprite import GlowSprite 8 from eve.client.script.ui.shared.epicArcs import epicArcConst 9 import blue 10 11 class EpicArcMissionCont(Container): 12 default_name = 'EpicArcMissionCont' 13 default_state = uiconst.UI_NORMAL 14 15 def ApplyAttributes(self, attributes): 16 Container.ApplyAttributes(self, attributes) 17 self.missionNode = attributes.missionNode 18 iconSize = attributes.iconSize 19 self.icon = Sprite(name='icon', parent=self, state=uiconst.UI_DISABLED, align=uiconst.CENTER, pos=(0, 20 0, 21 iconSize, 22 iconSize)) 23 self.glowSprite = GlowSprite(name='glowSprite', parent=self, state=uiconst.UI_DISABLED, align=uiconst.CENTER, pos=(0, 24 0, 25 iconSize, 26 iconSize), glowAmount=0.0) 27 self.UpdateIcon() 28 29 def UpdateIcon(self): 30 missionState = self.missionNode.GetState() 31 texturePath = self._GetTexturePath(missionState) 32 color = self._GetIconColor(missionState) 33 self.icon.texturePath = texturePath 34 self.icon.SetRGBA(*color) 35 self.glowSprite.texturePath = texturePath 36 self.glowSprite.SetRGBA(*color) 37 38 def OnMouseEnter(self, *args): 39 if self.missionNode.GetState() != epicArcConst.MISSION_UNAVAILABLE: 40 self.glowSprite.OnMouseEnter() 41 42 def OnMouseExit(self, *args): 43 self.glowSprite.OnMouseExit() 44 45 def _GetIconColor(self, missionState): 46 if missionState in (epicArcConst.MISSION_ACCEPTED, epicArcConst.MISSION_OFFERED): 47 return epicArcConst.COLOR_ACTIVE 48 if missionState == epicArcConst.MISSION_UNAVAILABLE: 49 return Color.GRAY6 50 if missionState == epicArcConst.MISSION_COMPLETED: 51 if self.missionNode.IsLastInChapter(): 52 return epicArcConst.COLOR_CHAPTER_COMPLETE 53 else: 54 return epicArcConst.COLOR_COMPLETE 55 56 def _GetTexturePath(self, missionState): 57 if self.missionNode.IsLastInArc(): 58 texturePath = self._GetTexturePathLastInArc(missionState) 59 elif self.missionNode.IsLastInChapter(): 60 texturePath = self._GetTexturePathLastInChapter(missionState) 61 else: 62 texturePath = self._GetTexturePathNormal(missionState) 63 return texturePath 64 65 def _GetTexturePathLastInChapter(self, missionState): 66 if missionState == epicArcConst.MISSION_UNAVAILABLE: 67 return 'res:/UI/Texture/Classes/EpicArcBar/chapter_inactiveMission.png' 68 if missionState == epicArcConst.MISSION_OFFERED: 69 return 'res:/UI/Texture/Classes/EpicArcBar/mission_Pending.png' 70 if missionState == epicArcConst.MISSION_ACCEPTED: 71 return 'res:/UI/Texture/Classes/EpicArcBar/chapter_activeMission.png' 72 if missionState == epicArcConst.MISSION_COMPLETED: 73 return 'res:/UI/Texture/Classes/EpicArcBar/chapter_completedMission.png' 74 75 def _GetTexturePathLastInArc(self, missionState): 76 if missionState == epicArcConst.MISSION_UNAVAILABLE: 77 return 'res:/UI/Texture/Classes/EpicArcBar/epicArc_inactive.png' 78 if missionState == epicArcConst.MISSION_OFFERED: 79 return 'res:/UI/Texture/Classes/EpicArcBar/mission_Pending.png' 80 if missionState == epicArcConst.MISSION_ACCEPTED: 81 return 'res:/UI/Texture/Classes/EpicArcBar/epicArc_active.png' 82 if missionState == epicArcConst.MISSION_COMPLETED: 83 return 'res:/UI/Texture/Classes/EpicArcBar/epicArc_complete.png' 84 85 def _GetTexturePathNormal(self, missionState): 86 if missionState == epicArcConst.MISSION_UNAVAILABLE: 87 return 'res:/UI/Texture/Classes/EpicArcBar/mission_Inactive.png' 88 if missionState == epicArcConst.MISSION_OFFERED: 89 return 'res:/UI/Texture/Classes/EpicArcBar/mission_Pending.png' 90 if missionState == epicArcConst.MISSION_ACCEPTED: 91 return 'res:/UI/Texture/Classes/EpicArcBar/mission_Active.png' 92 if missionState == epicArcConst.MISSION_COMPLETED: 93 return 'res:/UI/Texture/Classes/EpicArcBar/mission_Complete.png' 94 95 def GetHint(self): 96 self.missionNode.GetHint() 97 98 def GetMenu(self): 99 if session.role & ROLE_PROGRAMMER: 100 return [('missionID: %s' % self.missionNode.missionID, blue.pyos.SetClipboardData, (str(self.missionNode.missionID),)), (self.missionNode.GetInProgressText(), lambda : None, [])]