skillPlanLockedCont.py (5171B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\selectedPlan\skillPlanLockedCont.py 2 from carbonui import uiconst 3 from carbonui.primitives.container import Container 4 from carbonui.primitives.containerAutoSize import ContainerAutoSize 5 from carbonui.uicore import uicore 6 from eve.client.script.ui import eveColor 7 from eve.client.script.ui.shared.cloneGrade import ORIGIN_SKILLPLAN 8 from eve.client.script.ui.skillPlan.selectedPlan.lockButton import LOCK_BUTTON_SIZE, SkillPlanLockButton, OmegaLockButton, MissingSkillsLockButton 9 from eveui import Sprite 10 from localization import GetByLabel 11 from omega.client.clone_grade_svc import get_clone_grade_svc 12 from signals import Signal 13 from skills.skillplan.loggers.skillPlanLogger import log_certified_skill_plan_omega_button_clicked 14 LOCKED_COLOR = eveColor.HOT_RED 15 UNLOCKED_COLOR = (1.0, 1.0, 1.0, 1.0) 16 17 class SkillPlanLockedCont(ContainerAutoSize): 18 default_height = LOCK_BUTTON_SIZE 19 default_alignMode = uiconst.TOPLEFT 20 21 def ApplyAttributes(self, attributes): 22 super(SkillPlanLockedCont, self).ApplyAttributes(attributes) 23 self.skillPlan = None 24 self.onMissingSkillsButtonSignal = Signal() 25 self.lockIndicator = Sprite(parent=self, name='lockIndicator', align=uiconst.CENTERTOP, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/SkillPlan/lockButtonIndicator.png', width=10, height=19, top=22) 26 self.lockIcon = Container(parent=self, name='lockIcon', align=uiconst.CENTERTOP, state=uiconst.UI_DISABLED, bgTexturePath='res:/UI/Texture/classes/SkillPlan/lockIcon.png', bgColor=eveColor.HOT_RED, width=26, height=26, top=46) 27 Sprite(name='lockIcon', parent=self.lockIcon, align=uiconst.CENTER, pos=(0, 0, 16, 16), texturePath='res:/UI/Texture/classes/Window/btnLock.png') 28 self.omegaDot = Sprite(parent=self, name='omegaDot', align=uiconst.TOPLEFT, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/SkillPlan/lockButtonDot.png', width=4, height=4, top=25, left=85) 29 self.missingSkillsDot = Sprite(parent=self, name='missingSkillsDot', align=uiconst.TOPRIGHT, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/SkillPlan/lockButtonDot.png', width=4, height=4, top=25, left=85) 30 self.omegaButton = OmegaLockButton(name='omegaButton', parent=self, align=uiconst.TOPLEFT, func=self.OnOmegaButton, left=96) 31 self.missingSkillsButton = MissingSkillsLockButton(name='missingSkillsButton', parent=self, align=uiconst.TOPLEFT, func=self.onMissingSkillsButtonSignal, fixedwidth=LOCK_BUTTON_SIZE) 32 33 def OnOmegaButton(self, *args): 34 if self.skillPlan.IsCertified(): 35 log_certified_skill_plan_omega_button_clicked(self.skillPlan.GetID()) 36 uicore.cmd.OpenCloneUpgradeWindow(ORIGIN_SKILLPLAN) 37 38 def SetSkillPlan(self, skillPlan): 39 self.skillPlan = skillPlan 40 41 def Update(self): 42 self.UpdateMissingSkillsButton() 43 self.UpdateOmegaButton() 44 self.UpdateLock() 45 46 def UpdateMissingSkillsButton(self): 47 missingSkillbooks = self.skillPlan.GetMissingSkillbooks() 48 if missingSkillbooks: 49 numMissing = len(missingSkillbooks) 50 self.missingSkillsButton.Lock(numMissing) 51 self.missingSkillsButton.SetHint(GetByLabel('UI/SkillPlan/SkillbooksMissing', numMissing=numMissing)) 52 else: 53 self.missingSkillsButton.Unlock() 54 self.missingSkillsButton.SetHint(GetByLabel('UI/SkillPlan/NoSkillbooksMissing')) 55 56 def UpdateOmegaButton(self): 57 numOmegaSkills = self.skillPlan.GetNumOmegaSkills() 58 if self.skillPlan.IsOmegaLocked(): 59 if get_clone_grade_svc().is_omega_with_grace_period(): 60 self.omegaButton.Unlock() 61 self.omegaButton.SetHint(GetByLabel('UI/SkillPlan/NoOmegaMissing')) 62 else: 63 self.omegaButton.Lock() 64 self.omegaButton.SetHint(GetByLabel('UI/SkillPlan/OmegaMissing', numMissing=numOmegaSkills)) 65 else: 66 self.omegaButton.Hide() 67 68 def UpdateLock(self): 69 omegaLocked = self.skillPlan.IsOmegaLocked() 70 skillbooksMissing = self.skillPlan.IsMissingSkillbooks() 71 if not omegaLocked and not skillbooksMissing or not self.omegaButton.display: 72 self.lockIcon.Hide() 73 self.lockIndicator.Hide() 74 self.omegaDot.Hide() 75 self.missingSkillsDot.Hide() 76 else: 77 self._UpdateOmegaDot(omegaLocked) 78 self.lockIcon.Show() 79 self.lockIndicator.Show() 80 self.lockIndicator.SetRGBA(*LOCKED_COLOR) 81 self.missingSkillsDot.Show() 82 if skillbooksMissing: 83 self.missingSkillsDot.SetRGBA(*LOCKED_COLOR) 84 else: 85 self.missingSkillsDot.SetRGBA(*UNLOCKED_COLOR) 86 87 def _UpdateOmegaDot(self, omegaLocked): 88 if self.skillPlan.IsOmega(): 89 self.omegaDot.Show() 90 if omegaLocked: 91 self.omegaDot.SetRGBA(*LOCKED_COLOR) 92 else: 93 self.omegaDot.SetRGBA(*UNLOCKED_COLOR) 94 else: 95 self.omegaDot.Hide()