attribute.py (1383B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dbuff\common\attribute.py 2 from dogma.attributes import AttributeInterface 3 4 class DynamicBuffAttribute(AttributeInterface): 5 __slots__ = ['outgoingModifiers', 'item', 'outputValue'] 6 7 def __init__(self, outputValue): 8 self.outputValue = outputValue 9 self.outgoingModifiers = set() 10 self.item = None 11 12 def __str__(self): 13 return 'DynamicBuffAttribute(%s) -> %s outputs' % (self.outputValue, len(self.outgoingModifiers)) 14 15 def AddOutgoingModifier(self, op, outgoingAttrib): 16 self.outgoingModifiers.add((op, outgoingAttrib)) 17 18 def RemoveOutgoingModifier(self, op, outgoingAttrib): 19 try: 20 self.outgoingModifiers.remove((op, outgoingAttrib)) 21 except KeyError: 22 pass 23 24 def GetOutgoingModifiers(self): 25 return list(self.outgoingModifiers) 26 27 def CheckIntegrity(self): 28 return True 29 30 def GetBaseValue(self): 31 return self.outputValue 32 33 def GetValue(self): 34 return self.outputValue 35 36 def SetOutputValue(self, value): 37 if value is None: 38 raise TypeError('Cannot set dbuff output to None') 39 if value == self.outputValue: 40 return 41 self.outputValue = value 42 for op, outgoing in self.outgoingModifiers: 43 outgoing.MarkDirty()