component_rarity.py (2136B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\common\ships\skins\static_data\component_rarity.py 2 from itertoolsext.Enum import Enum 3 from fsdBuiltData.common.base import BuiltDataLoader 4 from localization import GetByMessageID 5 try: 6 import ship_skin_design_components_raritiesLoader 7 except ImportError: 8 ship_skin_design_components_raritiesLoader = None 9 10 class _ComponentRaritiesDataLoader(BuiltDataLoader): 11 __resBuiltFile__ = 'res:/staticdata/ship_skin_design_component_rarities.fsdbinary' 12 __clientAutobuildBuiltFile__ = 'eve/autobuild/staticData/client/ship_skin_design_component_rarities.fsdbinary' 13 __serverAutobuildBuiltFile__ = 'eve/autobuild/staticData/server/ship_skin_design_component_rarities.fsdbinary' 14 __loader__ = ship_skin_design_components_raritiesLoader 15 16 17 def get_component_ratities_data(): 18 return _ComponentRaritiesDataLoader.GetData() 19 20 21 @Enum 22 23 class ComponentRarityLevel(object): 24 STANDARD = 1 25 ADVANCED = 2 26 ELITE = 3 27 SUPERIOR = 4 28 STELLAR = 5 29 EMPYREAN = 6 30 31 32 def get_rarities_by_priority(ascending = True): 33 rarities_data = get_component_ratities_data() 34 rarities = [] 35 for rarity_id, rarity_data in rarities_data.iteritems(): 36 rarities.append((get_rarity_from_fsd(rarity_id), rarity_data.rank)) 37 38 return [ a for a, b in sorted(rarities, key=lambda x: x[1], reverse=not ascending) ] 39 40 41 def get_rarity_name(rarity_level): 42 rarities_data = get_component_ratities_data() 43 for fsd_rarity_id, data in rarities_data.iteritems(): 44 if get_rarity_from_fsd(fsd_rarity_id) == rarity_level: 45 return GetByMessageID(data.name) 46 47 48 def get_rarity_from_fsd(fsd_rarity_id): 49 if fsd_rarity_id == 1: 50 return ComponentRarityLevel.STANDARD 51 if fsd_rarity_id == 2: 52 return ComponentRarityLevel.ADVANCED 53 if fsd_rarity_id == 3: 54 return ComponentRarityLevel.ELITE 55 if fsd_rarity_id == 4: 56 return ComponentRarityLevel.SUPERIOR 57 if fsd_rarity_id == 5: 58 return ComponentRarityLevel.STELLAR 59 if fsd_rarity_id == 6: 60 return ComponentRarityLevel.EMPYREAN