Made changes to BuildingAI based on Philip's comments
This was SVN commit r8639.
This commit is contained in:
parent
f0476b61fb
commit
f1f1a44031
@ -49,9 +49,11 @@ BuildingAI.prototype.OnDestroy = function()
|
|||||||
*/
|
*/
|
||||||
BuildingAI.prototype.SetupRangeQuery = function(owner)
|
BuildingAI.prototype.SetupRangeQuery = function(owner)
|
||||||
{
|
{
|
||||||
|
|
||||||
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
||||||
var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
|
var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
|
||||||
|
if (this.enemyUnitsQuery)
|
||||||
|
cmpRangeManager.DestroyActiveQuery(this.enemyUnitsQuery);
|
||||||
var players = [];
|
var players = [];
|
||||||
|
|
||||||
var player = Engine.QueryInterface(cmpPlayerManager.GetPlayerByID(owner), IID_Player);
|
var player = Engine.QueryInterface(cmpPlayerManager.GetPlayerByID(owner), IID_Player);
|
||||||
@ -80,12 +82,20 @@ BuildingAI.prototype.SetupRangeQuery = function(owner)
|
|||||||
*/
|
*/
|
||||||
BuildingAI.prototype.OnRangeUpdate = function(msg)
|
BuildingAI.prototype.OnRangeUpdate = function(msg)
|
||||||
{
|
{
|
||||||
|
if (!this.targetUnit && msg.added.length > 0)
|
||||||
|
{
|
||||||
|
this.targetUnit = msg.added[0];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (this.targetUnit && msg.removed.length > 0 && msg.removed.indexOf(this.targetUnit) != -1)
|
||||||
|
{
|
||||||
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
||||||
var targetUnits = cmpRangeManager.ResetActiveQuery(this.enemyUnitsQuery);
|
var targetUnits = cmpRangeManager.ResetActiveQuery(this.enemyUnitsQuery);
|
||||||
if (targetUnits.length > 0)
|
if (targetUnits.length > 0)
|
||||||
this.targetUnit = targetUnits[0];
|
this.targetUnit = targetUnits[0];
|
||||||
else
|
else
|
||||||
this.targetUnit = undefined;
|
this.targetUnit = undefined;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -127,7 +137,7 @@ BuildingAI.prototype.FireArrows = function()
|
|||||||
var cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|
var cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|
||||||
this.timer = cmpTimer.SetTimeout(this.entity, IID_BuildingAI, "FireArrows", timerInterval, {});
|
this.timer = cmpTimer.SetTimeout(this.entity, IID_BuildingAI, "FireArrows", timerInterval, {});
|
||||||
|
|
||||||
if ((this.targetUnit != undefined) && (arrowCount > 0))
|
if (this.targetUnit && (arrowCount > 0))
|
||||||
{
|
{
|
||||||
cmpAttack.PerformAttack("Ranged", this.targetUnit);
|
cmpAttack.PerformAttack("Ranged", this.targetUnit);
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,6 @@ GarrisonHolder.prototype.AllowedToGarrison = function(entity)
|
|||||||
{
|
{
|
||||||
var allowedClasses = this.GetAllowedClassesList();
|
var allowedClasses = this.GetAllowedClassesList();
|
||||||
var entityClasses = (Engine.QueryInterface(entity, IID_Identity)).GetClassesList();
|
var entityClasses = (Engine.QueryInterface(entity, IID_Identity)).GetClassesList();
|
||||||
var classNotAllowed = true;
|
|
||||||
// Check if the unit is allowed to be garrisoned inside the building
|
// Check if the unit is allowed to be garrisoned inside the building
|
||||||
for each (var allowedClass in allowedClasses)
|
for each (var allowedClass in allowedClasses)
|
||||||
{
|
{
|
||||||
@ -100,7 +99,6 @@ GarrisonHolder.prototype.Garrison = function(entity)
|
|||||||
{
|
{
|
||||||
var entityPopCost = (Engine.QueryInterface(entity, IID_Cost)).GetPopCost();
|
var entityPopCost = (Engine.QueryInterface(entity, IID_Cost)).GetPopCost();
|
||||||
var entityClasses = (Engine.QueryInterface(entity, IID_Identity)).GetClassesList();
|
var entityClasses = (Engine.QueryInterface(entity, IID_Identity)).GetClassesList();
|
||||||
var allowedClasses = this.GetAllowedClassesList();
|
|
||||||
|
|
||||||
if (!this.HasEnoughHealth())
|
if (!this.HasEnoughHealth())
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user