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

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)