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