Files
OpenRA/OpenRA.Mods.RA/UnitStances/AssignUnitStance.cs
geckosoft 6b40abb58c Implemented: Stances
Added: Basic stances (Aggressive, Guard (Hold Ground), Hold Fire, None (dummy), Return Fire)
Added: WorldCommandWidget (to be able to set said stances)
Added: WorldCommandWidget to ra (cnc will follow, later on)
Changed: Added support to AttackBase for firing with movement disabled + utility method ScanForTarget (used by stances)
Added: AssignUnitStance (attach this to unit-producing actors, together with what stances can be picked as 'default')
2010-11-13 17:26:42 +13:00

30 lines
644 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.UnitStances
{
public class AssignUnitStanceInfo : TraitInfo<AssignUnitStance>
{
}
public class AssignUnitStance : INotifyProduction
{
public void UnitProduced(Actor self, Actor other, int2 exit)
{
var stance = UnitStance.GetActive(self);
if (stance == null)
return;
var target = other.TraitsImplementing<UnitStance>().Where(t => t.GetType() == stance.GetType()).FirstOrDefault();
if (target == null)
return;
target.Activate(other);
}
}
}