import java.util.List; public class Action { String nom; Condition visible; List connaissances; List objetsRecus; List objetsConso; Condition finInterraction; List descriptions; public Action( String nom, Condition visible, Condition finInterraction, List connaissances, List objetsRecus, List objetsConso, List descriptions) { this.nom = nom; this.visible = visible; this.connaissances = connaissances; this.objetsRecus = objetsRecus; this.objetsConso = objetsConso; this.finInterraction = finInterraction; this.descriptions = descriptions; } void actionner() { for (Connaissance c : this.connaissances) { if (!Jeu.explorateur.connaissances.contains(c)) { Jeu.explorateur.connaissances.add(c); } } for (Objet o : this.objetsRecus) { Jeu.explorateur.objets.add(o); } for (Objet o : this.objetsConso) { Jeu.explorateur.objets.remove(o); } } @Override public String toString() { for (Description d : this.descriptions) { if (d.condition.evaluer()) { return d.toString(); } } return "No desc"; } public static Action search(List list, String name) { return list.stream().filter(o -> o.nom.equals(name)).findFirst() .orElseThrow(() -> new IllegalArgumentException("No data found")); } }