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

contentProviderPirateInsurgenceSystems.py (3715B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\contentProviders\contentProviderPirateInsurgenceSystems.py
      2 from eve.client.script.ui.shared.agencyNew import agencyConst, agencyFilters
      3 from eve.client.script.ui.shared.agencyNew.contentGroups import contentGroupConst
      4 from eve.client.script.ui.shared.agencyNew.contentPieces.pirateInsurgencySystemContentPiece import PirateInsurgencySystemContentPiece
      5 from eve.client.script.ui.shared.agencyNew.contentProviders.baseContentProviderCosmicAnomalies import BaseContentProviderCosmicAnomalies
      6 from inventorycommon import const as invConst
      7 
      8 class ContentProviderPirateInsurgenceSystems(BaseContentProviderCosmicAnomalies):
      9     contentType = agencyConst.CONTENTTYPE_PIRATEINSURGENCESYSTEM
     10     contentGroup = contentGroupConst.contentGroupPirateIncursions
     11     DUNGEON_TRACKER_ID = 'pirate_insurgency'
     12 
     13     def __init__(self):
     14         super(ContentProviderPirateInsurgenceSystems, self).__init__()
     15         self.fwWarzoneSvc = sm.GetService('fwWarzoneSvc')
     16         self.corruptionSuppressionSvc = sm.GetService('corruptionSuppressionSvc')
     17         self.insurgencyCampaignSvc = sm.GetService('insurgencyCampaignSvc')
     18 
     19     def ConstructContentPiece(self, solarSystemID, dungeonInstances):
     20         occupierID = self.fwWarzoneSvc.GetSystemOccupier(solarSystemID)
     21         pirateFactionID = self.insurgencyCampaignSvc.GetSolarsystemPirateFactionForCampaign(solarSystemID)
     22         isFobSystem = self.insurgencyCampaignSvc.IsInsurgencyOriginSolarsystemID(solarSystemID)
     23         return PirateInsurgencySystemContentPiece(solarSystemID=solarSystemID, typeID=invConst.typeSolarSystem, itemID=solarSystemID, ownerID=occupierID, dungeonInstances=dungeonInstances, pirateFactionID=pirateFactionID, isFobSystem=isFobSystem)
     24 
     25     def CheckCriteria(self, solarSystemID):
     26         if not self.CheckDistanceCriteria(solarSystemID):
     27             return False
     28         if not self.CheckCriteriaCorruptionStage(solarSystemID):
     29             return False
     30         if not self.CheckCriteriaSuppressionStage(solarSystemID):
     31             return False
     32         if not self.CheckFactionCriteria(solarSystemID):
     33             return False
     34         return True
     35 
     36     def CheckFactionCriteria(self, solarSystemID):
     37         selectedFactionID = agencyFilters.GetFilterValue(self.contentGroup, agencyConst.FILTERTYPE_SYSTEMFACTION)
     38         if selectedFactionID == agencyConst.FILTERVALUE_ANY:
     39             return True
     40         dungeonInstances = self.GetAllDungeonInstances()
     41         dungeonsInSystem = dungeonInstances.get(solarSystemID, [])
     42         for d in dungeonsInSystem:
     43             if d.factionID == selectedFactionID:
     44                 return True
     45 
     46         return False
     47 
     48     def CheckCriteriaCorruptionStage(self, solarSystemID):
     49         selectedCorruptionStage = agencyFilters.GetFilterValue(self.contentGroup, agencyConst.FILTERTYPE_CORRUPTION)
     50         if selectedCorruptionStage < 0:
     51             return True
     52         currentStage = self.corruptionSuppressionSvc.GetSystemCorruptionStage(solarSystemID)
     53         if currentStage is None:
     54             return True
     55         if currentStage != selectedCorruptionStage:
     56             return False
     57         return True
     58 
     59     def CheckCriteriaSuppressionStage(self, solarSystemID):
     60         selectedSuppressionStage = agencyFilters.GetFilterValue(self.contentGroup, agencyConst.FILTERTYPE_SUPPRESSION)
     61         if selectedSuppressionStage < 0:
     62             return True
     63         currentStage = self.corruptionSuppressionSvc.GetSystemSuppressionStage(solarSystemID)
     64         if currentStage is None:
     65             return True
     66         if currentStage != selectedSuppressionStage:
     67             return False
     68         return True