BuildUnit order is now in replay

This commit is contained in:
Chris Forbes
2009-10-29 20:45:07 +13:00
parent 318a1c40dd
commit c3f8019ab4
5 changed files with 107 additions and 97 deletions

View File

@@ -22,7 +22,6 @@ namespace OpenRa.Game
foreach (var order in orderGenerator.Order(xy.ToInt2(), left))
{
recentOrders.Add(order);
//UnitOrders.ProcessOrder( order );
if (order.Subject != null && order.Player == Game.LocalPlayer)
doVoice = order.Subject;
}
@@ -30,6 +29,8 @@ namespace OpenRa.Game
Game.PlaySound(Game.SovietVoices.First.GetNext() + GetVoiceSuffix(doVoice), false);
}
public void AddOrder(Order o) { recentOrders.Add(o); }
public List<Order> GetRecentOrders()
{
var ret = recentOrders;

View File

@@ -255,7 +255,7 @@ namespace OpenRa.Game
mobile.QueueActivity(new Mobile.MoveTo(unit.Location + new int2(0, 3)));
}
world.AddFrameEndTask(_ => world.Add(unit));
world.Add(unit);
if (producer.traits.Contains<RenderWarFactory>())
producer.traits.Get<RenderWarFactory>().EjectUnit();

View File

@@ -104,5 +104,10 @@ namespace OpenRa.Game
{
return new Order(subject, "PlaceBuilding", null, null, target, buildingName);
}
public static Order BuildUnit(Player subject, string unitName)
{
return new Order(subject, "BuildUnit", null, null, int2.Zero, unitName);
}
}
}

View File

@@ -60,14 +60,13 @@ namespace OpenRa.Game
public void Build(SidebarItem item)
{
if (item != null)
{
if (item == null) return;
if (item.techTreeItem.IsStructure)
Game.controller.orderGenerator = new PlaceBuilding(Game.LocalPlayer,
item.techTreeItem.tag.ToLowerInvariant());
else
Game.BuildUnit(Game.LocalPlayer, item.techTreeItem.tag.ToLowerInvariant());
}
Game.controller.AddOrder(Order.BuildUnit(Game.LocalPlayer, item.techTreeItem.tag.ToLowerInvariant()));
}
void LoadSprites( string category, string group )

View File

@@ -65,6 +65,11 @@ namespace OpenRa.Game
} );
break;
}
case "BuildUnit":
{
Game.world.AddFrameEndTask(_ => Game.BuildUnit( order.Player, order.TargetString ));
break;
}
default:
throw new NotImplementedException();
}