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; continue;
if (!total.canAfford(new API3.Resources(template.cost()))) if (!total.canAfford(new API3.Resources(template.cost())))
continue; continue;
templateFound = [trainable, template]; templateAnchor = [trainable, template];
break; break;
} }
} }
@ -1487,7 +1487,7 @@ m.HQ.prototype.trainEmergencyUnits = function(gameState, positions)
// and if not, take some of ther accounted resources // and if not, take some of ther accounted resources
// TODO substract only what is needed instead of reset // TODO substract only what is needed instead of reset
// TODO sort the queues // TODO sort the queues
var cost = new API3.Resources(templateFound[1].cost()); var cost = new API3.Resources(templateAnchor[1].cost());
if (!available.canAfford(cost)) if (!available.canAfford(cost))
{ {
for (var p in gameState.ai.queueManager.queues) 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() }; var metadata = { "role": "worker", "base": nearestAnchor.getMetadata(PlayerID, "base"), "trainer": nearestAnchor.id() };
if (autogarrison) if (autogarrison)
metadata.garrisonType = "protection"; 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) 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); var cmpNewUnitAI = Engine.QueryInterface(newEntity, IID_UnitAI);
if (cmpUnitAI && cmpNewUnitAI) if (cmpUnitAI && cmpNewUnitAI)
{ {
cmpNewUnitAI.SetHeldPosition(cmpUnitAI.GetHeldPosition()); var pos = cmpUnitAI.GetHeldPosition();
cmpNewUnitAI.SetHeldPosition(pos.x, pos.z);
if (cmpUnitAI.GetStanceName()) if (cmpUnitAI.GetStanceName())
cmpNewUnitAI.SwitchToStance(cmpUnitAI.GetStanceName()); cmpNewUnitAI.SwitchToStance(cmpUnitAI.GetStanceName());
cmpNewUnitAI.AddOrders(cmpUnitAI.GetOrders()); cmpNewUnitAI.AddOrders(cmpUnitAI.GetOrders());

View File

@ -72,7 +72,8 @@ Promotion.prototype.Promote = function(promotedTemplateName)
var cmpCurrentUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); var cmpCurrentUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
var cmpPromotedUnitAI = Engine.QueryInterface(promotedUnitEntity, 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()) if (cmpCurrentUnitAI.GetStanceName())
cmpPromotedUnitAI.SwitchToStance(cmpCurrentUnitAI.GetStanceName()); cmpPromotedUnitAI.SwitchToStance(cmpCurrentUnitAI.GetStanceName());