/// <summary> /// Executes and then deselects the action. This usually happens when right clicking after an action has been selected. /// </summary> public override void Execute() { SubtractEnergy(); Game game = Unit.Engine3D.Source as Game; GridVertex target = game.CursorController.Target; if (AffectedVertices.Contains(target)) { game.Terrain.AdjustVertexHeight(target, -Amount * 0.25f); game.UnitController.Entity.RemoveProperty <BasicMeshRenderableProperty>(); game.UnitController.SelectedAction = null; } }
/// <summary> /// Executes and then deselects the action. This usually happens when right clicking after an action has been selected. /// </summary> public override void Execute() { SubtractEnergy(); Game game = Unit.Engine3D.Source as Game; GridVertex target = game.CursorController.Target; if (AffectedVertices.Contains(target)) { List <GridVertex> steps = new List <GridVertex>(); while (!target.Equals(Unit.Coords)) { steps.Add(target); AffectedPaths.TryGetValue(target, out target); } Unit.MoveSteps = steps.Reverse <GridVertex>().ToList().GetEnumerator(); Unit.MoveSteps.MoveNext(); Unit.IsMoving = true; game.UnitController.Entity.RemoveProperty <BasicMeshRenderableProperty>(); game.UnitController.SelectedAction = null; } }