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

upgradeEntryController.py (7412B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\sov\sovHub\upgradeEntryController.py
      2 import carbonui
      3 import carbonui.text.styles
      4 import eveicon
      5 from carbon.common.script.util.format import FmtAmt
      6 from carbonui import TextColor
      7 from eve.client.script.ui import eveColor
      8 from inventorycommon.const import typeColonyReagentIce, typeColonyReagentLava
      9 from localization import GetByLabel
     10 from sovereignty.client.sovHub.hubUtil import GetTypeListTexturePathForType, GetTypeListHintForType
     11 
     12 class UpgradeEntryController(object):
     13 
     14     def __init__(self, installedUpgradeData, priority, hubController, functionalState):
     15         self._typeID = installedUpgradeData.typeID
     16         self.installedUpgradeData = installedUpgradeData
     17         self._priority = priority
     18         self._hubController = hubController
     19 
     20     @property
     21     def typeID(self):
     22         return self._typeID
     23 
     24     @property
     25     def isConfiguredOnline(self):
     26         return self.installedUpgradeData.isConfiguredOnline
     27 
     28     @property
     29     def isConfiguredOffline(self):
     30         return self.installedUpgradeData.isConfiguredOffline
     31 
     32     @property
     33     def isPowerStateFunctional(self):
     34         return self.installedUpgradeData.isPowerStateFunctional
     35 
     36     @property
     37     def itemID(self):
     38         return self.installedUpgradeData.itemID
     39 
     40     @property
     41     def upgradeKey(self):
     42         return self.installedUpgradeData.upgradeKey
     43 
     44     @property
     45     def priority(self):
     46         return self._priority
     47 
     48     @property
     49     def staticData(self):
     50         return self.installedUpgradeData.staticData
     51 
     52     @property
     53     def name(self):
     54         return self.installedUpgradeData.name
     55 
     56     @property
     57     def typeListTexture(self):
     58         return GetTypeListTexturePathForType(self.typeID)
     59 
     60     @property
     61     def typeListHint(self):
     62         return GetTypeListHintForType(self.typeID)
     63 
     64     @property
     65     def priorityText(self):
     66         return self.priority + 1
     67 
     68     @property
     69     def powerText(self):
     70         powerValue = self.powerValue
     71         if powerValue is None:
     72             return '-'
     73         if powerValue > 0:
     74             return GetByLabel('UI/Sovereignty/SovHub/Upgrades/ExtraAmount', amount=FmtAmt(self.staticData.power_produced))
     75         return FmtAmt(abs(self.staticData.power))
     76 
     77     @property
     78     def powerValue(self):
     79         if self.staticData:
     80             if self.staticData.power_produced:
     81                 return self.staticData.power_produced
     82             return -self.staticData.power
     83 
     84     @property
     85     def defaultPowerTextColor(self):
     86         if self.staticData:
     87             if self.staticData.power_produced:
     88                 return eveColor.SUCCESS_GREEN
     89         return TextColor.NORMAL
     90 
     91     @property
     92     def workforceText(self):
     93         workforceValue = self.workforceValue
     94         if workforceValue is None:
     95             return '-'
     96         if workforceValue > 0:
     97             return GetByLabel('UI/Sovereignty/SovHub/Upgrades/ExtraAmount', amount=FmtAmt(workforceValue))
     98         return FmtAmt(abs(workforceValue))
     99 
    100     @property
    101     def workforceValue(self):
    102         if self.staticData:
    103             if self.staticData.workforce_produced:
    104                 return self.staticData.workforce_produced
    105             return -self.staticData.workforce
    106 
    107     @property
    108     def defaultWorkforceTextColor(self):
    109         if self.staticData:
    110             if self.staticData.workforce_produced:
    111                 return eveColor.SUCCESS_GREEN
    112         return TextColor.NORMAL
    113 
    114     @property
    115     def upkeepText(self):
    116         if self.staticData:
    117             return GetByLabel('UI/Sovereignty/SovHub/Upgrades/ConsumptionPerHour', amount=FmtAmt(self.staticData.consumption_per_hour))
    118         return '-'
    119 
    120     @property
    121     def fuelTexturePath(self):
    122         if self.staticData:
    123             if self.fuelTypeID == typeColonyReagentIce:
    124                 return eveicon.superionic_ice
    125             if self.fuelTypeID == typeColonyReagentLava:
    126                 return eveicon.magmatic_gas
    127         return ''
    128 
    129     @property
    130     def fuelTypeID(self):
    131         return self.staticData.fuel_type_id
    132 
    133     @property
    134     def startupText(self):
    135         if self.staticData:
    136             return FmtAmt(self.staticData.startup_cost)
    137         return '-'
    138 
    139     @property
    140     def powerState(self):
    141         return self.installedUpgradeData.powerState
    142 
    143     @powerState.setter
    144     def powerState(self, value):
    145         self.installedUpgradeData.powerState = value
    146 
    147     @property
    148     def isLackingPower(self):
    149         return self.installedUpgradeData.isLackingPower
    150 
    151     @property
    152     def isLackingWorkforce(self):
    153         return self.installedUpgradeData.isLackingWorkforce
    154 
    155     @property
    156     def isLackingFuel(self):
    157         return self.installedUpgradeData.isLackingFuel
    158 
    159     @property
    160     def isLackingStartupFuel(self):
    161         return self.installedUpgradeData.isLackingStartupFuel
    162 
    163     @property
    164     def isLackingSomething(self):
    165         return bool(self.installedUpgradeData.lackingResources)
    166 
    167     def GetOnlineStateTextAndHints(self):
    168         isConfigOnline = self.isConfiguredOnline
    169         upgradeStateText = self.installedUpgradeData.upgradeStateText
    170         if not isConfigOnline:
    171             return (upgradeStateText, GetByLabel('Tooltips/StructureUI/SovHubOfflineUpgrade'))
    172         if self.installedUpgradeData.isPowerStateFunctional:
    173             return (upgradeStateText, GetByLabel('Tooltips/StructureUI/SovHubOnlineUpgrade'))
    174         hint = ''
    175         if self.installedUpgradeData.isInPendingPowerState:
    176             if self.installedUpgradeData.isLackingStartupFuel:
    177                 hint = GetByLabel('Tooltips/StructureUI/SovHubRedFuelState')
    178         elif self.installedUpgradeData.isInLowPowerState:
    179             if len(self.installedUpgradeData.lackingResources) > 1:
    180                 hint = GetByLabel('Tooltips/StructureUI/SovHubRedResourceState')
    181             elif self.installedUpgradeData.isLackingPower:
    182                 hint = GetByLabel('Tooltips/StructureUI/SovHubRedPowerState')
    183             elif self.installedUpgradeData.isLackingWorkforce:
    184                 hint = GetByLabel('Tooltips/StructureUI/SovHubRedWorkforceState')
    185         text = '<color=%s>%s</color>' % (eveColor.DANGER_RED_HEX, upgradeStateText)
    186         return (text, hint)
    187 
    188     def GetEntryTextColor(self):
    189         return self._GetElementColor(self.installedUpgradeData.isInRestrictedPowerState)
    190 
    191     def GetPowerColor(self, defaultColor = None):
    192         defaultColor = self.defaultPowerTextColor
    193         return self._GetElementColor(self.isLackingPower, defaultColor)
    194 
    195     def GetWorkforceColor(self, defaultColor = None):
    196         defaultColor = self.defaultWorkforceTextColor
    197         return self._GetElementColor(self.isLackingWorkforce, defaultColor)
    198 
    199     def GetReagentColor(self, defaultColor = None):
    200         return self._GetElementColor(self.isLackingFuel, defaultColor)
    201 
    202     def GetReagentStartupColor(self, defaultColor = None):
    203         return self._GetElementColor(self.isLackingStartupFuel, defaultColor)
    204 
    205     def _GetElementColor(self, isLacking, defaultColor = None):
    206         if isLacking:
    207             return eveColor.DANGER_RED
    208         return defaultColor or carbonui.text.styles.TextBody.default_color
    209 
    210     def DeleteUpgrade(self, *args):
    211         self._hubController.DeleteUpgrade(self.typeID, self.upgradeKey, self.itemID)
    212 
    213     def GetRemoveTexturePath(self):
    214         if self.upgradeKey:
    215             return eveicon.trashcan
    216         return eveicon.close