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

fittingUtil.py (2604B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fittingScreen\fittingUtil.py
      2 import dogma.const
      3 import dogma.data
      4 import eveformat
      5 import evetypes
      6 from eve.client.script.ui import eveColor
      7 from eve.client.script.ui.shared.fittingScreen.ghostFittingUtil import GetOriganlItemIDFromItemKey
      8 from inventorycommon.const import categoryCharge, flagAutoFit, groupFrequencyCrystal
      9 from shipfitting.fittingStuff import GetSlotListForTypeID
     10 from utillib import KeyVal
     11 PASSIVESHIELDRECHARGE = 0
     12 SHIELDBOOSTRATEACTIVE = 1
     13 ARMORREPAIRRATEACTIVE = 2
     14 HULLREPAIRRATEACTIVE = 3
     15 
     16 def GetColoredText(isBetter, text):
     17     if isBetter is None:
     18         return text
     19     if isBetter:
     20         color = eveColor.SUCCESS_GREEN
     21     else:
     22         color = eveColor.DANGER_RED
     23     return eveformat.color(text, color)
     24 
     25 
     26 def IsEffectActivatable(isDefault, effectInfo):
     27     return isDefault and effectInfo.effectCategory in (dogma.const.dgmEffActivation, dogma.const.dgmEffTarget) and effectInfo.effectName != 'online'
     28 
     29 
     30 def GetDefaultAndOverheatEffectForType(typeID):
     31     possibleEffects = dogma.data.get_type_effects(typeID)
     32     typeEffectInfo = KeyVal(defaultEffect=None, overloadEffect=None, isActivatable=False)
     33     for typeEffect in possibleEffects:
     34         effect = dogma.data.get_effect(typeEffect.effectID)
     35         if typeEffect.isDefault:
     36             typeEffectInfo.isActivatable = IsEffectActivatable(typeEffect.isDefault, effect)
     37             typeEffectInfo.defaultEffect = effect
     38         if effect.effectCategory == dogma.const.dgmEffOverload:
     39             typeEffectInfo.overloadEffect = effect
     40 
     41     return typeEffectInfo
     42 
     43 
     44 def IsCharge(typeID):
     45     return evetypes.GetCategoryID(typeID) in (categoryCharge, groupFrequencyCrystal)
     46 
     47 
     48 allPowerEffects = (dogma.const.effectHiPower,
     49  dogma.const.effectMedPower,
     50  dogma.const.effectLoPower,
     51  dogma.const.effectSubSystem,
     52  dogma.const.effectRigSlot,
     53  dogma.const.effectServiceSlot)
     54 
     55 def GetFlagIdToUse(dogmaStaticMgr, typeID, flag, flagsInUse):
     56     flagsForType = GetSlotListForTypeID(dogmaStaticMgr, typeID)
     57     if flag not in flagsForType:
     58         return None
     59     if flag != flagAutoFit:
     60         return flag
     61     return GetNextAvailableFlag(dogmaStaticMgr, typeID, flagsInUse)
     62 
     63 
     64 def GetNextAvailableFlag(dogmaStaticMgr, typeID, flagsInUse):
     65     flagsForType = GetSlotListForTypeID(dogmaStaticMgr, typeID)
     66     for x in flagsForType:
     67         if x not in flagsInUse:
     68             return x
     69 
     70 
     71 def GetOriginalItemID(itemID):
     72     if isinstance(itemID, basestring):
     73         return GetOriganlItemIDFromItemKey(itemID)
     74     return itemID