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

Conflicts:
	OpenRa.Game/Controller.cs
This commit is contained in:
Caleb Anderson
2010-01-01 01:19:36 -06:00
3 changed files with 46 additions and 2 deletions

View File

@@ -26,8 +26,8 @@ namespace OpenRa.Game
{
if (orderGenerator == null) return;
var orders = orderGenerator.Order(xy.ToInt2(), mi).ToArray();
orders.Where(order => order.Validate());
var orders = orderGenerator.Order(xy.ToInt2(), mi)
.Where(order => order.Validate()).ToArray();
recentOrders.AddRange( orders );
var voicedActor = orders.Select(o => o.Subject)

View File

@@ -143,6 +143,7 @@
<Compile Include="Traits\Activities\Idle.cs" />
<Compile Include="Traits\Activities\Land.cs" />
<Compile Include="Traits\Activities\Rearm.cs" />
<Compile Include="Traits\Activities\Repair.cs" />
<Compile Include="Traits\Activities\ReturnToBase.cs" />
<Compile Include="Traits\Activities\Teleport.cs" />
<Compile Include="BuildingInfluenceMap.cs" />

View File

@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OpenRa.Game.Traits.Activities
{
class Repair : IActivity
{
public IActivity NextActivity { get; set; }
bool isCanceled;
int remainingTicks = ticksPerPoint;
const int ticksPerPoint = 15;
const int hpPerPoint = 8;
public IActivity Tick(Actor self)
{
if (isCanceled) return NextActivity;
if (--remainingTicks == 0)
{
self.Health += hpPerPoint;
if (self.Health >= self.Info.Strength)
{
self.Health = self.Info.Strength;
return NextActivity;
}
var hostBuilding = Game.FindUnits(self.CenterLocation, self.CenterLocation)
.FirstOrDefault(a => a.traits.Contains<RenderBuilding>());
if (hostBuilding != null)
hostBuilding.traits.Get<RenderBuilding>().PlayCustomAnim(hostBuilding, "active" );
remainingTicks = ticksPerPoint;
}
return this;
}
public void Cancel(Actor self) { isCanceled = true; NextActivity = null; }
}
}