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

bloodlines.py (1966B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\characterdata\bloodlines.py
      2 import random
      3 from fsdBuiltData.common.base import BuiltDataLoader
      4 try:
      5     import bloodlinesLoader
      6 except ImportError:
      7     bloodlinesLoader = None
      8 
      9 class BloodlinesLoader(BuiltDataLoader):
     10     __resBuiltFile__ = 'res:/staticData/bloodlines.fsdbinary'
     11     __clientAutobuildBuiltFile__ = 'eve/autobuild/staticData/client/bloodlines.fsdbinary'
     12     __serverAutobuildBuiltFile__ = 'eve/autobuild/staticData/server/bloodlines.fsdbinary'
     13     __loader__ = bloodlinesLoader
     14 
     15 
     16 def _get_bloodlines():
     17     return BloodlinesLoader.GetData()
     18 
     19 
     20 def iter_bloodlines():
     21     for bloodline_id, data in _get_bloodlines().iteritems():
     22         yield (bloodline_id, data)
     23 
     24 
     25 def get_bloodline(bloodline_id):
     26     return _get_bloodlines()[bloodline_id]
     27 
     28 
     29 def get_race_id(bloodline_id):
     30     return get_bloodline(bloodline_id).raceID
     31 
     32 
     33 def get_bloodline_corporation_id(bloodline_id):
     34     return get_bloodline(bloodline_id).corporationID
     35 
     36 
     37 def bloodline_exists(bloodline_id):
     38     return bloodline_id in _get_bloodlines()
     39 
     40 
     41 def get_bloodline_name(bloodline_id, bloodline = None, language_id = None):
     42     if not bloodline:
     43         bloodline = get_bloodline(bloodline_id)
     44     return _get_message(bloodline.nameID, language_id=language_id)
     45 
     46 
     47 def get_bloodline_ids_by_race_id(race_id, shuffle = False):
     48     bloodlines = [ bloodline_id for bloodline_id, bloodline in iter_bloodlines() if bloodline.raceID == race_id ]
     49     if bloodlines and shuffle:
     50         random.shuffle(bloodlines)
     51     return bloodlines
     52 
     53 
     54 def get_bloodline_description(bloodline_id, bloodline = None, language_id = None):
     55     if not bloodline:
     56         bloodline = get_bloodline(bloodline_id)
     57     return _get_message(bloodline.descriptionID, language_id=language_id)
     58 
     59 
     60 def _get_message(message_id, language_id = None):
     61     import localization
     62     return localization.GetByMessageID(message_id, language_id=language_id)