targetingPanel.py (6341B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fittingScreen\fittingPanels\targetingPanel.py 2 import math 3 import dogma.data as dogma_data 4 from dogma import const as dogmaConst 5 from eve.client.script.ui.shared.fittingScreen.fittingPanels.attributePanel import AttributePanel 6 from eve.client.script.ui.shared.fittingScreen.fittingUtil import GetColoredText 7 from localization import GetByLabel, GetByMessageID 8 textureByAttributeID = {dogmaConst.attributeScanResolution: 'res:/UI/Texture/classes/Fitting/StatsIcons/scanResolution.png', 9 dogmaConst.attributeSignatureRadius: 'res:/UI/Texture/classes/Fitting/StatsIcons/signatureRadius.png', 10 dogmaConst.attributeMaxLockedTargets: 'res:/UI/Texture/classes/Fitting/StatsIcons/maximumLockedTargets.png', 11 dogmaConst.attributeScanGravimetricStrength: 'res:/UI/Texture/classes/Fitting/StatsIcons/sensorStrengthCaldari.png', 12 dogmaConst.attributeScanRadarStrength: 'res:/UI/Texture/classes/Fitting/StatsIcons/sensorStrengthAmarr.png', 13 dogmaConst.attributeScanMagnetometricStrength: 'res:/UI/Texture/classes/Fitting/StatsIcons/sensorStrengthGallente.png', 14 dogmaConst.attributeScanLadarStrength: 'res:/UI/Texture/classes/Fitting/StatsIcons/sensorStrengthMinmatar.png'} 15 16 class TargetingPanel(AttributePanel): 17 default_iconSize = 20 18 attributesToShow = [('sensorStrength', dogmaConst.attributeScanResolution), (dogmaConst.attributeSignatureRadius, dogmaConst.attributeMaxLockedTargets)] 19 20 def LoadPanel(self, initialLoad = False): 21 AttributePanel.LoadPanel(self, initialLoad) 22 shipItem = self.dogmaLocation.GetShipItem() 23 if not shipItem: 24 return 25 activeShip = self.dogmaLocation.GetCurrentShipID() 26 sensorStrengthAttributeID, val = self.GetSensorStrengthAttribute(activeShip) 27 parentGrid = self.GetValueParentGrid() 28 for eachLine in self.attributesToShow: 29 for eachAttributeID in eachLine: 30 if eachAttributeID == 'sensorStrength': 31 each = sensorStrengthAttributeID 32 else: 33 each = eachAttributeID 34 attribute = dogma_data.get_attribute(each) 35 texturePath = textureByAttributeID.get(each) 36 self.AddAttributeCont(attribute, parentGrid, eachAttributeID, texturePath=texturePath) 37 38 AttributePanel.FinalizePanelLoading(self, initialLoad) 39 40 def GetSensorStrengthAttribute(self, shipID): 41 if session.shipid == shipID: 42 return sm.GetService('godma').GetStateManager().GetSensorStrengthAttribute(shipID) 43 else: 44 dogmaLocation = sm.GetService('fittingSvc').GetCurrentDogmaLocation() 45 return dogmaLocation.GetSensorStrengthAttribute(shipID) 46 47 def UpdateTargetingPanel(self): 48 self.LoadPanelIfNeeded() 49 self.SetTargetingHeader() 50 self.SetScanResolutionText() 51 self.SetMaxTargetsText() 52 self.SetSignatureText() 53 self.SetSensorStrengthElements() 54 55 def SetTargetingHeader(self): 56 maxTargetRangeInfo = self.controller.GetMaxTargetRange() 57 maxRange = maxTargetRangeInfo.value / 1000.0 58 text = GetByLabel('UI/Fitting/FittingWindow/TargetingHeader', maxRange=maxRange) 59 coloredText = GetColoredText(isBetter=maxTargetRangeInfo.isBetterThanBefore, text=text) 60 headerHint = GetByLabel('UI/Fitting/FittingWindow/TargetingHeaderHint') 61 self.SetStatusText(coloredText, headerHint) 62 63 def SetScanResolutionText(self): 64 scanResolutionInfo = self.controller.GetScanResolution() 65 text = GetByLabel('UI/Fitting/FittingWindow/ScanResolution', resolution=int(scanResolutionInfo.value)) 66 coloredText = GetColoredText(isBetter=scanResolutionInfo.isBetterThanBefore, text=text) 67 self.SetLabel(scanResolutionInfo.attributeID, coloredText) 68 69 def SetMaxTargetsText(self): 70 maxTargetingInfo = self.controller.GetMaxTargets() 71 maxTargets = math.ceil(maxTargetingInfo.value) 72 text = GetByLabel('UI/Fitting/FittingWindow/MaxLockedTargets', maxTargets=int(maxTargets)) 73 coloredText = GetColoredText(isBetter=maxTargetingInfo.isBetterThanBefore, text=text) 74 self.SetLabel(maxTargetingInfo.attributeID, coloredText) 75 76 def SetSignatureText(self): 77 signatureRadiusInfo = self.controller.GetSignatureRadius() 78 text = GetByLabel('UI/Fitting/FittingWindow/TargetingRange', range=signatureRadiusInfo.value) 79 coloredText = GetColoredText(isBetter=signatureRadiusInfo.isBetterThanBefore, text=text) 80 self.SetLabel(signatureRadiusInfo.attributeID, coloredText) 81 82 def SetSensorStrengthElements(self): 83 sensorStrenghtInfos = {dogmaConst.attributeScanRadarStrength: self.controller.GetScanRadarStrength(), 84 dogmaConst.attributeScanMagnetometricStrength: self.controller.GetScanMagnetometricStrength(), 85 dogmaConst.attributeScanGravimetricStrength: self.controller.GetScanGravimetricStrength(), 86 dogmaConst.attributeScanLadarStrength: self.controller.GetScanLadarStrength()} 87 maxSensorStrenghtAttributeID, maxSensorStrengthInfo = (None, None) 88 for attributeID, strengthInfo in sensorStrenghtInfos.iteritems(): 89 if maxSensorStrengthInfo is None or strengthInfo.value > maxSensorStrengthInfo.value: 90 maxSensorStrengthInfo = strengthInfo 91 maxSensorStrenghtAttributeID = attributeID 92 93 text = GetByLabel('UI/Fitting/FittingWindow/SensorStrength', points=maxSensorStrengthInfo.value) 94 coloredText = GetColoredText(isBetter=maxSensorStrengthInfo.isBetterThanBefore, text=text) 95 self.SetLabel('sensorStrength', coloredText) 96 maxSensor = dogma_data.get_attribute(maxSensorStrenghtAttributeID) 97 iconNum = textureByAttributeID.get(maxSensorStrenghtAttributeID) 98 self.LoadIcon('sensorStrength', iconNum) 99 self.SetSensorTooltip(maxSensor) 100 101 def SetSensorTooltip(self, maxSensor): 102 cont = self.statsContsByIdentifier.get('sensorStrength', None) 103 if cont is not None and cont.tooltipPanelClassInfo is not None: 104 tooltipTitleID = maxSensor.tooltipTitleID 105 if tooltipTitleID: 106 tooltipTitle = GetByMessageID(tooltipTitleID) 107 cont.tooltipPanelClassInfo.headerText = tooltipTitle