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

progress_config.py (2603B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\model\definition\contribution_method\progress_config.py
      2 from achievement_system.client.api.error import UnsupportedTypeError
      3 from achievement_system.client.model.flatbuffer.generated import ContributionMethodDefinition as FlatbufferContributionMethodDefinition, ProgressConfig as FlatbufferProgressConfig, ChecklistMode as FlatbufferChecklistMode, SetMode as FlatbufferSetMode
      4 from itertoolsext.Enum import Enum
      5 
      6 def extract_from_flatbuffer(fb_data):
      7     progress_type = fb_data.ProgressType()
      8     progress = fb_data.Progress()
      9     if progress_type == FlatbufferProgressConfig.CumulativeMode:
     10         return CumulativeProgressConfig()
     11     if progress_type == FlatbufferProgressConfig.ChecklistMode:
     12         progress_object = FlatbufferChecklistMode()
     13         progress_object.Init(progress.Bytes, progress.Pos)
     14         return ChecklistProgressConfig(target_parameter=progress_object.TargetParameter())
     15     if progress_type == FlatbufferProgressConfig.SetMode:
     16         progress_object = FlatbufferSetMode()
     17         progress_object.Init(progress.Bytes, progress.Pos)
     18         return SetProgressConfig(target_value_type=progress_object.TargetValueType())
     19     raise UnsupportedTypeError
     20 
     21 
     22 @Enum
     23 
     24 class ProgressType(object):
     25     CUMULATIVE = 'CUMULATIVE'
     26     CHECKLIST = 'CHECKLIST'
     27     SET = 'SET'
     28 
     29 
     30 class ProgressConfigBase(object):
     31 
     32     def __init__(self, progress_type):
     33         self._progress_type = progress_type
     34 
     35     @property
     36     def progress_type(self):
     37         return self._progress_type
     38 
     39     def __eq__(self, other):
     40         return self._progress_type == other._progress_type
     41 
     42     def __ne__(self, other):
     43         return not self.__eq__(other)
     44 
     45     def __str__(self):
     46         return 'progress type: %s' % self.progress_type
     47 
     48 
     49 class CumulativeProgressConfig(ProgressConfigBase):
     50 
     51     def __init__(self):
     52         super(CumulativeProgressConfig, self).__init__(ProgressType.CUMULATIVE)
     53 
     54 
     55 class ChecklistProgressConfig(ProgressConfigBase):
     56 
     57     def __init__(self, target_parameter):
     58         super(ChecklistProgressConfig, self).__init__(ProgressType.CHECKLIST)
     59         self._target_parameter = target_parameter
     60 
     61     @property
     62     def target_parameter(self):
     63         return self._target_parameter
     64 
     65 
     66 class SetProgressConfig(ProgressConfigBase):
     67 
     68     def __init__(self, target_value_type):
     69         super(SetProgressConfig, self).__init__(ProgressType.SET)
     70         self._target_value_type = target_value_type
     71 
     72     @property
     73     def target_value_type(self):
     74         return self._target_value_type