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

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