package fr.soprasteria.world.cases;

import java.util.ArrayList;
import java.util.List;

import fr.soprasteria.world.Declencheur;
import fr.soprasteria.world.laser.Laser;

/**
 * Case à atteindre par un laser pour réussir un niveau.
 */
public class Cible extends CaseLaserInteraction implements Declencheur {
	private transient List<CibleListener> listeners;
	
	public Cible() {
		super();
		listeners = new ArrayList<>();
	}
	
	@Override
	public void declencher() {
		for(CibleListener listener : listeners) {
			listener.cibleTouchee();
		}
	}

	@Override
	public List<Laser> reception(Laser laser) {
		declencher();
		return new ArrayList<Laser>();
	}

	/**
	 * Ajoute un écouteur.
	 * @param listener le nouvel écouteur
	 */
	public void addListener(CibleListener listener) {
		listeners.add(listener);
	}
	
	@Override
	public String toString() {
		return "Cible";
	}
}

@@ -492,25 +492,28 @@
 tener : 
-l
+getL
 isteners
 ) %7B%0A%09%09%09l
@@ -504,16 +504,18 @@
 isteners
+()
 ) %7B%0A%09%09%09l
@@ -781,25 +781,28 @@
 er) %7B%0A%09%09
-l
+getL
 isteners
 .add(lis
@@ -793,16 +793,18 @@
 isteners
+()
 .add(lis
@@ -808,32 +808,252 @@
 listener);%0A%09%7D%0A%09%0A
+%09protected List%3CCibleListener%3E getListeners() %7B%0A%09%09// n%C3%A9cessaire %C3%A0 cause de la d%C3%A9serialisation qui ne passe pas par le constructeur%0A%09%09if(listeners == null) %7B%0A%09%09%09listeners = new ArrayList%3C%3E();%0A%09%09%7D%0A%09%09return listeners;%0A%09%7D%0A%09%0A
 %09@Override%0A%09publ

Patch problème désérialisation.