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