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

killRightsPanel.py (3092B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\charsheet\killRightsPanel.py
      2 import blue
      3 from carbonui.primitives.container import Container
      4 from eve.client.script.ui.control.entries.header import Header
      5 from eve.client.script.ui.control.entries.util import GetFromClass
      6 from eve.client.script.ui.control.eveScroll import Scroll
      7 from eve.client.script.ui.shared.killRights import KillRightsEntry
      8 from localization import GetByLabel
      9 
     10 class KillRightsPanel(Container):
     11     default_name = 'KillRightsPanel'
     12     __notifyevents__ = ['OnKillRightSold',
     13      'OnKillRightExpired',
     14      'OnKillRightSellCancel',
     15      'OnKillRightCreated',
     16      'OnKillRightUsed']
     17 
     18     def ApplyAttributes(self, attributes):
     19         Container.ApplyAttributes(self, attributes)
     20         sm.RegisterNotify(self)
     21         self.scroll = Scroll(parent=self, padding=(0, 4, 0, 4))
     22 
     23     def LoadPanel(self, *args):
     24         scrolllist = []
     25         killRights = sm.GetService('bountySvc').GetMyKillRights()
     26         currentTime = blue.os.GetWallclockTime()
     27         myKillRights = filter(lambda x: x.fromID == session.charid and currentTime < x.expiryTime, killRights)
     28         otherKillRights = filter(lambda x: x.toID == session.charid and currentTime < x.expiryTime, killRights)
     29         charIDsToPrime = set()
     30         for eachKR in myKillRights:
     31             charIDsToPrime.add(eachKR.toID)
     32 
     33         for eachKR in otherKillRights:
     34             charIDsToPrime.add(eachKR.fromID)
     35 
     36         cfg.eveowners.Prime(charIDsToPrime)
     37         if myKillRights:
     38             scrolllist.append(GetFromClass(Header, {'label': GetByLabel('UI/InfoWindow/CanKill'),
     39              'hideLines': True}))
     40             for killRight in myKillRights:
     41                 scrolllist.append(GetFromClass(KillRightsEntry, {'charID': killRight.toID,
     42                  'expiryTime': killRight.expiryTime,
     43                  'killRight': killRight,
     44                  'isMine': True}))
     45 
     46         if otherKillRights:
     47             scrolllist.append(GetFromClass(Header, {'label': GetByLabel('UI/InfoWindow/CanBeKilledBy'),
     48              'hideLines': True}))
     49             for killRight in otherKillRights:
     50                 scrolllist.append(GetFromClass(KillRightsEntry, {'charID': killRight.fromID,
     51                  'expiryTime': killRight.expiryTime,
     52                  'killRight': killRight,
     53                  'isMine': False}))
     54 
     55         self.scroll.sr.id = 'charsheet_killrights'
     56         self.scroll.Load(contentList=scrolllist, noContentHint=GetByLabel('UI/CharacterSheet/CharacterSheetWindow/KillsTabs/NoKillRightsFound'))
     57 
     58     def _ReloadPanel(self):
     59         if self.display:
     60             self.LoadPanel()
     61 
     62     def OnKillRightSold(self, killRightID):
     63         self._ReloadPanel()
     64 
     65     def OnKillRightExpired(self, killRightID):
     66         self._ReloadPanel()
     67 
     68     def OnKillRightSellCancel(self, killRightID):
     69         self._ReloadPanel()
     70 
     71     def OnKillRightCreated(self, killRightID, fromID, toID, expiryTime):
     72         self._ReloadPanel()
     73 
     74     def OnKillRightUsed(self, killRightID, toID):
     75         self._ReloadPanel()