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

systemWideEffects.py (1544B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\systemWideEffects.py
      2 
      3 
      4 class SystemWideEffects(object):
      5 
      6     def __init__(self):
      7         self._systemWideEffects = {}
      8 
      9     def ResetSystemWideEffects(self):
     10         self._systemWideEffects.clear()
     11 
     12     def OnSystemWideEffectStart(self, effectID, sourceItemID, sourceTypeID):
     13         if not self.hasAddedEffect(sourceItemID, sourceTypeID):
     14             self._systemWideEffects[sourceItemID, sourceTypeID] = {effectID}
     15         else:
     16             self._systemWideEffects[sourceItemID, sourceTypeID].add(effectID)
     17 
     18     def OnSystemWideEffectStop(self, effectID, sourceItemID, sourceTypeID):
     19         if (sourceItemID, sourceTypeID) in self._systemWideEffects:
     20             self._systemWideEffects[sourceItemID, sourceTypeID].discard(effectID)
     21             if self.hasNoEffects(sourceItemID, sourceTypeID):
     22                 self._systemWideEffects.pop((sourceItemID, sourceTypeID))
     23 
     24     def OnUpdateSystemWideEffectInfo(self, systemWideEffectsOnShip):
     25         self._systemWideEffects = systemWideEffectsOnShip
     26 
     27     def GetSystemWideEffectsOnShip(self):
     28         return self._systemWideEffects
     29 
     30     def hasAddedEffect(self, sourceItemID, sourceTypeID):
     31         return (sourceItemID, sourceTypeID) in self._systemWideEffects
     32 
     33     def hasNoEffects(self, sourceItemID, sourceTypeID):
     34         if (sourceItemID, sourceTypeID) not in self._systemWideEffects:
     35             return True
     36         return len(self._systemWideEffects[sourceItemID, sourceTypeID]) is 0