예제 #1
0
파일: Hero.cs 프로젝트: manicolosi/questar
        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;
        }
예제 #2
0
 public MoveAction(Actor actor, Direction direction)
     : base(actor)
 {
     this.direction = direction;
 }
예제 #3
0
 public MoveAction(Actor actor)
     : base(actor)
 {
     this.direction = Direction.None;
 }
예제 #4
0
 public bool CanMoveIn(Direction direction)
 {
     return CanMoveTo (direction.ApplyTo (base.Location));
 }