def getInitialVehicleData(self):
        basketVehicle = self.getBasketVehCmpData()
        if basketVehicle.isInInventory():
            strCD = basketVehicle.getInvVehStrCD()
            crewLvl, crewSkills = basketVehicle.getInventoryCrewData()
            equipment = basketVehicle.getInvEquipment()
        else:
            strCD = basketVehicle.getStockVehStrCD()
            crewLvl = basketVehicle.getStockCrewLvl()
            crewSkills = basketVehicle.getStockCrewSkills()
            equipment = basketVehicle.getStockEquipment()
        vehicle = Vehicle(strCD)
        for slotIndex, equipmentSlot in enumerate(equipment):
            vehicle_adjusters.installEquipment(vehicle, equipmentSlot,
                                               slotIndex)

        cmp_helpers.applyCamouflage(vehicle, basketVehicle.invHasCamouflage())
        battleBooster = basketVehicle.getBattleBooster()
        if battleBooster is not None:
            vehicle_adjusters.installBattleBoosterOnVehicle(
                vehicle, battleBooster.intCD)
        postProgressionState = basketVehicle.getInvPostProgressionState()
        vehicle.installPostProgression(postProgressionState,
                                       rebuildAttrs=False)
        dynSlotType = basketVehicle.getInvDynSlotType()
        vehicle.optDevices.dynSlotType = dynSlotType
        return (vehicle, _CrewSkillsManager(vehicle, crewLvl, crewSkills))
    def _getCurrentVehicleCopy(self):
        vehicle = Vehicle(strCompactDescr=self.__vehicle.descriptor.makeCompactDescr())
        vehicle.crew = self.__vehicle.crew[:]
        for i, equipmentIntCD in enumerate(self.__vehicle.equipment.regularConsumables.getIntCDs(default=None)):
            vehicle_adjusters.installEquipment(vehicle, equipmentIntCD, i)

        vehicle.descriptor.activeGunShotIndex = self.__vehicle.descriptor.activeGunShotIndex
        return vehicle
    def setVehicleData(self, vehCompareData):
        vehicleStrCD = vehCompareData.getVehicleStrCD()
        equipment = vehCompareData.getEquipment()
        hasCamouflage = vehCompareData.hasCamouflage()
        selectedShellIdx = vehCompareData.getSelectedShellIndex()
        battleBooster = vehCompareData.getBattleBooster()
        dynSlotType = vehCompareData.getDynSlotType()
        postProgressionState = vehCompareData.getPostProgressionState()
        isDifferent = False
        camouflageInvalid = self.__hasCamouflage != hasCamouflage
        equipInvalid = equipment != self.__equipment
        shellInvalid = selectedShellIdx != self.__selectedShellIdx
        battleBoosterInvalid = battleBooster != self.__battleBooster
        dynSlotsInvalid = dynSlotType != self.__dynSlotType
        postProgressionInvalid = postProgressionState != self.__postProgressionState
        if vehicleStrCD != self.__vehicleStrCD:
            self.__vehicleStrCD = vehicleStrCD
            self.__vehicle = Vehicle(self.__vehicleStrCD)
            self.__isCurrVehParamsInvalid = True
            isDifferent = True
            equipInvalid = True
            camouflageInvalid = True
            dynSlotsInvalid = True
            postProgressionInvalid = True
        if equipInvalid:
            for i, eq in enumerate(equipment):
                vehicle_adjusters.installEquipment(self.__vehicle, eq, i)

            self.__equipment = equipment
            isDifferent = True
        if battleBoosterInvalid:
            self.__battleBooster = battleBooster
            vehicle_adjusters.installBattleBoosterOnVehicle(
                self.__vehicle, battleBooster.intCD)
            isDifferent = True
        if camouflageInvalid:
            cmp_helpers.applyCamouflage(self.__vehicle, hasCamouflage)
            self.__hasCamouflage = hasCamouflage
            isDifferent = True
        if shellInvalid:
            self.__vehicle.descriptor.activeGunShotIndex = selectedShellIdx
            self.__selectedShellIdx = selectedShellIdx
            isDifferent = True
        if dynSlotsInvalid:
            self.__dynSlotType = dynSlotType
            self.__vehicle.optDevices.dynSlotType = dynSlotType
            self.__isCurrVehParamsInvalid = True
            isDifferent = True
        if postProgressionInvalid:
            self.__postProgressionState = postProgressionState
            self.__vehicle.installPostProgression(postProgressionState, True)
            self.__isCurrVehParamsInvalid = True
            isDifferent = True
        return isDifferent
 def _install(self, item, vehicle, slotIdx):
     equipment = self.itemsCache.items.getItemByCD(item.id)
     if equipment is None:
         return (False, 0)
     elif not equipment.isBuiltIn:
         return (False, 0)
     elif slotIdx >= vehicle.consumables.installed.getCapacity():
         return (False, 0)
     else:
         result = equipment.mayInstall(vehicle, slotIdx)[0]
         if result:
             vehicle_adjusters.installEquipment(vehicle, equipment.intCD,
                                                slotIdx)
         return (result, 1)
 def _install(self, item, vehicle, slotIdx):
     equipment = self.itemsCache.items.getItemByCD(item.id)
     if equipment is None:
         return (False, 0)
     else:
         result = equipment.mayInstall(vehicle, slotIdx)[0]
         if result:
             if equipment.itemTypeID == GUI_ITEM_TYPE.BATTLE_BOOSTER:
                 vehicle_adjusters.installBattleBoosterOnVehicle(
                     vehicle, equipment.intCD)
             else:
                 vehicle_adjusters.installEquipment(vehicle,
                                                    equipment.intCD,
                                                    slotIdx)
         return (result, 1)
Beispiel #6
0
    def _getCurrentVehicleCopy(self):
        vehicle = Vehicle(
            strCompactDescr=self.__vehicle.descriptor.makeCompactDescr())
        vehicle.crew = self.__vehicle.crew[:]
        for i, equipmentIntCD in enumerate(
                self.__vehicle.consumables.installed.getIntCDs(default=None)):
            vehicle_adjusters.installEquipment(vehicle, equipmentIntCD, i)

        vehicle.descriptor.activeGunShotIndex = self.__vehicle.descriptor.activeGunShotIndex
        cmp_helpers.applyCamouflage(
            vehicle, cmp_helpers.isCamouflageSet(self.__vehicle))
        for battleBooster in self.__vehicle.battleBoosters.installed.getItems(
        ):
            vehicle_adjusters.installBattleBoosterOnVehicle(
                vehicle, battleBooster.intCD)

        return vehicle
    def getInitialVehicleData(self):
        basketVehicle = self.getBasketVehCmpData()
        if basketVehicle.isInInventory():
            strCD = basketVehicle.getInvVehStrCD()
            crewLvl, crewSkills = basketVehicle.getInventoryCrewData()
            equipment = basketVehicle.getInvEquipment()
        else:
            strCD = basketVehicle.getStockVehStrCD()
            crewLvl = basketVehicle.getStockCrewLvl()
            crewSkills = basketVehicle.getStockCrewSkills()
            equipment = basketVehicle.getStockEquipment()
        vehicle = Vehicle(strCD)
        for slotIndex, equipmentSlot in enumerate(equipment):
            vehicle_adjusters.installEquipment(vehicle, equipmentSlot, slotIndex)

        cmp_helpers.applyCamouflage(vehicle, basketVehicle.invHasCamouflage())
        battleBooster = basketVehicle.getBattleBooster()
        if battleBooster is not None:
            vehicle_adjusters.installBattleBoosterOnVehicle(vehicle, battleBooster.intCD)
        return (vehicle, _CrewSkillsManager(vehicle, crewLvl, crewSkills))
 def __installEquipment(self, intCD, slotIndex):
     vehicle_adjusters.installEquipment(self.__vehicle, intCD, slotIndex)