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

incomingDbuffTracker.py (1116B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dbuff\client\incomingDbuffTracker.py
      2 import signals
      3 
      4 class IncomingDbuffTracker(object):
      5     __notifyevents__ = ['OnSessionChanged']
      6     incomingDbuffs = {}
      7     signalOnDbuffStateUpdate = None
      8 
      9     def __init__(self):
     10         sm.RegisterNotify(self)
     11         self.signalOnDbuffStateUpdate = signals.Signal(signalName='signalOnDbuffStateUpdate')
     12         self._ResetState()
     13 
     14     def OnSessionChanged(self, isRemote, sess, change):
     15         if 'shipid' in change or 'locationid' in change or 'structureid' in change:
     16             self._ResetState()
     17 
     18     def OnDbuffUpdated(self, shipID, dbuffState):
     19         if shipID != session.shipid:
     20             return
     21         if dbuffState:
     22             self._SetIncomingBuffs({dbuffCollectionID:(value, expiryTime) for dbuffCollectionID, (value, expiryTime) in dbuffState})
     23         else:
     24             self._ResetState()
     25 
     26     def _ResetState(self):
     27         self._SetIncomingBuffs({})
     28 
     29     def _SetIncomingBuffs(self, state):
     30         self.incomingDbuffs = state
     31         self.signalOnDbuffStateUpdate()