forked from 0ad/0ad
remove duplicated code
This was SVN commit r14264.
This commit is contained in:
parent
e88d05e0e4
commit
c134108154
@ -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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user