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