package games.strategy.triplea.delegate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.PlayerID;
import games.strategy.engine.data.Territory;
import games.strategy.engine.data.Unit;
/**
* Battle with possible dependencies
* Includes MustFightBattle and NonFightingBattle.
*/
public abstract class DependentBattle extends AbstractBattle {
private static final long serialVersionUID = 9119442509652443015L;
protected Map<Territory, Collection<Unit>> m_attackingFromMap = new HashMap<>();
protected Set<Territory> m_attackingFrom = new HashSet<>();
protected final Collection<Territory> m_amphibiousAttackFrom = new ArrayList<>();
DependentBattle(final Territory battleSite, final PlayerID attacker, final BattleTracker battleTracker,
final boolean isBombingRun, final BattleType battleType, final GameData data) {
super(battleSite, attacker, battleTracker, isBombingRun, battleType, data);
}
public Collection<Territory> getAttackingFrom() {
return m_attackingFrom;
}
public Map<Territory, Collection<Unit>> getAttackingFromMap() {
return m_attackingFromMap;
}
/**
* @return territories where there are amphibious attacks.
*/
public Collection<Territory> getAmphibiousAttackTerritories() {
return m_amphibiousAttackFrom;
}
}