Exemplo n.º 1
0
        private Action CreateMoveAction(Direction direction)
        {
            GridInformation info = GridInformation.Invalid;
            Action action = null;
            Location loc = null;

            loc = direction.ApplyTo (base.Location);
            if (loc != null) {
                info = loc.GridInformation;
            }

            switch (info)
            {
                case GridInformation.Invalid:
                    Messages.Instance.Add ("You can't go that way!");
                    break;

                case GridInformation.BlockingTerrain:
                    Messages.Instance.Add ("There is something in the way.");
                    break;

                case GridInformation.Occupied:
                    AddAction (new AttackAction (this, loc.Actor));
                    break;

                default:
                    action = new MoveAction (this, direction);
                    break;
            }

            return action;
        }
Exemplo n.º 2
0
 public MoveAction(Actor actor, Direction direction)
     : base(actor)
 {
     this.direction = direction;
 }
Exemplo n.º 3
0
 public MoveAction(Actor actor)
     : base(actor)
 {
     this.direction = Direction.None;
 }
Exemplo n.º 4
0
 public bool CanMoveIn(Direction direction)
 {
     return CanMoveTo (direction.ApplyTo (base.Location));
 }