Files
OpenRA/OpenRa.Game/Order.cs
2009-10-28 22:06:39 +13:00

51 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using OpenRa.Game.Traits;
namespace OpenRa.Game
{
sealed class Order
{
public readonly Player Player;
public readonly string OrderString;
public readonly Actor Subject;
public readonly Actor TargetActor;
public readonly int2 TargetLocation;
public readonly string TargetString;
private Order( Player player, string orderString, Actor subject, Actor targetActor, int2 targetLocation, string targetString )
{
this.Player = player;
this.OrderString = orderString;
this.Subject = subject;
this.TargetActor = targetActor;
this.TargetLocation = targetLocation;
this.TargetString = targetString;
}
// TODO: serialize / deserialize
public static Order Attack( Actor subject, Actor target )
{
return new Order( subject.Owner, "Attack", subject, target, int2.Zero, null );
}
public static Order Move( Actor subject, int2 target )
{
return new Order( subject.Owner, "Move", subject, null, target, null );
}
public static Order DeployMcv( Actor subject )
{
return new Order( subject.Owner, "DeployMcv", subject, null, int2.Zero, null );
}
public static Order PlaceBuilding( Player subject, int2 target, string buildingName )
{
return new Order( subject, "PlaceBuilding", null, null, target, buildingName );
}
}
}