Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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