| 33 | |
| 34 | |
| 35 | class Character: |
| 36 | __itemList = None |
| 37 | __itemIDMap = None |
| 38 | __itemNameMap = None |
| 39 | |
| 40 | def __init__(self, name, defaultLevel=None, initSkills=True): |
| 41 | self.savedName = name |
| 42 | self.__owner = None |
| 43 | self.defaultLevel = defaultLevel |
| 44 | self.__skills = [] |
| 45 | self.__skillIdMap = {} |
| 46 | self.dirtySkills = set() |
| 47 | self.alphaClone = None |
| 48 | self.__secStatus = 0.0 |
| 49 | |
| 50 | if initSkills: |
| 51 | for item in self.getSkillList(): |
| 52 | self.addSkill(Skill(self, item.ID, self.defaultLevel)) |
| 53 | |
| 54 | self.__implants = HandledImplantList() |
| 55 | |
| 56 | @reconstructor |
| 57 | def init(self): |
| 58 | |
| 59 | self.__skillIdMap = {} |
| 60 | |
| 61 | for skill in self.__skills: |
| 62 | self.__skillIdMap[skill.itemID] = skill |
| 63 | |
| 64 | # get a list of skills that the character does no have, and add them (removal of old skills happens in the |
| 65 | # Skill loading) |
| 66 | for skillID in set(self.getSkillIDMap().keys()).difference(set(self.__skillIdMap.keys())): |
| 67 | self.addSkill(Skill(self, skillID, self.defaultLevel)) |
| 68 | |
| 69 | self.dirtySkills = set() |
| 70 | |
| 71 | self.alphaClone = None |
| 72 | |
| 73 | if self.alphaCloneID: |
| 74 | self.alphaClone = eos.db.getAlphaClone(self.alphaCloneID) |
| 75 | |
| 76 | @classmethod |
| 77 | def getSkillList(cls): |
| 78 | if cls.__itemList is None: |
| 79 | cls.__itemList = eos.db.getItemsByCategory("Skill") |
| 80 | |
| 81 | return cls.__itemList |
| 82 | |
| 83 | @classmethod |
| 84 | def getSkillIDMap(cls): |
| 85 | if cls.__itemIDMap is None: |
| 86 | map = {} |
| 87 | for skill in cls.getSkillList(): |
| 88 | map[skill.ID] = skill |
| 89 | |
| 90 | cls.__itemIDMap = map |
| 91 | |
| 92 | return cls.__itemIDMap |
no outgoing calls
no test coverage detected