Index: binaries/data/mods/public/gui/session/input.js =================================================================== --- binaries/data/mods/public/gui/session/input.js +++ binaries/data/mods/public/gui/session/input.js @@ -1332,6 +1332,13 @@ return; } +function getBatchTrainingSize() +{ + let num = +Engine.ConfigDB_GetValue("user", "gui.session.batchtrainingsize"); + return Infinity; + return Number.isInteger(num) && num > 0 ? num : 5; +} + // Called by GUI when user clicks training button function addTrainingToQueue(selection, trainEntType, playerState) { @@ -1348,7 +1355,7 @@ if (!decrement) var template = GetTemplateData(trainEntType); - let batchIncrementSize = +Engine.ConfigDB_GetValue("user", "gui.session.batchtrainingsize"); + let batchIncrementSize = getBatchTrainingSize(); if (Engine.HotkeyIsPressed("session.batchtrain") && batchTrainingPossible) { @@ -1431,7 +1438,7 @@ */ function getTrainingStatus(playerState, trainEntType, selection) { - let batchIncrementSize = +Engine.ConfigDB_GetValue("user", "gui.session.batchtrainingsize"); + let batchIncrementSize = getBatchTrainingSize(); var appropriateBuildings = []; if (selection) appropriateBuildings = getBuildingsWhichCanTrainEntity(selection, trainEntType); Index: binaries/data/mods/public/simulation/components/ProductionQueue.js =================================================================== --- binaries/data/mods/public/simulation/components/ProductionQueue.js +++ binaries/data/mods/public/simulation/components/ProductionQueue.js @@ -251,6 +251,12 @@ */ ProductionQueue.prototype.AddBatch = function(templateName, type, count, metadata) { + if (!Number.isInteger(count) || count <= 0) + { + error("Invalid batch count " + count); + return; + } + // TODO: there should probably be a limit on the number of queued batches // TODO: there should be a way for the GUI to determine whether it's going // to be possible to add a batch (based on resource costs and length limits) Index: binaries/data/mods/public/simulation/helpers/Commands.js =================================================================== --- binaries/data/mods/public/simulation/helpers/Commands.js +++ binaries/data/mods/public/simulation/helpers/Commands.js @@ -260,6 +260,12 @@ "train": function(player, cmd, data) { + if (!Number.isInteger(cmd.count) || cmd.count <= 0) + { + warn("Invalid command: can't train " + uneval(cmd.count) + " units"); + return; + } + // Check entity limits var template = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager).GetTemplate(cmd.template); var unitCategory = null; Index: binaries/data/mods/public/simulation/helpers/InitGame.js =================================================================== --- binaries/data/mods/public/simulation/helpers/InitGame.js +++ binaries/data/mods/public/simulation/helpers/InitGame.js @@ -65,7 +65,7 @@ let resourceCounts = cmpPlayer.GetResourceCounts(); let newResourceCounts = {}; for (let resouces in resourceCounts) - newResourceCounts[resouces] = settings.StartingResources; + newResourceCounts[resouces] = Infinity;//settings.StartingResources; cmpPlayer.SetResourceCounts(newResourceCounts); } }