feat: implement method to start a game
This commit is contained in:
parent
f3b5fc277e
commit
596ace355a
@ -57,6 +57,13 @@ public class GameInstance {
|
|||||||
return manager.processRequests(requests, false);
|
return manager.processRequests(requests, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes and starts the game.
|
||||||
|
*/
|
||||||
|
public void startGame() {
|
||||||
|
emit(manager.startGame());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produces a {@link EventType#GamestateEvent} for the current {@link GameState}.
|
* Produces a {@link EventType#GamestateEvent} for the current {@link GameState}.
|
||||||
* @return The resulting event
|
* @return The resulting event
|
||||||
|
@ -490,7 +490,7 @@ class GameLogic {
|
|||||||
* @param state The game state to work on
|
* @param state The game state to work on
|
||||||
* @return The list of resulting {@link Event}s
|
* @return The list of resulting {@link Event}s
|
||||||
*/
|
*/
|
||||||
private static ArrayList<Event> handleTurnEnd(GameState state) {
|
public static ArrayList<Event> handleTurnEnd(GameState state) {
|
||||||
ArrayList<Event> result = new ArrayList<>();
|
ArrayList<Event> result = new ArrayList<>();
|
||||||
|
|
||||||
ArrayList<EntityID> order = state.turnOrder;
|
ArrayList<EntityID> order = state.turnOrder;
|
||||||
@ -521,8 +521,8 @@ class GameLogic {
|
|||||||
|
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
int activeIndex = alive.indexOf(state.activeCharacter);
|
int activeIndex = state.activeCharacter != null ? alive.indexOf(state.activeCharacter) : -1;
|
||||||
if(activeIndex == alive.size() - 1) {
|
if(activeIndex == -1 || activeIndex == alive.size() - 1) {
|
||||||
state.activeCharacter = alive.get(0);
|
state.activeCharacter = alive.get(0);
|
||||||
//reached end of turn order, new round
|
//reached end of turn order, new round
|
||||||
state.roundNumber++;
|
state.roundNumber++;
|
||||||
|
@ -53,6 +53,14 @@ class GameStateManager {
|
|||||||
return (Event[])GameLogic.checkTurnEnd(state).toArray();
|
return (Event[])GameLogic.checkTurnEnd(state).toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts the game.
|
||||||
|
* @return The resulting {@link Event}s
|
||||||
|
*/
|
||||||
|
public Event[] startGame() {
|
||||||
|
return (Event[])GameLogic.handleTurnEnd(state).toArray();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Applies an array of {@link Event}s to the game state.
|
* Applies an array of {@link Event}s to the game state.
|
||||||
* @param events The events to apply
|
* @param events The events to apply
|
||||||
|
Loading…
Reference in New Issue
Block a user