Commit c3c6406e authored by LucasDANIELE's avatar LucasDANIELE
Browse files

goggo

parent 767bada1
package fr.insarouen.asi.prog.asiaventure.elements.structure;
import fr.insarouen.asi.prog.asiaventure.NomDEntiteDejaUtiliseDansLeMondeException;
import org.graalvm.compiler.phases.verify.VerifyGetOptionsUsage;
import fr.insarouen.asi.prog.asiaventure.Monde;
import fr.insarouen.asi.prog.asiaventure.elements.Activable;
import fr.insarouen.asi.prog.asiaventure.elements.Etat;
......@@ -77,14 +80,17 @@ public class Porte extends ElementStructurel implements Activable{
* @throws ActivationImpossibleException
*/
public void activer() throws ActivationImpossibleException{
switch(etat){
case FERME:
etat = Etat.OUVERT;
break;
case OUVERT:
etat = Etat.FERME;
break;
}
if(etat == Etat.CASSE)
throw new ActivationImpossibleException("La porte est cassée, on ne peut pas l'activer");
else
switch(etat){
case FERME:
etat = Etat.OUVERT;
break;
case OUVERT:
etat = Etat.FERME;
break;
}
}
/**
......@@ -94,18 +100,34 @@ public class Porte extends ElementStructurel implements Activable{
* @throws ActivationImpossibleAvecObjetException
*/
public void activerAvec(Objet obj) throws ActivationImpossibleException, ActivationImpossibleAvecObjetException{
if((etat == Etat.VERROUILLE) && obj.getClass().equals(Clef.class))
etat = Etat.OUVERT;
else if((etat == Etat.OUVERT) && obj.getClass().equals(Clef.class))
etat = Etat.VERROUILLE;
else if((etat == Etat.VERROUILLE) && obj.getClass().equals(PiedDeBiche.class))
etat = Etat.CASSE;
else if((etat == Etat.FERME) && obj.getClass().equals(Clef.class))
etat = Etat.VERROUILLE;
else if((etat == Etat.FERME) && obj.getClass().equals(PiedDeBiche.class))
etat = Etat.CASSE;
if(etat == Etat.CASSE)
throw new ActivationImpossibleException("La porte est cassée, on ne peut pas l'activer");
else if(!this.activableAvec(obj))
throw new ActivationImpossibleAvecObjetException("Cet objet ne permet pas d'activer la porte");
else if(obj.getClass().equals(Clef.class))
if (serrure.activableAvec(obj)){
serrure.activerAvec(obj);
switch (etat){
case VERROUILLE:
etat=Etat.OUVERT;
break;
case FERME:
case OUVERT:
etat=Etat.VERROUILLE;
break;
}
}
else if (obj.getClass().equals(PiedDeBiche.class))
switch (etat){
case VERROUILLE:
case FERME:
etat=Etat.OUVERT;
break;
}
}
/**
......@@ -117,9 +139,8 @@ public class Porte extends ElementStructurel implements Activable{
if((etat==Etat.VERROUILLE) && (obj.getClass().equals(Clef.class)) || (obj.getClass().equals(PiedDeBiche.class)))
return true;
else if((etat==Etat.OUVERT) || (etat==Etat.FERME))
else if((etat==Etat.OUVERT) && obj.getClass().equals(Clef.class))
return true;
else
return false;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment