charactersheet.py (2845B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\charactersheet.py 2 from caching.memoize import Memoize 3 from carbon.common.script.sys.service import Service 4 from eve.client.script.ui.shared.neocom.characterSheetWindow import CharacterSheetWindow 5 6 class CharacterSheet(Service): 7 __exportedcalls__ = {'Show': []} 8 __update_on_reload__ = 0 9 __guid__ = 'svc.charactersheet' 10 __notifyevents__ = ['ProcessSessionChange', 11 'OnRankChange', 12 'OnKillNotification', 13 'OnSessionReset'] 14 __servicename__ = 'charactersheet' 15 __displayname__ = 'Character Sheet Client Service' 16 __dependencies__ = [] 17 __startupdependencies__ = ['settings', 'skills', 'neocom'] 18 19 def __init__(self): 20 super(CharacterSheet, self).__init__() 21 self.daysLeft = -1 22 23 def Run(self, memStream = None): 24 self.LogInfo('Starting Character Sheet') 25 26 def Stop(self, memStream = None): 27 wnd = self.GetWnd() 28 if wnd is not None and not wnd.destroyed: 29 wnd.Close() 30 31 def OnSessionReset(self): 32 self.Reset() 33 34 def Reset(self): 35 self.daysLeft = -1 36 self._GetHomeStationInfo.clear_memoized() 37 38 def ProcessSessionChange(self, isremote, session, change): 39 if session.charid is None: 40 self.Stop() 41 self.Reset() 42 43 @Memoize 44 def _GetHomeStationInfo(self): 45 return sm.RemoteSvc('charMgr').GetHomeStationRow() 46 47 def GetHomeStationRow(self): 48 return self._GetHomeStationInfo() 49 50 def GetHomeStation(self): 51 return self._GetHomeStationInfo().stationID 52 53 @staticmethod 54 def OnRankChange(oldrank, newrank): 55 if not session.warfactionid: 56 return 57 rankLabel, _ = sm.GetService('facwar').GetRankLabel(session.warfactionid, newrank) 58 if newrank > oldrank: 59 blinkMsg = cfg.GetMessage('RankGained', {'rank': rankLabel}).text 60 else: 61 blinkMsg = cfg.GetMessage('RankLost', {'rank': rankLabel}).text 62 sm.GetService('neocom').Blink('militia', blinkMsg) 63 64 @staticmethod 65 def ForceShowSkillHistoryHighlighting(skillTypeIds): 66 CharacterSheetWindow.OpenSkillHistoryHilightSkills(skillTypeIds) 67 68 @staticmethod 69 def OpenPlexPanel(): 70 CharacterSheetWindow.OpenPLEX() 71 72 @staticmethod 73 def OnKillNotification(): 74 sm.StartService('objectCaching').InvalidateCachedMethodCall('charMgr', 'GetRecentShipKillsAndLosses', 25, None) 75 76 def Show(self): 77 wnd = self.GetWnd(1) 78 if wnd is not None and not wnd.destroyed: 79 wnd.Maximize() 80 return wnd 81 82 @staticmethod 83 def GetWnd(getnew = 0): 84 if not getnew: 85 return CharacterSheetWindow.GetIfOpen() 86 else: 87 return CharacterSheetWindow.ToggleOpenClose()