package games.strategy.triplea.ui.display; import java.util.Collection; import java.util.List; import java.util.Map; import games.strategy.engine.data.PlayerID; import games.strategy.engine.data.Territory; import games.strategy.engine.data.Unit; import games.strategy.engine.display.IDisplay; import games.strategy.net.GUID; import games.strategy.triplea.delegate.DiceRoll; import games.strategy.triplea.delegate.Die; import games.strategy.triplea.delegate.IBattle.BattleType; public interface ITripleADisplay extends IDisplay { /** * Sends a message to all TripleAFrame that have joined the game, possibly including observers. */ void reportMessageToAll(final String message, final String title, final boolean doNotIncludeHost, final boolean doNotIncludeClients, final boolean doNotIncludeObservers); /** * Sends a message to all TripleAFrame's that are playing AND are controlling one or more of the players listed but * NOT any of the players * listed as butNotThesePlayers. * (No message to any observers or players not in the list.) */ void reportMessageToPlayers(final Collection<PlayerID> playersToSendTo, final Collection<PlayerID> butNotThesePlayers, final String message, final String title); /** * Display info about the battle. * This is the first message to be displayed in a battle * * @param battleID * - a unique id for the battle * @param location * - where the battle occurs * @param battleTitle * - the title of the battle * @param attackingUnits * - attacking units * @param defendingUnits * - defending units * @param killedUnits * - killed units * @param dependentUnits * - unit dependencies, maps Unit->Collection of units * @param attacker * - PlayerID of attacker * @param defender * - PlayerID of defender */ void showBattle(GUID battleID, Territory location, String battleTitle, Collection<Unit> attackingUnits, Collection<Unit> defendingUnits, Collection<Unit> killedUnits, Collection<Unit> attackingWaitingToDie, Collection<Unit> defendingWaitingToDie, Map<Unit, Collection<Unit>> dependentUnits, final PlayerID attacker, final PlayerID defender, final boolean isAmphibious, final BattleType battleType, final Collection<Unit> amphibiousLandAttackers); /** * @param battleID * - the battle we are listing steps for. * @param steps * - a collection of strings denoting all steps in the battle */ void listBattleSteps(GUID battleID, List<String> steps); /** * The given battle has ended. */ void battleEnd(GUID battleID, String message); /** * Notify that the casualties occurred. */ void casualtyNotification(GUID battleID, String step, DiceRoll dice, PlayerID player, Collection<Unit> killed, Collection<Unit> damaged, Map<Unit, Collection<Unit>> dependents); /** * Notify that the casualties occurred, and only the casualty. */ void deadUnitNotification(GUID battleID, PlayerID player, Collection<Unit> dead, Map<Unit, Collection<Unit>> dependents); void changedUnitsNotification(GUID battleID, PlayerID player, Collection<Unit> removedUnits, Collection<Unit> addedUnits, Map<Unit, Collection<Unit>> dependents); /** * Notification of the results of a bombing raid. */ void bombingResults(GUID battleID, List<Die> dice, int cost); /** * Notify that the given player has retreated some or all of his units. */ void notifyRetreat(String shortMessage, String message, String step, PlayerID retreatingPlayer); void notifyRetreat(GUID battleId, Collection<Unit> retreating); /** * Show dice for the given battle and step. */ void notifyDice(DiceRoll dice, String stepName); void gotoBattleStep(GUID battleId, String step); }