/** * Changes to the next turn, returning it. */ public GameTurn changeToNextTurn() { turnIndex++; return getTurn(); }
/** * Returns the first entity that can act in the present turn, or null if * none can. */ public Entity getFirstEntity() { return getFirstEntity(getTurn()); }
/** * Returns the id of the first entity that can act in the current turn, or * -1 if none can. */ public int getFirstEntityNum() { return getFirstEntityNum(getTurn()); }
public boolean checkForValidJumpships(int playerId) { Iterator<Entity> iter = getPlayerEntities(getPlayer(playerId), false) .iterator(); while (iter.hasNext()) { Entity entity = iter.next(); if ((entity instanceof Jumpship) && !(entity instanceof Warship) && getTurn().isValidEntity(entity, this)) { return true; } } return false; }
public boolean checkForValidWarships(int playerId) { Iterator<Entity> iter = getPlayerEntities(getPlayer(playerId), false) .iterator(); while (iter.hasNext()) { Entity entity = iter.next(); if ((entity instanceof Warship) && getTurn().isValidEntity(entity, this)) { return true; } } return false; }
public boolean checkForValidDropships(int playerId) { Iterator<Entity> iter = getPlayerEntities(getPlayer(playerId), false) .iterator(); while (iter.hasNext()) { Entity entity = iter.next(); if ((entity instanceof Dropship) && getTurn().isValidEntity(entity, this)) { return true; } } return false; }
public boolean checkForValidSmallCraft(int playerId) { Iterator<Entity> iter = getPlayerEntities(getPlayer(playerId), false) .iterator(); while (iter.hasNext()) { Entity entity = iter.next(); if ((entity instanceof SmallCraft) && getTurn().isValidEntity(entity, this)) { return true; } } return false; }
/** * Returns the next selectable entity that can act this turn, or null if * none can. * * @param start the index number to start at (not an Entity Id) */ public Entity getNextEntity(int start) { if (entities.size() == 0) { return null; } start = start % entities.size(); int entityId = entities.get(start).getId(); return getEntity(getNextEntityNum(getTurn(), entityId)); }
/** * A set of checks for aero units to make sure that the movement order is * maintained */ public boolean checkForValidSpaceStations(int playerId) { Iterator<Entity> iter = getPlayerEntities(getPlayer(playerId), false) .iterator(); while (iter.hasNext()) { Entity entity = iter.next(); if ((entity instanceof SpaceStation) && getTurn().isValidEntity(entity, this)) { return true; } } return false; }
/** * Sets the current turn index */ public void setTurnIndex(int turnIndex, int prevPlayerId) { // FIXME: occasionally getTurn() returns null. Handle that case // intelligently. this.turnIndex = turnIndex; processGameEvent(new GameTurnChangeEvent(this, getPlayer(getTurn() .getPlayerNum()), prevPlayerId)); }
/** * Returns true if the player has any valid units this turn that are not * infantry, not protomechs, or not either of those. This method is * utitilized by the "A players Infantry moves after that players other * units", and "A players Protomechs move after that players other units" * options. */ public boolean checkForValidNonInfantryAndOrProtomechs(int playerId) { Iterator<Entity> iter = getPlayerEntities(getPlayer(playerId), false) .iterator(); while (iter.hasNext()) { Entity entity = iter.next(); boolean excluded = false; if ((entity instanceof Infantry) && getOptions().booleanOption(OptionsConstants.INIT_INF_MOVE_LATER)) { excluded = true; } else if ((entity instanceof Protomech) && getOptions().booleanOption(OptionsConstants.INIT_PROTOS_MOVE_LATER)) { excluded = true; } if (!excluded && getTurn().isValidEntity(entity, this)) { return true; } } return false; }