diff --git a/AMOEBAonAMAK/src/agents/percept/Percept.java b/AMOEBAonAMAK/src/agents/percept/Percept.java index 633a06b363cf2b31b09f32fe859b78aaac838ddf..064969461e53732961f008123fc2106b850b5bfe 100644 --- a/AMOEBAonAMAK/src/agents/percept/Percept.java +++ b/AMOEBAonAMAK/src/agents/percept/Percept.java @@ -439,4 +439,10 @@ public class Percept extends AmoebaAgent { public String toString() { return getName(); } + + @Override + public void destroy() { + super.destroy(); + getAmas().setPercepts(); + } } diff --git a/AMOEBAonAMAK/src/kernel/AMOEBA.java b/AMOEBAonAMAK/src/kernel/AMOEBA.java index 53a894b58e7412118576cadb99adf46d9f7a466e..d05843c62e72bac2fd2c9abb45de07fb06c2625c 100644 --- a/AMOEBAonAMAK/src/kernel/AMOEBA.java +++ b/AMOEBAonAMAK/src/kernel/AMOEBA.java @@ -611,22 +611,10 @@ public class AMOEBA extends Amas<World> implements IAMOEBA { } public ArrayList<Percept> getPercepts() { - - if(percepts == null || percepts.size()==0) { - ArrayList<Percept> pcts = new ArrayList<Percept>(); - for (Agent<? extends Amas<World>, World> agent : getAgents()) { - if ((agent instanceof Percept)) { - pcts.add((Percept) agent); - } - } - percepts = pcts; - } - - + setPercepts(); + } return percepts; - - } /** @@ -834,7 +822,10 @@ public class AMOEBA extends Amas<World> implements IAMOEBA { percepts = new ArrayList<Percept>(); for (Agent<? extends Amas<World>, World> agent : getAgents()) { if ((agent instanceof Percept)) { - percepts.add((Percept) agent); + Percept p = (Percept) agent; + if(!p.isDying()) { + percepts.add(p); + } } } }