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 ])