1
0
forked from 0ad/0ad

fix b17ffaeb7e + fixes from FalseVision on setHeldPosition

This was SVN commit r15371.
This commit is contained in:
mimo 2014-06-15 16:41:01 +00:00
parent 74e5c8ae26
commit bec1e1edfd
3 changed files with 7 additions and 5 deletions

View File

@ -1479,7 +1479,7 @@ m.HQ.prototype.trainEmergencyUnits = function(gameState, positions)
continue;
if (!total.canAfford(new API3.Resources(template.cost())))
continue;
templateFound = [trainable, template];
templateAnchor = [trainable, template];
break;
}
}
@ -1487,7 +1487,7 @@ m.HQ.prototype.trainEmergencyUnits = function(gameState, positions)
// and if not, take some of ther accounted resources
// TODO substract only what is needed instead of reset
// TODO sort the queues
var cost = new API3.Resources(templateFound[1].cost());
var cost = new API3.Resources(templateAnchor[1].cost());
if (!available.canAfford(cost))
{
for (var p in gameState.ai.queueManager.queues)
@ -1504,7 +1504,7 @@ m.HQ.prototype.trainEmergencyUnits = function(gameState, positions)
var metadata = { "role": "worker", "base": nearestAnchor.getMetadata(PlayerID, "base"), "trainer": nearestAnchor.id() };
if (autogarrison)
metadata.garrisonType = "protection";
gameState.ai.queues.emergency.addItem(new m.TrainingPlan(gameState, templateFound[0], metadata, 1, 1));
gameState.ai.queues.emergency.addItem(new m.TrainingPlan(gameState, templateAnchor[0], metadata, 1, 1));
};
m.HQ.prototype.canBuild = function(gameState, structure)

View File

@ -158,7 +158,8 @@ Pack.prototype.PackProgress = function(data, lateness)
var cmpNewUnitAI = Engine.QueryInterface(newEntity, IID_UnitAI);
if (cmpUnitAI && cmpNewUnitAI)
{
cmpNewUnitAI.SetHeldPosition(cmpUnitAI.GetHeldPosition());
var pos = cmpUnitAI.GetHeldPosition();
cmpNewUnitAI.SetHeldPosition(pos.x, pos.z);
if (cmpUnitAI.GetStanceName())
cmpNewUnitAI.SwitchToStance(cmpUnitAI.GetStanceName());
cmpNewUnitAI.AddOrders(cmpUnitAI.GetOrders());

View File

@ -72,7 +72,8 @@ Promotion.prototype.Promote = function(promotedTemplateName)
var cmpCurrentUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
var cmpPromotedUnitAI = Engine.QueryInterface(promotedUnitEntity, IID_UnitAI);
cmpPromotedUnitAI.SetHeldPosition(cmpCurrentUnitAI.GetHeldPosition());
var pos = cmpCurrentUnitAI.GetHeldPosition();
cmpPromotedUnitAI.SetHeldPosition(pos.x, pos.z);
if (cmpCurrentUnitAI.GetStanceName())
cmpPromotedUnitAI.SwitchToStance(cmpCurrentUnitAI.GetStanceName());