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

unclaimed_rewards.py (3891B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\model\state\unclaimed_rewards.py
      2 from datetime import datetime
      3 from achievement_system.client.model.definition.achievement.identifier import AchievementDefinitionIdentifier
      4 from achievement_system.client.model.definition.achievement.milestone.identifier import AchievementMilestoneDefinitionIdentifier
      5 from achievement_system.client.model.definition.category.identifier import CategoryDefinitionIdentifier
      6 from achievement_system.client.model.definition.category.milestone.identifier import CategoryMilestoneDefinitionIdentifier
      7 from achievement_system.client.model.definition.reward.identifier import RewardDefinitionIdentifier
      8 if False:
      9     from typing import Dict, List
     10 
     11 class CachedUnclaimedRewards:
     12 
     13     def __init__(self, unclaimed_achievement_rewards, unclaimed_category_rewards, expiration):
     14         self._achievements = unclaimed_achievement_rewards
     15         self._categories = unclaimed_category_rewards
     16         self._expiration = expiration
     17 
     18     @property
     19     def achievements(self):
     20         return self._achievements
     21 
     22     @property
     23     def categories(self):
     24         return self._categories
     25 
     26     @property
     27     def expiration(self):
     28         return self._expiration
     29 
     30     @property
     31     def is_expired(self):
     32         return datetime.now() > self._expiration
     33 
     34 
     35 class UnclaimedAchievementRewards(object):
     36 
     37     def __init__(self):
     38         self._unclaimed_rewards_per_milestone = {}
     39 
     40     @property
     41     def unclaimed_rewards_per_milestone(self):
     42         return self._unclaimed_rewards_per_milestone
     43 
     44     def add_unclaimed_rewards_for_milestone(self, milestone_id, reward_ids):
     45         if milestone_id not in self._unclaimed_rewards_per_milestone:
     46             self._unclaimed_rewards_per_milestone[milestone_id] = []
     47         self._unclaimed_rewards_per_milestone[milestone_id].extend(reward_ids)
     48 
     49     def get_unclaimed_rewards_count(self):
     50         total_count = 0
     51         for unclaimed_rewards in self._unclaimed_rewards_per_milestone.values():
     52             total_count += len(unclaimed_rewards)
     53 
     54         return total_count
     55 
     56     def __eq__(self, other):
     57         if other is None or not isinstance(other, UnclaimedAchievementRewards):
     58             return False
     59         return self.unclaimed_rewards_per_milestone == other.unclaimed_rewards_per_milestone
     60 
     61     def __ne__(self, other):
     62         return not self.__eq__(other)
     63 
     64     def __str__(self):
     65         return 'unclaimed_rewards_per_milestone:\n %s\n' % '\n'.join([ x.__str__() + ': ' + ', '.join([ z.__str__() for z in y ]) for x, y in self.unclaimed_rewards_per_milestone ])
     66 
     67 
     68 class UnclaimedCategoryRewards(object):
     69 
     70     def __init__(self):
     71         self._unclaimed_rewards_per_milestone = {}
     72 
     73     @property
     74     def unclaimed_rewards_per_milestone(self):
     75         return self._unclaimed_rewards_per_milestone
     76 
     77     def add_unclaimed_rewards_for_milestone(self, milestone_id, reward_ids):
     78         if milestone_id not in self._unclaimed_rewards_per_milestone:
     79             self._unclaimed_rewards_per_milestone[milestone_id] = []
     80         self._unclaimed_rewards_per_milestone[milestone_id].extend(reward_ids)
     81 
     82     def get_unclaimed_rewards_count(self):
     83         total_count = 0
     84         for unclaimed_rewards in self._unclaimed_rewards_per_milestone.values():
     85             total_count += len(unclaimed_rewards)
     86 
     87         return total_count
     88 
     89     def __eq__(self, other):
     90         if other is None or not isinstance(other, UnclaimedCategoryRewards):
     91             return False
     92         return self.unclaimed_rewards_per_milestone == other.unclaimed_rewards_per_milestone
     93 
     94     def __ne__(self, other):
     95         return not self.__eq__(other)
     96 
     97     def __str__(self):
     98         return 'unclaimed_rewards_per_milestone:\n %s\n' % '\n'.join([ x.__str__() + ': ' + ', '.join([ z.__str__() for z in y ]) for x, y in self.unclaimed_rewards_per_milestone ])