Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        /// <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;
            }
        }