private void doNextMove()
        {
            MoveIntent nextMove = _currentBattle.TurnOrder[0];

            nextMove.doMove();
            _currentBattle.TurnOrder.Remove(nextMove);
        }
示例#2
0
        private bool HandleMove(MoveIntent intent)
        {
            var success = Move(intent.Direction);

            if (success)
            {
                // Let the client know what they can see in their new position.
                Client.SendVisibleLevelState(timeOffset: 1);
            }

            return success;
        }
        private void getNextMove()
        {
            Character  currentChar = _needMoveCharacters[0];
            MoveIntent m           = currentChar.getMove(_currentBattle);

            _currentBattle.TurnOrder.Add(m);
            _needMoveCharacters.RemoveAt(0);
            if (_needMoveCharacters.Count == 0)
            {
                _currentBattle.TurnOrder.Sort((m1, m2) => m1.MovePriority - m2.MovePriority);
            }
        }
示例#4
0
        public MoveIntent GetMoveFor(Character c, Battle b)
        {
            Move       selectedMove = null;
            MoveIntent ret          = null;

            while (ret == null)
            {
                selectedMove = Frontend.Instance.selectMove(c);
                if (selectedMove != null)
                {
                    ret = generateIntent(c, selectedMove, b);
                }
            }
            return(ret);
        }
示例#5
0
    public void process(MoveIntent intent)
    {
        switch (intent)
        {
        case MoveIntent.forward:
            HyperPosition inFront      = player.position.move(player.direction.facing);
            HyperPosition inFrontBelow = inFront.move(player.direction.standing, -1);

            if (hyperGrid.checkBlocked(inFront))
            {
                player.move(MoveResult.upward);
            }
            else if (hyperGrid.checkBlocked(inFrontBelow))
            {
                player.move(MoveResult.forward);
            }
            else
            {
                player.move(MoveResult.downward);
            }
            break;

        case MoveIntent.turnRightSide:
            player.move(MoveResult.toRightSide);
            break;

        case MoveIntent.turnLeftSide:
            player.move(MoveResult.toLeftSide);
            break;

        case MoveIntent.turnRightUnseen:
            player.move(MoveResult.toUnseenRight);
            break;

        case MoveIntent.turnLeftUnseen:
            player.move(MoveResult.toUnseenLeft);
            break;
        }
    }