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

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]