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