From 9bde606748967a9f39095caa2c0f40b0f28ca3fe Mon Sep 17 00:00:00 2001 From: Amaury Joly Date: Mon, 14 Dec 2020 14:35:58 +0100 Subject: [PATCH] =?UTF-8?q?Bug=20mineurs,=20quand=20les=20on=20recup=20les?= =?UTF-8?q?=20items=20o=C3=B9=20que=20le=20joeur=20meurt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modele/calculs/Controle4Directions.java | 2 +- src/modele/calculs/Items.java | 4 ++-- src/modele/calculs/Jeu.java | 4 +++- src/modele/donnees/ElementFond.java | 2 +- src/modele/donnees/Items.java | 10 ++++++---- src/modele/donnees/Radis.java | 3 +-- 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/modele/calculs/Controle4Directions.java b/src/modele/calculs/Controle4Directions.java index 998e766..d48e8a5 100644 --- a/src/modele/calculs/Controle4Directions.java +++ b/src/modele/calculs/Controle4Directions.java @@ -26,7 +26,7 @@ public class Controle4Directions extends RealisateurDeDeplacement { public boolean realiserDeplacement() { boolean ret = false; for (ElementDynamique e : lstEntitesDynamiques) { - if (e instanceof Entite && directionCourante != null) + if (e instanceof Entite && directionCourante != null && !((Entite) e).estMort()) switch (directionCourante) { case gauche: case droite: diff --git a/src/modele/calculs/Items.java b/src/modele/calculs/Items.java index 7cb34ca..3e673e1 100644 --- a/src/modele/calculs/Items.java +++ b/src/modele/calculs/Items.java @@ -10,10 +10,10 @@ public class Items extends RealisateurDeDeplacement { @Override protected boolean realiserDeplacement() { for (ElementDynamique e : lstEntitesDynamiques) - if(e instanceof modele.donnees.Items) { + if(e instanceof modele.donnees.Items && ((modele.donnees.Items) e).estRecoltable()) { modele.donnees.Items i = (modele.donnees.Items) e; if(i.regarderDevantSoit() instanceof Heros) - return i.estRecolte(); + return i.avancerDirectionChoisie(null); } return false; } diff --git a/src/modele/calculs/Jeu.java b/src/modele/calculs/Jeu.java index e9b7a02..82b2f7e 100644 --- a/src/modele/calculs/Jeu.java +++ b/src/modele/calculs/Jeu.java @@ -242,8 +242,10 @@ public class Jeu { } private void retirerItem(Point pCourant, modele.donnees.Items elt) { + elt.recolter(); + grilleEntites[pCourant.x][pCourant.y][1] = null; - map.put(elt, null); + map.remove(elt); } /** Indique si p est contenu dans la grille diff --git a/src/modele/donnees/ElementFond.java b/src/modele/donnees/ElementFond.java index e8cbcbc..14deb0a 100644 --- a/src/modele/donnees/ElementFond.java +++ b/src/modele/donnees/ElementFond.java @@ -8,5 +8,5 @@ public abstract class ElementFond extends ObjetGyromide { } public abstract boolean peutPermettreDeMonterDescendre(); - public abstract boolean estRectable(); + public abstract boolean estRecoltable(); } diff --git a/src/modele/donnees/Items.java b/src/modele/donnees/Items.java index 0d3d0f7..07c3f0d 100644 --- a/src/modele/donnees/Items.java +++ b/src/modele/donnees/Items.java @@ -4,6 +4,8 @@ import modele.calculs.Direction; import modele.calculs.Jeu; public abstract class Items extends ElementFond implements ElementDynamique { + private boolean recolte = false; + public Items(Jeu jeu) { super(jeu); } @@ -14,8 +16,8 @@ public abstract class Items extends ElementFond implements ElementDynamique { } @Override - public boolean estRectable() { - return true; + public boolean estRecoltable() { + return !recolte; } @Override @@ -27,7 +29,7 @@ public abstract class Items extends ElementFond implements ElementDynamique { return jeu.regarderDevantSoit(this); } - public boolean estRecolte() { - return avancerDirectionChoisie(null); + public void recolter() { + recolte = true; } } diff --git a/src/modele/donnees/Radis.java b/src/modele/donnees/Radis.java index 2c1ae9e..ea7daf7 100644 --- a/src/modele/donnees/Radis.java +++ b/src/modele/donnees/Radis.java @@ -9,8 +9,7 @@ public abstract class Radis extends Items { // TODO @Override - public boolean estRecolte() { - return false; + public void recolter() { } // TODO