Replace IDisableMove with upgradability

This commit is contained in:
atlimit8
2015-09-25 16:55:33 -05:00
parent 0fc04b7a4a
commit c827dbe183
23 changed files with 82 additions and 77 deletions

View File

@@ -11,18 +11,19 @@
using System.Collections.Generic;
using System.Linq;
using OpenRA.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Activities
{
public class Turn : Activity
{
readonly IDisableMove[] moveDisablers;
readonly IDisabledTrait disablable;
readonly int desiredFacing;
public Turn(Actor self, int desiredFacing)
{
moveDisablers = self.TraitsImplementing<IDisableMove>().ToArray();
disablable = self.TraitOrDefault<IMove>() as IDisabledTrait;
this.desiredFacing = desiredFacing;
}
@@ -30,7 +31,7 @@ namespace OpenRA.Mods.Common.Activities
{
if (IsCanceled)
return NextActivity;
if (moveDisablers.Any(d => d.MoveDisabled(self)))
if (disablable != null && disablable.IsTraitDisabled)
return this;
var facing = self.Trait<IFacing>();