itemAttributeFactory.py (2135B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dogma\attributes\itemAttributeFactory.py 2 from dogma.const import attributeSkillLevel, attributeHeatHi, attributeHeatLow, attributeHeatMed, attributeSecurityModifier, attributeNextActivationTime 3 import weakref 4 from dogma.attributes import Attribute, SecurityModifierAttribute, StackingNurfedAttribute, HeatAttribute, ChargedAttribute, SkillLevelAttribute, TiDiSensitiveAttribute 5 from dogma.data import get_attribute 6 from dogma.data import get_charge_recharge_time_attributes_by_id 7 from dogma.identity import get_safe_dogma_identity 8 9 class NewItemAttributeFactory: 10 11 def __init__(self, item, dogmaLocation, baseAttributes): 12 self.dogmaLocation = dogmaLocation 13 self.attributes = baseAttributes 14 self.item = weakref.proxy(item) 15 16 def GetAttributeInstance(self, attrID): 17 attrID = get_safe_dogma_identity(attrID) 18 staticAttr = get_attribute(attrID) 19 baseValue = None 20 if self.attributes and attrID in self.attributes: 21 baseValue = self.attributes[attrID] 22 if attrID == attributeSkillLevel: 23 return SkillLevelAttribute(attrID, baseValue, self.item, self.dogmaLocation, staticAttr) 24 elif attrID in get_charge_recharge_time_attributes_by_id(): 25 return ChargedAttribute(attrID, baseValue, self.item, self.dogmaLocation, staticAttr) 26 elif attrID in [attributeHeatHi, attributeHeatMed, attributeHeatLow]: 27 return HeatAttribute(attrID, baseValue, self.item, self.dogmaLocation, staticAttr) 28 elif not staticAttr.stackable: 29 return StackingNurfedAttribute(attrID, baseValue, self.item, self.dogmaLocation, staticAttr) 30 elif attrID == attributeSecurityModifier: 31 return SecurityModifierAttribute(attrID, self.item, self.dogmaLocation, staticAttr) 32 elif attrID == attributeNextActivationTime: 33 return TiDiSensitiveAttribute(attrID, baseValue, self.item, self.dogmaLocation, staticAttr) 34 else: 35 return Attribute(attrID, baseValue, self.item, self.dogmaLocation, staticAttr)