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)
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)