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; }
/** * Shortcut to isPlayerVictor(Player player) */ public boolean isPlayerVictor(int playerId) { return isPlayerVictor(getPlayer(playerId)); }
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 void setPlayer(int id, IPlayer player) { final IPlayer oldPlayer = getPlayer(id); player.setGame(this); players.setElementAt(player, players.indexOf(oldPlayer)); playerIds.put(new Integer(id), player); setupTeams(); updatePlayer(player); }
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 void removePlayer(int id) { IPlayer playerToRemove = getPlayer(id); players.removeElement(playerToRemove); playerIds.remove(new Integer(id)); setupTeams(); processGameEvent(new GamePlayerChangeEvent(this, playerToRemove)); }
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 number of remaining selectable Protomechs owned by a player. */ public int getProtomechsLeft(int playerId) { IPlayer player = getPlayer(playerId); int remaining = 0; for (Entity entity : entities) { if (player.equals(entity.getOwner()) && entity.isSelectableThisTurn() && (entity instanceof Protomech)) { remaining++; } } return remaining; }
/** * 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; }
/** * Swap out the current list of dead (or fled) units for a new one. * * @param vOutOfGame - the new <code>Vector</code> of dead or fled units. This * value should <em>not</em> be <code>null</code>. * @throws IllegalArgumentException if the new list is <code>null</code>. */ public void setOutOfGameEntitiesVector(List<Entity> vOutOfGame) { assert (vOutOfGame != null) : "New out-of-game list should not be null."; Vector<Entity> newOutOfGame = new Vector<Entity>(); // Add entities for the existing players to the game. for (Entity entity : vOutOfGame) { int ownerId = entity.getOwnerId(); if ((ownerId != Entity.NONE) && (getPlayer(ownerId) != null)) { entity.setGame(this); newOutOfGame.addElement(entity); } } this.vOutOfGame = newOutOfGame; processGameEvent(new GameEntityNewOffboardEvent(this)); }
/** * 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; }
/** * Returns the number of remaining selectable infantry owned by a player. */ public int getInfantryLeft(int playerId) { IPlayer player = getPlayer(playerId); int remaining = 0; for (Entity entity : entities) { if (player.equals(entity.getOwner()) && entity.isSelectableThisTurn() && (entity instanceof Infantry)) { remaining++; } } return remaining; }
/** * Returns the number of Mechs that <code>playerId</code> has not moved * yet this turn. * * @param playerId * @return number of vehicles <code>playerId</code> has not moved yet this * turn */ public int getMechsLeft(int playerId) { IPlayer player = getPlayer(playerId); int remaining = 0; for (Entity entity : entities) { if (player.equals(entity.getOwner()) && entity.isSelectableThisTurn() && (entity instanceof Mech)) { remaining++; } } return remaining; }
/** * 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 the number of Vehicles that <code>playerId</code> has not moved * yet this turn. * * @param playerId * @return number of vehicles <code>playerId</code> has not moved yet this * turn */ public int getVehiclesLeft(int playerId) { IPlayer player = getPlayer(playerId); int remaining = 0; for (Entity entity : entities) { if (player.equals(entity.getOwner()) && entity.isSelectableThisTurn() && (entity instanceof Tank)) { remaining++; } } return remaining; }