Gaia control improvements.

Don't throw errors when finishing a gaia foundation.
Allow cheats for gaia.

This was SVN commit r18552.
This commit is contained in:
elexis 2016-07-24 02:19:34 +00:00
parent c652e0942a
commit a3da37ffd3
4 changed files with 9 additions and 8 deletions

View File

@ -49,7 +49,8 @@ Trigger.prototype.ConquestAddStructure = function(msg)
let player = cmpOwnership.GetOwner();
if (!this.conquestEntitiesByPlayer[player])
{
warn("ConquestAddStructure: Unknown player " + player);
if (player != 0)
warn("ConquestAddStructure: Unknown player " + player);
return;
}

View File

@ -331,10 +331,11 @@ Foundation.prototype.Build = function(builderEnt, work)
cmpBuildingObstruction.SetControlGroup2(cmpObstruction.GetControlGroup2());
// ----------------------------------------------------------------------
var cmpPlayerStatisticsTracker = QueryOwnerInterface(this.entity, IID_StatisticsTracker);
cmpPlayerStatisticsTracker.IncreaseConstructedBuildingsCounter(building);
if (cmpPlayerStatisticsTracker)
cmpPlayerStatisticsTracker.IncreaseConstructedBuildingsCounter(building);
var cmpHealth = Engine.QueryInterface(this.entity, IID_Health);
var cmpBuildingHealth = Engine.QueryInterface(building, IID_Health);
cmpBuildingHealth.SetHitpoints(cmpHealth.GetHitpoints());

View File

@ -1016,7 +1016,7 @@ function TryConstructBuilding(player, cmpPlayer, controlAllUnits, cmd)
// Check entity limits
var cmpEntityLimits = QueryPlayerIDInterface(player, IID_EntityLimits);
if (!cmpEntityLimits || !cmpEntityLimits.AllowedToBuild(cmpBuildRestrictions.GetCategory()))
if (cmpEntityLimits && !cmpEntityLimits.AllowedToBuild(cmpBuildRestrictions.GetCategory()))
{
if (g_DebugCommands)
warn("Invalid command: build limits check failed for player "+player+": "+uneval(cmd));
@ -1028,8 +1028,7 @@ function TryConstructBuilding(player, cmpPlayer, controlAllUnits, cmd)
}
var cmpTechnologyManager = QueryPlayerIDInterface(player, IID_TechnologyManager);
if (!cmpTechnologyManager.CanProduce(cmd.template))
if (cmpTechnologyManager && !cmpTechnologyManager.CanProduce(cmd.template))
{
if (g_DebugCommands)
warn("Invalid command: required technology check failed for player "+player+": "+uneval(cmd));

View File

@ -45,7 +45,7 @@ function InitGame(settings)
// Sandbox, Very Easy, Easy, Medium, Hard, Very Hard
let rate = [ 0.50, 0.64, 0.80, 1.00, 1.25, 1.56 ];
let cmpAIManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AIManager);
for (let i = 1; i < settings.PlayerData.length; ++i)
for (let i = 0; i < settings.PlayerData.length; ++i)
{
let cmpPlayer = QueryPlayerIDInterface(i);
cmpPlayer.SetCheatsEnabled(!!settings.CheatsEnabled);