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

certificate.py (3893B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\control\entries\certificate.py
      2 import localization
      3 import utillib
      4 from carbon.common.script.sys.serviceConst import ROLE_GML
      5 from carbonui import uiconst
      6 from carbonui.button.const import HEIGHT_NORMAL
      7 from carbonui.primitives.sprite import Sprite
      8 from eve.client.script.ui.control.entries.skill import SkillTreeEntry
      9 from eve.client.script.ui.control.entries.util import GetFromClass
     10 from eve.client.script.ui.control.listgroup import ListGroup
     11 from eve.client.script.ui.shared.neocom.skillConst import COLOR_SKILL_1
     12 from eve.common.lib import appConst as const
     13 from menu import MenuLabel
     14 HEIGHT = HEIGHT_NORMAL
     15 
     16 class CertEntry(ListGroup):
     17     __guid__ = 'listentry.CertEntry'
     18     isDragObject = True
     19     default_iconSize = 22
     20 
     21     def Startup(self, *args):
     22         super(CertEntry, self).Startup(*args)
     23         self.progressIcon = Sprite(name='progressIcon', parent=self, align=uiconst.CENTERRIGHT, pos=(2, 0, 16, 16), color=COLOR_SKILL_1)
     24 
     25     def Load(self, node):
     26         node.showlen = False
     27         self.certificate = node.certificate
     28         self.certID = self.certificate.certificateID
     29         self.level = node.level
     30         super(CertEntry, self).Load(node)
     31         self.sr.label.text = self.certificate.GetLabel(self.level)
     32         currLevel = self.certificate.GetLevel()
     33         if currLevel >= self.level:
     34             self.progressIcon.SetTexturePath('res:/ui/Texture/classes/Skills/SkillRequirementMet.png')
     35             self.progressIcon.hint = localization.GetByLabel('UI/InfoWindow/TrainedAndOfRequiredLevel')
     36         else:
     37             self.progressIcon.SetTexturePath('res:/ui/Texture/classes/Skills/SkillRequirementNotMet.png')
     38             self.progressIcon.hint = localization.GetByLabel('UI/InfoWindow/NotTrained')
     39 
     40     def GetMenu(self):
     41         m = [(MenuLabel('UI/Commands/ShowInfo'), self.ShowInfo, (self.certID,))]
     42         if session.role & ROLE_GML == ROLE_GML:
     43             m.append(('GM: Give all skills', self.GMGiveAllSkills, ()))
     44         return m
     45 
     46     def GMGiveAllSkills(self):
     47         skills = sm.GetService('certificates').GetCertificate(self.certID).SkillsByTypeAndLevel(self.level)
     48         for typeID, level in skills:
     49             if sm.GetService('skills').MySkillLevel(typeID) < level:
     50                 sm.RemoteSvc('slash').SlashCmd('/giveskill me %s %s' % (typeID, level))
     51 
     52     def GetHeight(self, *args):
     53         node, _ = args
     54         node.height = HEIGHT
     55         return node.height
     56 
     57     def ShowInfo(self, *args):
     58         abstractinfo = utillib.KeyVal(certificateID=self.certID, level=self.level)
     59         sm.StartService('info').ShowInfo(const.typeCertificate, abstractinfo=abstractinfo)
     60 
     61     def OnDblClick(self, *args):
     62         self.ShowInfo()
     63 
     64     @staticmethod
     65     def GetSubContent(node, *args):
     66         skillSvc = sm.GetService('skills')
     67         filterAcquired = settings.user.ui.Get('masteries_filter_acquired', False)
     68         scrolllist = []
     69         skills = sm.GetService('certificates').GetCertificate(node.certificate.certificateID).SkillsByTypeAndLevel(node.level)
     70         for typeID, lvl in skills:
     71             try:
     72                 if filterAcquired and skillSvc.GetSkill(typeID).trainedSkillLevel >= lvl:
     73                     continue
     74             except AttributeError:
     75                 pass
     76 
     77             scrolllist.append(GetFromClass(SkillTreeEntry, {'line': True,
     78              'typeID': typeID,
     79              'lvl': lvl,
     80              'indent': 2,
     81              'hint': sm.GetService('skills').GetSkillToolTip(typeID, lvl)}))
     82 
     83         return scrolllist
     84 
     85     def GetHint(self):
     86         return self.certificate.GetDescription()
     87 
     88     def GetDragData(self, *args):
     89         return (self.sr.node,)
     90 
     91     def UpdateLabel(self):
     92         text = self.certificate.GetLabel(self.level)
     93         self.sr.label.text = text
     94         self.sr.node.label = text