private void doNextMove() { MoveIntent nextMove = _currentBattle.TurnOrder[0]; nextMove.doMove(); _currentBattle.TurnOrder.Remove(nextMove); }
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); } }
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); }
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; } }