NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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()