Merge branch 'master' of git://github.com/beedee/OpenRA

This commit is contained in:
Chris Forbes
2009-10-13 22:15:46 +13:00
2 changed files with 19 additions and 9 deletions

View File

@@ -28,16 +28,18 @@ namespace OpenRa.Game
class DeployMcvOrder : Order
{
Actor Unit;
Actor Unit;
int2 Location;
public DeployMcvOrder( Actor unit )
public DeployMcvOrder( Actor unit, int2 location )
{
Unit = unit;
Unit = unit;
Location = location;
}
public override void Apply( Game game )
{
Unit.traits.Get<Traits.McvDeploy>().Deploying = true;
Unit.traits.Get<Traits.McvDeploy>().DeployLocation = Location;
var mobile = Unit.traits.Get<Traits.Mobile>();
mobile.destination = mobile.toCell;
}

View File

@@ -7,7 +7,7 @@ namespace OpenRa.Game.Traits
{
class McvDeploy : IOrder, ITick
{
public bool Deploying;
public int2? DeployLocation;
public McvDeploy(Actor self)
{
@@ -16,18 +16,26 @@ namespace OpenRa.Game.Traits
public Order Order(Actor self, Game game, int2 xy)
{
// TODO: check that there's enough space at the destination.
if (xy == self.Location)
return new DeployMcvOrder(self);
if( xy == self.Location )
return new DeployMcvOrder( self, xy );
return null;
}
public void Tick(Actor self, Game game, int dt)
{
if (!Deploying)
var mobile = self.traits.Get<Mobile>();
if( mobile.moveFraction < mobile.moveFractionTotal )
return;
if (self.traits.Get<Mobile>().Turn(12))
if( self.Location != DeployLocation )
{
DeployLocation = null;
return;
}
if (mobile.Turn(12))
return;
game.world.AddFrameEndTask(_ =>