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

attributes.py (5737B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\model\definition\reward\attributes.py
      2 from achievement_system.client.api.error import UnsupportedTypeError
      3 from achievement_system.client.model.definition.reward.type import RewardType
      4 from achievement_system.client.model.flatbuffer.generated import ItemReward as FlatbufferItemReward
      5 from achievement_system.client.model.flatbuffer.generated import IskReward as FlatbufferIskReward
      6 from achievement_system.client.model.flatbuffer.generated import SpReward as FlatbufferSpReward
      7 from achievement_system.client.model.flatbuffer.generated import TitleReward as FlatbufferTitleReward
      8 from achievement_system.client.model.flatbuffer.generated import Reward as FlatbufferReward
      9 from achievement_system.client.model.flatbuffer.generated import RewardPayload as FlatbufferRewardPayload
     10 from cosmetics.client.character.title.model.definition.identifier import TitleIdentifier
     11 
     12 def from_flatbuffer(fb_data):
     13     payload_type = fb_data.PayloadType()
     14     payload = fb_data.Payload()
     15     if payload_type == FlatbufferRewardPayload.IskReward:
     16         reward_object = FlatbufferIskReward()
     17         reward_object.Init(payload.Bytes, payload.Pos)
     18         return IskRewardDefinitionAttributes(internal_name=fb_data.InternalName(), amount=reward_object.Quantity())
     19     if payload_type == FlatbufferRewardPayload.SpReward:
     20         reward_object = FlatbufferSpReward()
     21         reward_object.Init(payload.Bytes, payload.Pos)
     22         return SpRewardDefinitionAttributes(internal_name=fb_data.InternalName(), amount=reward_object.Quantity())
     23     if payload_type == FlatbufferRewardPayload.ItemReward:
     24         reward_object = FlatbufferItemReward()
     25         reward_object.Init(payload.Bytes, payload.Pos)
     26         return ItemRewardDefinitionAttributes(internal_name=fb_data.InternalName(), type_id=reward_object.TypeId(), amount=reward_object.Quantity())
     27     if payload_type == FlatbufferRewardPayload.TitleReward:
     28         reward_object = FlatbufferTitleReward()
     29         reward_object.Init(payload.Bytes, payload.Pos)
     30         return TitleRewardDefinitionAttributes(internal_name=fb_data.InternalName(), title_identifier=TitleIdentifier.from_flatbuffer(reward_object.TitleId()))
     31     raise UnsupportedTypeError
     32 
     33 
     34 class RewardDefinitionAttributes(object):
     35 
     36     def __init__(self, reward_type, internal_name):
     37         self._reward_type = reward_type
     38         self._internal_name = internal_name
     39 
     40     @property
     41     def reward_type(self):
     42         return self._reward_type
     43 
     44     @property
     45     def internal_name(self):
     46         return self._internal_name
     47 
     48     def __eq__(self, other):
     49         return self.reward_type == other.reward_type and self.internal_name == other.internal_name
     50 
     51     def __ne__(self, other):
     52         return not self.__eq__(other)
     53 
     54     def __str__(self):
     55         return 'internal name: %s\n' % self.internal_name + 'reward type: %s' % self.reward_type
     56 
     57 
     58 class IskRewardDefinitionAttributes(RewardDefinitionAttributes):
     59 
     60     def __init__(self, internal_name, amount):
     61         super(IskRewardDefinitionAttributes, self).__init__(RewardType.ISK, internal_name)
     62         self._amount = amount
     63 
     64     @property
     65     def amount(self):
     66         return self._amount
     67 
     68     def __eq__(self, other):
     69         return super(IskRewardDefinitionAttributes, self).__eq__(other) and self.amount == other.amount
     70 
     71     def __ne__(self, other):
     72         return not self.__eq__(other)
     73 
     74     def __str__(self):
     75         return super(IskRewardDefinitionAttributes, self).__str__() + '\n' + 'amount: %s' % self.amount
     76 
     77 
     78 class SpRewardDefinitionAttributes(RewardDefinitionAttributes):
     79 
     80     def __init__(self, internal_name, amount):
     81         super(SpRewardDefinitionAttributes, self).__init__(RewardType.SP, internal_name)
     82         self._amount = amount
     83 
     84     @property
     85     def amount(self):
     86         return self._amount
     87 
     88     def __eq__(self, other):
     89         return super(SpRewardDefinitionAttributes, self).__eq__(other) and self.amount == other.amount
     90 
     91     def __ne__(self, other):
     92         return not self.__eq__(other)
     93 
     94     def __str__(self):
     95         return super(SpRewardDefinitionAttributes, self).__str__() + '\n' + 'amount: %s' % self.amount
     96 
     97 
     98 class ItemRewardDefinitionAttributes(RewardDefinitionAttributes):
     99 
    100     def __init__(self, internal_name, type_id, amount):
    101         super(ItemRewardDefinitionAttributes, self).__init__(RewardType.ITEM, internal_name)
    102         self._type_id = type_id
    103         self._amount = amount
    104 
    105     @property
    106     def type_id(self):
    107         return self._type_id
    108 
    109     @property
    110     def amount(self):
    111         return self._amount
    112 
    113     def __eq__(self, other):
    114         return super(ItemRewardDefinitionAttributes, self).__eq__(other) and self.type_id == other.type_id and self.amount == other.amount
    115 
    116     def __ne__(self, other):
    117         return not self.__eq__(other)
    118 
    119     def __str__(self):
    120         return super(ItemRewardDefinitionAttributes, self).__str__() + '\n' + 'type_id: %s\n' % self.type_id + 'amount: %s' % self.amount
    121 
    122 
    123 class TitleRewardDefinitionAttributes(RewardDefinitionAttributes):
    124 
    125     def __init__(self, internal_name, title_identifier):
    126         super(TitleRewardDefinitionAttributes, self).__init__(RewardType.TITLE, internal_name)
    127         self._title_identifier = title_identifier
    128 
    129     @property
    130     def title_identifier(self):
    131         return self._title_identifier
    132 
    133     def __eq__(self, other):
    134         return super(TitleRewardDefinitionAttributes, self).__eq__(other) and self.title_identifier == other.title_identifier
    135 
    136     def __ne__(self, other):
    137         return not self.__eq__(other)
    138 
    139     def __str__(self):
    140         return super(TitleRewardDefinitionAttributes, self).__str__() + '\n' + 'title: %s\n' % self.title_identifier