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