package games.strategy.triplea.delegate.remote; import java.util.Collection; import java.util.Map; import games.strategy.engine.data.PlayerID; import games.strategy.engine.data.Route; import games.strategy.engine.data.Territory; import games.strategy.engine.data.Unit; /** * Remote interface for MoveDelegate. */ public interface IMoveDelegate extends IAbstractMoveDelegate, IAbstractForumPosterDelegate { /** * @param units * - the units to move. * @param route * - the route to move along * @param m_transportsThatCanBeLoaded * - transports that can be loaded while moving, must be non null * @return an error message if the move can't be made, null otherwise */ String move(Collection<Unit> units, Route route, Collection<Unit> m_transportsThatCanBeLoaded); /** * @param units * - the units to move. * @param route * - the route to move along * @param m_transportsThatCanBeLoaded * - transports that can be loaded while moving, must be non null * @param newDependents * - units that will be made into new dependents if this move is successful, must be non null * @return an error message if the move can't be made, null otherwise */ String move(Collection<Unit> units, Route route, Collection<Unit> m_transportsThatCanBeLoaded, Map<Unit, Collection<Unit>> newDependents); /** * equivalent to move(units, route, Collections.EMPTY_LIST) * * @param units * - the units to move * @param route * - the route to move along * @return an error message if the move cant be made, null otherwise */ String move(Collection<Unit> units, Route route); /** * Get what air units must move before the end of the players turn. * * @param player * referring player ID * @return a list of territories with air units that must move of player ID */ Collection<Territory> getTerritoriesWhereAirCantLand(PlayerID player); Collection<Territory> getTerritoriesWhereAirCantLand(); /** * Get what units must have combat ability. * * @return a list of Territories with units that can't fight */ Collection<Territory> getTerritoriesWhereUnitsCantFight(); }