}
private boolean playerHasApLeft() {
- if (model.player.ap.current >= model.player.useItemCost) return true;
- if (model.player.ap.current >= model.player.combatTraits.attackCost) return true;
- if (model.player.ap.current >= model.player.actorTraits.moveCost) return true;
+ final Player player = model.player;
+ if (player.hasAPs(player.useItemCost)) return true;
+ if (player.hasAPs(player.combatTraits.attackCost)) return true;
+ if (player.hasAPs(player.actorTraits.moveCost)) return true;
return false;
}
private void playerActionCompleted() {
if (!playerHasApLeft()) endPlayerTurn();
}
private void continueTurn() {
- if (!playerHasApLeft()) handleNextMonsterAction();
+ if (model.uiSelections.isPlayersCombatTurn) return;
+ if (playerHasApLeft()) return;
+ handleNextMonsterAction();
}
private void executeCombatMove(final Coord dest) {
public void endPlayerTurn() {
model.player.ap.current = 0;
+ model.uiSelections.isPlayersCombatTurn = false;
for (MonsterSpawnArea a : model.currentMap.spawnAreas) {
for (Monster m : a.monsters) {
m.setMaxAP();
private Monster determineNextMonster(Monster previousMonster) {
if (previousMonster != null) {
- if (previousMonster.useAPs(previousMonster.combatTraits.attackCost)) return previousMonster;
+ if (previousMonster.hasAPs(previousMonster.combatTraits.attackCost)) return previousMonster;
}
for (MonsterSpawnArea a : model.currentMap.spawnAreas) {
if (!m.isAgressive()) continue;
if (m.rectPosition.isAdjacentTo(model.player.position)) {
- if (m.useAPs(m.combatTraits.attackCost)) return m;
+ if (m.hasAPs(m.combatTraits.attackCost)) return m;
}
}
}
endMonsterTurn();
return;
}
+ currentActiveMonster.useAPs(currentActiveMonster.combatTraits.attackCost);
context.mainActivity.combatview.updateTurnInfo(currentActiveMonster);
Resources r = context.mainActivity.getResources();
private void newPlayerTurn() {
model.player.setMaxAP();
+ model.uiSelections.isPlayersCombatTurn = true;
updateTurnInfo();
}
private void updateTurnInfo() {