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

factionalWarfareSystemContentPiece.py (6413B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\contentPieces\factionalWarfareSystemContentPiece.py
      2 from carbonui.util.bunch import Bunch
      3 from eve.client.script.ui.shared.agencyNew import agencyConst
      4 from eve.client.script.ui.shared.agencyNew.contentPieces.baseContentPiece import BaseContentPiece
      5 from eve.client.script.ui.shared.agencyNew.contentPieces.factionalWarfareSiteContentPiece import FactionalWarfareSiteContentPiece
      6 from eve.client.script.ui.shared.agencyNew.ui import agencyUIConst
      7 from eve.common.lib import appConst
      8 from eve.common.script.sys.idCheckers import IsCorporation
      9 from eve.common.script.util.facwarCommon import IsSameFwFaction
     10 from factionwarfare.client.text import GetSystemCaptureStatusText, GetSystemCaptureStatusHint
     11 from fwwarzone.client.dashboard.const import ADJACENCY_TO_LABEL_TEXT, ADJACENCY_TO_LABEL_SYSTEM_TEXT
     12 from fwwarzone.client.util import GetAttackerDefenderColors, GetSystemCaptureStatusColorFromVp
     13 from localization import GetByLabel
     14 
     15 class FactionalWarfareSystemContentPiece(BaseContentPiece):
     16     contentType = agencyConst.CONTENTTYPE_FACTIONALWARFARESYSTEM
     17 
     18     def __init__(self, myFactionID = None, dungeonInstances = None, **kwargs):
     19         super(FactionalWarfareSystemContentPiece, self).__init__(**kwargs)
     20         self.facWarSvc = sm.GetService('facwar')
     21         self.fwVictoryPointSvc = sm.GetService('fwVictoryPointSvc')
     22         self.fwWarzoneSvc = sm.GetService('fwWarzoneSvc')
     23         self.myFactionID = myFactionID
     24         self.contentPieces = self._ConstructFwSiteContentPieces(dungeonInstances)
     25 
     26     def _ConstructFwSiteContentPieces(self, dungeonInstances):
     27         return filter(None, [ self.ConstructFwSiteContentPiece(site) for site in dungeonInstances ])
     28 
     29     def ConstructFwSiteContentPiece(self, site):
     30         if self.ownerID != site.factionID:
     31             return None
     32         isFriendlySite = IsSameFwFaction(self.myFactionID, site.factionID)
     33         return FactionalWarfareSiteContentPiece(solarSystemID=self.solarSystemID, ownerID=site.factionID, enemyOwnerID=site.factionID if not isFriendlySite else None, itemID=site.siteID, locationID=site.siteID, site=site, dungeonNameID=site.dungeonNameID, position=site.position)
     34 
     35     def GetExpandedTitle(self):
     36         return '%s - %s' % (super(FactionalWarfareSystemContentPiece, self).GetTitle(), self.facWarSvc.GetSystemCaptureStatusTxt(self.solarSystemID))
     37 
     38     def GetExpandedSubtitle(self):
     39         return GetByLabel('UI/Agency/FacWarSystemLevel', level=self.facWarSvc.GetSolarSystemUpgradeLevel(self.solarSystemID))
     40 
     41     def GetBlurbText(self):
     42         return GetByLabel('UI/Agency/Blurbs/FactionalWarfareSystem')
     43 
     44     def _GetButtonState(self):
     45         return agencyUIConst.ACTION_SETDESTINATION
     46 
     47     def GetCardID(self):
     48         return (self.contentType, self.solarSystemID)
     49 
     50     def GetHint(self):
     51         text = '<b>%s</b>' % self.GetTitle()
     52         text += '<br>%s' % GetByLabel('UI/Map/StarModeHandler/militiaSystemStatus', name=cfg.eveowners.Get(self.ownerID).name, status=self.GetSystemStatusText())
     53         numJumps = self.GetSolarSystemAndSecurityAndNumJumpsText()
     54         if numJumps:
     55             text += '<br>%s' % numJumps
     56         return text
     57 
     58     def GetSystemUpgradeBenefitsForLevel(self, level = None):
     59         if not level:
     60             level = self.GetSystemUpgradeLevel()
     61         return list(self.facWarSvc.GetSystemUpgradeLevelBenefits(level)[:])
     62 
     63     def GetSystemUpgradeLevel(self):
     64         return self.facWarSvc.GetSolarSystemUpgradeLevel(self.solarSystemID)
     65 
     66     def GetCurrentLPsInSystem(self):
     67         return self.facWarSvc.GetSolarSystemLPs(self.solarSystemID)
     68 
     69     def GetLPRequiredForNextSystemLevel(self):
     70         currentLevel = self.GetSystemUpgradeLevel()
     71         nextLevel = currentLevel + 1 if currentLevel < appConst.facwarSolarSystemMaxLPPool else appConst.facWarSolarSystemMaxLevel
     72         return appConst.facwarSolarSystemUpgradeThresholds[nextLevel]
     73 
     74     def GetLPRequiredForLastSystemLevel(self):
     75         currentLevel = self.GetSystemUpgradeLevel()
     76         return appConst.facwarSolarSystemUpgradeThresholds[currentLevel]
     77 
     78     def GetSystemCaptureStatusHint(self):
     79         victoryPointState = self.fwVictoryPointSvc.GetVictoryPointState(self.solarSystemID)
     80         return GetSystemCaptureStatusHint(victoryPointState)
     81 
     82     def GetSystemStatusText(self):
     83         victoryPointState = self.fwVictoryPointSvc.GetVictoryPointState(self.solarSystemID)
     84         return GetSystemCaptureStatusText(victoryPointState)
     85 
     86     def GetSystemCaptureStatusColor(self):
     87         victoryPointState = self.fwVictoryPointSvc.GetVictoryPointState(self.solarSystemID)
     88         textColor = GetSystemCaptureStatusColorFromVp(victoryPointState)
     89         return textColor
     90 
     91     def GetAdjacencyText(self, longText = False):
     92         adjacencyState = self.GetAdjacencyState()
     93         if adjacencyState:
     94             if longText:
     95                 labelDict = ADJACENCY_TO_LABEL_SYSTEM_TEXT
     96             else:
     97                 labelDict = ADJACENCY_TO_LABEL_TEXT
     98             return labelDict[adjacencyState]
     99         return ''
    100 
    101     def GetAdjacencyState(self):
    102         fwOccupationState = self.fwWarzoneSvc.GetOccupationState(self.solarSystemID)
    103         if fwOccupationState:
    104             return fwOccupationState.adjacencyState
    105 
    106     def GetAttackerDefenderColors(self):
    107         return GetAttackerDefenderColors(self.solarSystemID)
    108 
    109     def GetVictoryPoints(self):
    110         victoryPointState = self.fwVictoryPointSvc.GetVictoryPointState(self.solarSystemID)
    111         return victoryPointState.score
    112 
    113     def GetCardSortValue(self):
    114         return (-self.GetVictoryPoints(), self.GetJumpsToSelfFromCurrentLocation())
    115 
    116     def GetOwnerTypeID(self, ownerID):
    117         if IsCorporation(ownerID):
    118             return appConst.typeCorporation
    119         return appConst.typeFaction
    120 
    121     def GetDragData(self):
    122         dragData = Bunch()
    123         dragData.__guid__ = 'xtriui.ListSurroundingsBtn'
    124         dragData.itemID = self.itemID
    125         dragData.typeID = self.typeID
    126         dragData.label = cfg.evelocations.Get(self.solarSystemID).name
    127         return [dragData]
    128 
    129     def GetContestedFraction(self):
    130         victoryPointState = self.fwVictoryPointSvc.GetVictoryPointState(self.solarSystemID)
    131         if victoryPointState:
    132             value = victoryPointState.contestedFraction
    133         else:
    134             value = 0.0
    135         return value