remove duplicated code

This was SVN commit r14264.
This commit is contained in:
mimo 2013-11-30 18:23:32 +00:00
parent e88d05e0e4
commit c134108154

View File

@ -1011,21 +1011,7 @@ var UnitFsmSpec = {
"Timer": function(msg) { "Timer": function(msg) {
// check if there are no enemies to attack // check if there are no enemies to attack
var cmpFormation = Engine.QueryInterface(this.entity, IID_Formation); this.FindNewTargets();
for each (var ent in cmpFormation.members)
{
var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
if (cmpUnitAI.FindNewTargets())
{
if (cmpUnitAI.orderQueue[0] && cmpUnitAI.orderQueue[0].type == "Attack")
{
var data = cmpUnitAI.orderQueue[0].data;
cmpUnitAI.FinishOrder();
this.PushOrderFront("Attack", { "target": data.target, "force": false, "forceResponse": data.forceResponse });
break;
}
}
}
}, },
"leave": function(msg) { "leave": function(msg) {
@ -1144,22 +1130,7 @@ var UnitFsmSpec = {
{ {
// if WalkAndFight order, look for new target before moving again // if WalkAndFight order, look for new target before moving again
if (this.orderQueue.length > 0 && this.orderQueue[0].type == "WalkAndFight") if (this.orderQueue.length > 0 && this.orderQueue[0].type == "WalkAndFight")
{ this.FindNewTargets();
for each (var ent in cmpFormation.members)
{
var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
if (cmpUnitAI.FindNewTargets())
{
if (cmpUnitAI.orderQueue[0] && cmpUnitAI.orderQueue[0].type == "Attack")
{
var data = cmpUnitAI.orderQueue[0].data;
cmpUnitAI.FinishOrder();
this.PushOrderFront("Attack", { "target": data.target, "force": false, "forceResponse": data.forceResponse });
break;
}
}
}
}
return; return;
} }
@ -4879,6 +4850,25 @@ UnitAI.prototype.SwitchToStance = function(stance)
*/ */
UnitAI.prototype.FindNewTargets = function() UnitAI.prototype.FindNewTargets = function()
{ {
if (this.IsFormationController())
{
var cmpFormation = Engine.QueryInterface(this.entity, IID_Formation);
for each (var ent in cmpFormation.members)
{
var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
if (cmpUnitAI.FindNewTargets())
{
if (!cmpUnitAI.orderQueue[0] || cmpUnitAI.orderQueue[0].type != "Attack")
continue;
var data = cmpUnitAI.orderQueue[0].data;
cmpUnitAI.FinishOrder();
this.PushOrderFront("Attack", { "target": data.target, "force": false, "forceResponse": data.forceResponse });
return true;
}
}
return false;
}
if (!this.losRangeQuery) if (!this.losRangeQuery)
return false; return false;