def changeCrewSkillLevel(self, newSkillsLevel): success = False if self.__crewSkillLevel != newSkillsLevel: self.__crewSkillLevel = newSkillsLevel skillsByRoles = {} if self.__crewSkillLevel == CREW_TYPES.SKILL_100 or self.__crewSkillLevel == CREW_TYPES.CURRENT: affectedTankmens = self.__getAffectedTankmens( self.__selectedSkills) for idx, role in affectedTankmens: skillsByRoles[idx] = self.__skillsByRoles[ role].intersection(self.__selectedSkills) if self.__crewSkillLevel == CREW_TYPES.CURRENT: levelsByIndexes, nativeVehiclesByIndexes = cmp_helpers.getVehCrewInfo( self.__vehicle.intCD) defRoleLevel = None else: nativeVehiclesByIndexes = None levelsByIndexes = None defRoleLevel = self.__crewSkillLevel self.__vehicle.crew = self.__vehicle.getCrewBySkillLevels( defRoleLevel, skillsByRoles, levelsByIndexes, nativeVehiclesByIndexes) success = True return success
def setCrewData(self, crewLvl, skills): """ Updates crew information :param crewLvl: int, one of gui.game_control.veh_comparison_basket.CREW_TYPES :param skills: set, [skillName, ...] :return: bool, True if new incoming data is not similar as existed, otherwise - False """ if self.__crewLvl != crewLvl or self.__skills != skills: self.__crewLvl = crewLvl self.__skills = skills skillsDict = {} skillsByRoles = cmp_helpers.getVehicleCrewSkills(self.__vehicle) for idx, (role, skillsSet) in enumerate(skillsByRoles): sameSkills = skillsSet.intersection(self.__skills) if sameSkills: skillsDict[idx] = sameSkills if crewLvl == CREW_TYPES.CURRENT: levelsByIndexes, nativeVehiclesByIndexes = cmp_helpers.getVehCrewInfo( self.__vehicle.intCD) defRoleLevel = None else: levelsByIndexes = {} defRoleLevel = self.__crewLvl nativeVehiclesByIndexes = None self.__vehicle.crew = self.__vehicle.getCrewBySkillLevels( defRoleLevel, skillsDict, levelsByIndexes, nativeVehiclesByIndexes) self.__isCrewInvalid = True self.__isCurrVehParamsInvalid = True return self.__isCrewInvalid
def setCrewData(self, crewLvl, skills): if self.__crewLvl != crewLvl or self.__skills != skills: self.__crewLvl = crewLvl self.__skills = skills skillsDict = {} skillsByRoles = cmp_helpers.getVehicleCrewSkills(self.__vehicle) for idx, (_, skillsSet) in enumerate(skillsByRoles): sameSkills = skillsSet.intersection(self.__skills) if sameSkills: skillsDict[idx] = sameSkills if crewLvl == CrewTypes.CURRENT: levelsByIndexes, nativeVehiclesByIndexes = cmp_helpers.getVehCrewInfo( self.__vehicle.intCD) defRoleLevel = None else: levelsByIndexes = {} defRoleLevel = self.__crewLvl nativeVehiclesByIndexes = None self.__vehicle.crew = self.__vehicle.getCrewBySkillLevels( defRoleLevel, skillsDict, levelsByIndexes, nativeVehiclesByIndexes) self.__isCrewInvalid = True self.__isCurrVehParamsInvalid = True return self.__isCrewInvalid