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

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