public void applyCellEffects(IFighter trigger, FightCell cell) throws FightException { if (cell.getEffects().size() <= 0) return; AppendableFightHandlerAction action = new AppendableFightHandlerAction(); for (int i = 0; i < cell.getEffects().size(); i++) { // avoid ConcurrentModificationException CellEffect effect = cell.getEffects().get(i); effect.onFighterWalkedOn(action, trigger); effect.delete(); } foreach(action); }