panelSov.py (5025B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\info\panels\panelSov.py 2 from carbonui.primitives.container import Container 3 from eve.client.script.ui.control.entries.header import Header 4 from eve.client.script.ui.control.entries.util import GetFromClass 5 from eve.client.script.ui.control.eveScroll import Scroll 6 from eve.common.lib import appConst as const 7 from inventorycommon.const import typeInfrastructureHub 8 from localization import GetByLabel 9 from sovDashboard import GetSovStructureInfoByTypeID 10 from sovDashboard.devIndexHints import SetNormalBoxHint, SetStrategyHint 11 from sovDashboard.sovStatusEntries import SovSystemStatusEntry, SovStructureStatusEntry, SovAllianceEntry 12 13 class PanelSov(Container): 14 15 def ApplyAttributes(self, attributes): 16 Container.ApplyAttributes(self, attributes) 17 self.solarsystemID = attributes.solarsystemID 18 self.sovSvc = sm.GetService('sov') 19 20 def Load(self): 21 self.Flush() 22 self.scroll = Scroll(name='sovScroll', parent=self, padding=const.defaultPadding) 23 contentList = [] 24 sovStructuresInfo = self.sovSvc.GetSovStructuresInfoForSolarSystem(self.solarsystemID) 25 structureInfosByTypeID = GetSovStructureInfoByTypeID(sovStructuresInfo) 26 hubInfo = structureInfosByTypeID[typeInfrastructureHub] 27 isCapital = hubInfo.get('isCapital', False) 28 sovInfo = self.sovSvc.GetSovInfoForSolarsystem(self.solarsystemID, isCapital) 29 devIndices = self.sovSvc.GetDevelopmentIndicesForSystem(self.solarsystemID) 30 sovAllianceEntry = GetFromClass(SovAllianceEntry, {'sovHolderID': sovInfo.sovHolderID}) 31 contentList.append(sovAllianceEntry) 32 headerEntry = GetFromClass(Header, {'label': GetByLabel('UI/Sovereignty/SystemSovStatus')}) 33 contentList.append(headerEntry) 34 indexAndMultiplierInfo = self.GetIndexAndMultiplierInfo(sovInfo, isCapital, devIndices) 35 for entryData in indexAndMultiplierInfo: 36 statusEntry = GetFromClass(SovSystemStatusEntry, entryData) 37 contentList.append(statusEntry) 38 39 if sovStructuresInfo: 40 headerEntry2 = GetFromClass(Header, {'label': GetByLabel('UI/Sovereignty/StructureSovStatus')}) 41 contentList.append(headerEntry2) 42 for structureTypeID, structureInfo in structureInfosByTypeID.iteritems(): 43 if not structureInfo.get('itemID', None): 44 continue 45 structureEntry = GetFromClass(SovStructureStatusEntry, {'structureInfo': structureInfo}) 46 contentList.append(structureEntry) 47 48 self.scroll.Load(contentList=contentList) 49 50 def GetIndexAndMultiplierInfo(self, sovInfo, isCapital, devIndices): 51 if isCapital: 52 defenseBonusTexture = 'res:/UI/Texture/classes/Sov/bonusShieldCapital16.png' 53 else: 54 defenseBonusTexture = 'res:/UI/Texture/classes/Sov/bonusShield16.png' 55 defenseBonusInfo = {'indexID': None, 56 'statusNameText': GetByLabel('UI/Sovereignty/ActivityDefenseMultiplier'), 57 'texturePath': defenseBonusTexture, 58 'currentIndex': None, 59 'bonusMultiplier': sovInfo.defenseMultiplier, 60 'extraHelpLabelPath': 'UI/Sovereignty/DefenseBonusExplanation', 61 'isCapital': isCapital} 62 strategicInfo = {'indexID': const.attributeDevIndexSovereignty, 63 'statusNameText': GetByLabel('UI/Sovereignty/StrategicIndex'), 64 'texturePath': 'res:/UI/Texture/classes/Sov/strategicIndex.png', 65 'currentIndex': sovInfo.strategicIndexLevel, 66 'bonusMultiplier': None, 67 'boxTooltipFunc': SetStrategyHint, 68 'extraHelpLabelPath': 'UI/Sovereignty/StrategicIndexExplanation', 69 'partialValue': sovInfo.strategicIndexRemainder} 70 militaryInfo = {'indexID': const.attributeDevIndexMilitary, 71 'statusNameText': GetByLabel('UI/Sovereignty/MilitaryIndex'), 72 'texturePath': 'res:/UI/Texture/classes/Sov/militaryIndex.png', 73 'currentIndex': sovInfo.militaryIndexLevel, 74 'bonusMultiplier': None, 75 'boxTooltipFunc': SetNormalBoxHint, 76 'extraHelpLabelPath': 'UI/Sovereignty/MilitaryIndexExplanation', 77 'partialValue': sovInfo.militaryIndexRemainder, 78 'devIndex': devIndices.get(const.attributeDevIndexMilitary, None)} 79 industryInfo = {'indexID': const.attributeDevIndexIndustrial, 80 'statusNameText': GetByLabel('UI/Sovereignty/IndustryIndex'), 81 'texturePath': 'res:/UI/Texture/classes/Sov/industryIndex.png', 82 'currentIndex': sovInfo.industrialIndexLevel, 83 'bonusMultiplier': None, 84 'boxTooltipFunc': SetNormalBoxHint, 85 'extraHelpLabelPath': 'UI/Sovereignty/IndustryIndexExplanation', 86 'partialValue': sovInfo.industrialIndexRemainder, 87 'devIndex': devIndices.get(const.attributeDevIndexIndustrial, None)} 88 return [defenseBonusInfo, 89 strategicInfo, 90 militaryInfo, 91 industryInfo]