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

goal_data_grouping.py (3006B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\careergoals\client\goal_data_grouping.py
      2 from __future__ import absolute_import
      3 from collections import defaultdict
      4 import characterdata.careerpathconst as cpConst
      5 from .goal_definition import GoalDefinition
      6 
      7 def create_career_path_goal_groups():
      8     goal_definitions_per_career = {}
      9     for cp in cpConst.career_paths:
     10         if cp != cpConst.career_path_none:
     11             goal_definitions_per_career[cp] = CareerPathGoalGroup()
     12 
     13     return goal_definitions_per_career
     14 
     15 
     16 class CareerPathGoalGroup(object):
     17 
     18     def __init__(self):
     19         self._career_path_goal_definition = None
     20         self._goal_definitions_per_group = defaultdict(list)
     21 
     22     @property
     23     def career_path_goal_definition(self):
     24         return self._career_path_goal_definition
     25 
     26     @career_path_goal_definition.setter
     27     def career_path_goal_definition(self, value):
     28         self._career_path_goal_definition = value
     29 
     30     def add_goal_definition(self, goal_definition):
     31         self._goal_definitions_per_group[goal_definition.group_id].append(goal_definition)
     32 
     33     def get_goal_definition(self, goal_id, group_id = None):
     34         if group_id is None:
     35             if self._career_path_goal_definition.goal_id == goal_id:
     36                 return self._career_path_goal_definition
     37         for _, goal_definitions in self._goal_definitions_per_group.iteritems():
     38             for goal_definition in goal_definitions:
     39                 if goal_definition.goal_id == goal_id:
     40                     return goal_definition
     41 
     42     def get_goal_definitions_in_group(self, group_id):
     43         return self._goal_definitions_per_group.get(group_id, [])
     44 
     45     def get_all_career_goal_definitions(self):
     46         all_goal_definitions = []
     47         for _, goal_definitions in self._goal_definitions_per_group.iteritems():
     48             all_goal_definitions.extend(goal_definitions)
     49 
     50         return all_goal_definitions
     51 
     52     def sort_goal_definitions(self):
     53         sorted_dict = {}
     54         for activity_id, goal_definitions in self._goal_definitions_per_group.iteritems():
     55             sorted_dict[activity_id] = sorted(goal_definitions)
     56 
     57         self._goal_definitions_per_group = sorted_dict
     58 
     59 
     60 class OverallGoalGroup(object):
     61 
     62     def __init__(self):
     63         self._goal_definitions = []
     64 
     65     @property
     66     def goal_definitions(self):
     67         return self._goal_definitions
     68 
     69     def get_goal_definition(self, goal_id):
     70         for goal_definition in self.goal_definitions:
     71             if goal_definition.goal_id == goal_id:
     72                 return goal_definition
     73 
     74     def add_goal_definition(self, goal_definition):
     75         self._goal_definitions.append(goal_definition)
     76         self._sort()
     77 
     78     def get_max_target(self):
     79         if len(self._goal_definitions) > 0:
     80             return self._goal_definitions[-1].target_value
     81         return 0
     82 
     83     def _sort(self):
     84         if len(self._goal_definitions) > 0:
     85             self._goal_definitions = sorted(self._goal_definitions)