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

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