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