goal.py (1975B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\careergoals\client\goal.py 2 from careergoals.client.const import RewardLabel 3 from careergoals.client.goal_definition import GoalDefinition 4 5 class Goal(object): 6 7 def __init__(self, definition, progress, completed, claim_state_per_reward_label): 8 self._definition = definition 9 self._progress = progress 10 self._completed = completed 11 self._claim_state_per_reward_label = claim_state_per_reward_label 12 13 def mark_local_completed(self): 14 self._progress = self.definition.target_value 15 16 def mark_local_reward_label_claimed(self, reward_label): 17 self._claim_state_per_reward_label[reward_label] = True 18 19 def update_local_progress(self, progress): 20 self._progress = progress 21 22 def is_completed(self): 23 return self._completed or self._progress >= self.definition.target_value 24 25 def has_unclaimed_rewards(self): 26 return self.is_completed() and any((x is False for x in self._claim_state_per_reward_label.itervalues())) 27 28 def is_reward_claimed(self, reward): 29 return self._claim_state_per_reward_label.get(reward.reward_label, True) 30 31 def is_reward_label_claimed(self, reward_label): 32 return self._claim_state_per_reward_label.get(reward_label, True) 33 34 def get_unclaimed_rewards(self): 35 return [ x for x in self.definition.rewards if not self.is_reward_claimed(x) ] 36 37 def get_unclaimed_reward_labels(self): 38 return [ x for x, y in self._claim_state_per_reward_label.iteritems() if y is False ] 39 40 @property 41 def goal_id(self): 42 return self.definition.goal_id 43 44 @property 45 def definition(self): 46 return self._definition 47 48 @property 49 def progress(self): 50 return self._progress 51 52 @property 53 def claim_state_per_reward_label(self): 54 if not self.is_completed(): 55 return {} 56 return self._claim_state_per_reward_label