private void select() { if (mouse.isSelected("Selectable")) { HexPosition.clearSelection("Selectable"); selection = mouse; mouse.select("Selection"); Unit unit = mouse.getUnit(); selectAttackable(unit); switch (unit.Status) { case Unit.State.MOVE: turn = Turn.MOVE; break; case Unit.State.ATTACK: turn = Turn.ATTACK; break; default: print("Error: Action " + unit.Status + " not implemented."); break; } } }
private void actuallyAttack() { Unit unit = selection.getUnit(); unit.attack(mouse, unit.getDamage()); checkGameOver(); unselect(); }
private void select() { if (mouse.isSelected("Selectable")) { HexPosition.clearSelection("Selectable"); selection = mouse; mouse.select("Selection"); Unit unit = mouse.getUnit(); selectMovable(unit); moveFromPos = unit.Coordinates; switch (unit.Status) { case Unit.State.MOVE: phase = Phase.MOVE; break; case Unit.State.ATTACK: phase = Phase.ATTACK; break; default: print("Error: Action " + unit.Status + " not implemented."); break; } } }
public void moveComplete() { if (!isLocalPlayer) { return; } waiting = false; if (selectAttackable(selection.getUnit())) { turn = Turn.ATTACK; } else { CmdUnitSkipAttack(HexPosition.hexToIntPair(selection)); unselect(); } }
public void attack(HexPosition enemy, int damage) { state = State.WAIT; enemy.getUnit().defend(damage); attackComplete(); }