def applyNewParameters(self,
                        index,
                        vehicle,
                        crewLvl,
                        crewSkills,
                        selectedShellIndex=0):
     vehCompareData = self.__vehicles[index]
     if vehCompareData.getVehicleCD() != vehicle.intCD:
         raise SoftException('Int-type compact descriptor are different')
     isChanged = False
     copyVehicle = Vehicle(_makeStrCD(vehicle), proxy=self.itemsCache.items)
     copyVehicle.setOutfits(vehicle)
     hasCamouflage = _isVehHasCamouflage(copyVehicle)
     if hasCamouflage:
         _removeVehicleCamouflages(copyVehicle)
     vehCompareData.setHasCamouflage(hasCamouflage)
     newStrCD = _makeStrCD(copyVehicle)
     if vehCompareData.getVehicleStrCD() != newStrCD:
         isChanged = True
         vehCompareData.setVehicleStrCD(newStrCD)
     if vehicle.battleBoosters.installed.getCapacity() > 0:
         newBattleBooster = vehicle.battleBoosters.installed[0]
         if vehCompareData.getBattleBooster() != newBattleBooster:
             isChanged = True
             vehCompareData.setBattleBooster(newBattleBooster)
     newEqs = _getVehicleEquipment(vehicle)
     if vehCompareData.getEquipment() != newEqs:
         isChanged = True
         vehCompareData.setEquipment(newEqs)
     if crewLvl != CrewTypes.SKILL_100 and crewLvl != CrewTypes.CURRENT:
         crewSkills = _NO_CREW_SKILLS.copy()
     if vehCompareData.getCrewData() != (crewLvl, crewSkills):
         vehCompareData.setCrewData(crewLvl, crewSkills)
         isChanged = True
     if vehCompareData.getSelectedShellIndex() != selectedShellIndex:
         vehCompareData.setSelectedShellIndex(selectedShellIndex)
         isChanged = True
     if vehCompareData.getDynSlotType() != vehicle.optDevices.dynSlotType:
         vehCompareData.setDynSlotType(vehicle.optDevices.dynSlotType)
         isChanged = True
     if vehCompareData.getPostProgressionState(
     ) != vehicle.postProgression.getState(implicitCopy=False):
         vehCompareData.setPostProgressionState(
             vehicle.postProgression.getState())
         isChanged = True
     if isChanged:
         self.onParametersChange((index, ))
     else:
         LOG_DEBUG(
             'Modules has not been applied because they are not different.')
Ejemplo n.º 2
0
 def applyNewParameters(self, index, vehicle, crewLvl, crewSkills, selectedShellIndex = 0):
     """
     :param index: int item index in self.__vehicles list
     :param vehicle: gui.shared.gui_items.Vehicle
     :param crewLvl: the common level of crew skill CREW_TYPES.*
     :param crewSkills: set(), the set of crew skills affected on vehicle parameters
     :param selectedShellIndex: the index of selected shell
     """
     vehCompareData = self.__vehicles[index]
     if not vehCompareData.getVehicleCD() == vehicle.intCD:
         raise AssertionError
         isChanged = False
         copyVehicle = Vehicle(_makeStrCD(vehicle), proxy=self.itemsCache.items)
         copyVehicle.setOutfits(vehicle)
         hasCamouflage = _isVehHasCamouflage(copyVehicle)
         if hasCamouflage:
             _removeVehicleCamouflages(copyVehicle)
         vehCompareData.setHasCamouflage(hasCamouflage)
         newStrCD = _makeStrCD(copyVehicle)
         if vehCompareData.getVehicleStrCD() != newStrCD:
             isChanged = True
             vehCompareData.setVehicleStrCD(newStrCD)
         newBattleBooster = vehicle.equipment.battleBoosterConsumables[0]
         if vehCompareData.getBattleBooster() != newBattleBooster:
             isChanged = True
             vehCompareData.setBattleBooster(newBattleBooster)
         newEqs = _getVehicleEquipment(vehicle)
         if vehCompareData.getEquipment() != newEqs:
             isChanged = True
             vehCompareData.setEquipment(newEqs)
         if crewLvl != CREW_TYPES.SKILL_100 and crewLvl != CREW_TYPES.CURRENT:
             crewSkills = _NO_CREW_SKILLS.copy()
         if vehCompareData.getCrewData() != (crewLvl, crewSkills):
             vehCompareData.setCrewData(crewLvl, crewSkills)
             isChanged = True
         if vehCompareData.getSelectedShellIndex() != selectedShellIndex:
             vehCompareData.setSelectedShellIndex(selectedShellIndex)
             isChanged = True
         isChanged and self.onParametersChange((index,))
     else:
         LOG_DEBUG('Modules has not been applied because they are not different.')