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')
This commit is contained in:
geckosoft
2010-11-11 04:28:11 +01:00
committed by Bob
parent 6d67ab2240
commit 6b40abb58c
18 changed files with 640 additions and 29 deletions

View File

@@ -0,0 +1,29 @@
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);
}
}
}