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

incursionSystemContentPiece.py (2808B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\contentPieces\incursionSystemContentPiece.py
      2 from eve.client.script.ui.shared.agencyNew import agencyConst
      3 from eve.client.script.ui.shared.agencyNew.contentPieces.baseContentPiece import BaseContentPiece
      4 from eve.client.script.ui.shared.agencyNew.contentPieces.incursionSiteContentPiece import IncursionSiteContentPiece
      5 from eve.client.script.ui.shared.incursions.incursionConst import SCENETYPE_DATA
      6 from eve.common.lib import appConst
      7 from localization import GetByLabel
      8 from talecommon.const import scenesTypes
      9 
     10 class IncursionSystemContentPiece(BaseContentPiece):
     11     contentType = agencyConst.CONTENTTYPE_INCURSIONS
     12 
     13     def __init__(self, sceneType = None, hasFinalEncounter = False, *args, **kwargs):
     14         super(IncursionSystemContentPiece, self).__init__(*args, **kwargs)
     15         self.sceneType = sceneType
     16         self.contentPieces = self._ConstructSiteContentPieces()
     17         self.hasFinalEncounter = hasFinalEncounter
     18 
     19     def HasFinalEncounter(self):
     20         return self.sceneType == scenesTypes.headquarters and self.hasFinalEncounter
     21 
     22     def GetSiteContentPieces(self):
     23         return self.contentPieces
     24 
     25     def _ConstructSiteContentPieces(self):
     26         if self.solarSystemID == session.solarsystemid2:
     27             return [ self.ConstructContentPieceIncursionSite(slimItem, ball) for slimItem, ball in self.GetAllIncursionSites() ]
     28         else:
     29             return []
     30 
     31     def ConstructContentPieceIncursionSite(self, slimItem, ball):
     32         return IncursionSiteContentPiece(solarSystemID=session.solarsystemid2, ownerID=appConst.factionCONCORDAssembly, enemyOwnerID=slimItem.ownerID, itemID=slimItem.itemID, locationID=slimItem.itemID, slimItem=slimItem, ball=ball)
     33 
     34     def GetAllIncursionSites(self):
     35         bp = sm.GetService('michelle').GetBallpark()
     36         ret = []
     37         if not bp:
     38             return ret
     39         for slimItem in bp.slimItems.values():
     40             archetypeID = getattr(slimItem, 'archetypeID', None)
     41             if archetypeID and archetypeID in appConst.dunArchetypesIncursionSites:
     42                 ret.append((slimItem, bp.GetBall(slimItem.itemID)))
     43 
     44         return ret
     45 
     46     def GetMenu(self):
     47         return sm.GetService('menu').GetMenuFromItemIDTypeID(self.solarSystemID, appConst.typeSolarSystem)
     48 
     49     def GetSceneType(self):
     50         return self.sceneType
     51 
     52     def GetSceneTypeName(self):
     53         return GetByLabel(SCENETYPE_DATA[self.sceneType].subTitle)
     54 
     55     def GetSceneTypeHint(self):
     56         return GetByLabel(SCENETYPE_DATA[self.sceneType].hint)
     57 
     58     def GetSceneTypeIcon(self):
     59         return SCENETYPE_DATA[self.sceneType].severityIcon
     60 
     61     def GetCardID(self):
     62         return (self.contentType, self.itemID, self.solarSystemID)