Gestion des morts
This commit is contained in:
parent
84d63bd9c6
commit
4718e00771
@ -12,6 +12,7 @@ public abstract class CarteCondition extends CarteEffet implements Serializable{
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 903022795821166067L;
|
private static final long serialVersionUID = 903022795821166067L;
|
||||||
|
private Condition condition;
|
||||||
|
|
||||||
public CarteCondition() {
|
public CarteCondition() {
|
||||||
super("","");
|
super("","");
|
||||||
@ -21,12 +22,11 @@ public abstract class CarteCondition extends CarteEffet implements Serializable{
|
|||||||
|
|
||||||
public CarteCondition(String nom, String description) {
|
public CarteCondition(String nom, String description) {
|
||||||
super(nom, description);
|
super(nom, description);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Condition condition;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -120,7 +120,7 @@ public class CreatingCardsTest {
|
|||||||
// Ténèbre
|
// Ténèbre
|
||||||
|
|
||||||
// Araignée Sanguinaire
|
// Araignée Sanguinaire
|
||||||
/*
|
|
||||||
DatabaseManager.queryInsertObject(17, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
DatabaseManager.queryInsertObject(17, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)))));
|
||||||
|
|
||||||
@ -135,18 +135,18 @@ public class CreatingCardsTest {
|
|||||||
|
|
||||||
DatabaseManager.queryInsertObject(20, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
DatabaseManager.queryInsertObject(20, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
||||||
*/
|
|
||||||
// Dynamite
|
// Dynamite
|
||||||
|
|
||||||
// 21
|
// 21
|
||||||
|
|
||||||
|
|
||||||
// Hache tueuse
|
// Hache tueuse
|
||||||
for(int i = 0; i <= 2; i++) {
|
|
||||||
DatabaseManager.queryInsertObject(22+i,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
||||||
}
|
|
||||||
/*
|
|
||||||
DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ public class CreatingCardsTest {
|
|||||||
));
|
));
|
||||||
|
|
||||||
// 29
|
// 29
|
||||||
*/
|
|
||||||
DatabaseManager.queryInsertObject(30,new CartePiochable(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(30,new CartePiochable(CartePiochable.Type.TENEBRE,
|
||||||
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
|
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ public class ActionAltererStatistiquesJoueur extends Action{
|
|||||||
{
|
{
|
||||||
j2.addToStat(key, valeur);
|
j2.addToStat(key, valeur);
|
||||||
}else {
|
}else {
|
||||||
j2.setStat(key, valeur);
|
j2.updateStat(key, valeur);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,6 +82,6 @@ public class ActionAltererStatistiquesJoueur extends Action{
|
|||||||
mot2 = " le ";
|
mot2 = " le ";
|
||||||
}
|
}
|
||||||
|
|
||||||
return mot1+" "+valeur+" "+key+mot2+"joueur";
|
return mot1+" "+Math.abs(valeur)+" "+key+mot2+"joueur";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -396,19 +396,17 @@ public class PlateauController implements Initializable {
|
|||||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
//CartePiochable lzj = fxmlLoader.getController();
|
|
||||||
//lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void afficherEffet(Joueur j) throws IOException {
|
public void afficherEffet(Joueur j) throws IOException {
|
||||||
|
|
||||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
||||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
//CartePiochable lzj = fxmlLoader.getController();
|
|
||||||
//lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
@ -549,10 +547,8 @@ public void afficherEffet(Joueur j) throws IOException {
|
|||||||
}
|
}
|
||||||
jihm.getZoneJoueur();
|
jihm.getZoneJoueur();
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Map<String,BufferedImage> getMapRessourcesDosCartes() {
|
public Map<String,BufferedImage> getMapRessourcesDosCartes() {
|
||||||
return mapRessourcesDosCartes;
|
return mapRessourcesDosCartes;
|
||||||
}
|
}
|
||||||
@ -565,13 +561,13 @@ public void afficherEffet(Joueur j) throws IOException {
|
|||||||
|
|
||||||
public void afficherChoisirAction(Joueur joueur, List<Action> list) {
|
public void afficherChoisirAction(Joueur joueur, List<Action> list) {
|
||||||
|
|
||||||
|
|
||||||
List<Button> buttons = new ArrayList<Button>();
|
List<Button> buttons = new ArrayList<Button>();
|
||||||
|
|
||||||
for(Action a : list) {
|
for(Action a : list) {
|
||||||
Button button = interpret(a);
|
Button button = interpret(a);
|
||||||
buttons.add(button);
|
buttons.add(button);
|
||||||
button.setOnAction(x -> {
|
button.setOnAction(x -> {
|
||||||
|
|
||||||
this.choixAction = a;
|
this.choixAction = a;
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
});
|
});
|
||||||
|
@ -9,6 +9,6 @@ public enum Contexte {
|
|||||||
ACTIVER_EFFET_LIEU,
|
ACTIVER_EFFET_LIEU,
|
||||||
EFFET_BOB,
|
EFFET_BOB,
|
||||||
LANCER_DES_4,
|
LANCER_DES_4,
|
||||||
LANCER_DES_6, CHOISIR_VISION, CHOISIR_ACTION
|
LANCER_DES_6, CHOISIR_VISION, CHOISIR_ACTION, EFFET_CHARLES
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,6 @@ import carte.CartePiochable;
|
|||||||
import carte.CartePiochable.Type;
|
import carte.CartePiochable.Type;
|
||||||
import carte.CarteVision;
|
import carte.CarteVision;
|
||||||
import database.RessourceLoader;
|
import database.RessourceLoader;
|
||||||
import effet.Effet;
|
|
||||||
import effet.action.Action;
|
import effet.action.Action;
|
||||||
import ihm.controller.PlateauController;
|
import ihm.controller.PlateauController;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
@ -33,6 +33,7 @@ public class Joueur {
|
|||||||
public static final String PLAYER_NB_EQUIPEMENTS = "nb_equipements";
|
public static final String PLAYER_NB_EQUIPEMENTS = "nb_equipements";
|
||||||
|
|
||||||
private Map<String, Integer> stats;
|
private Map<String, Integer> stats;
|
||||||
|
private boolean deathState;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -44,6 +45,7 @@ public class Joueur {
|
|||||||
this.nom = nom;
|
this.nom = nom;
|
||||||
this.revele = false;
|
this.revele = false;
|
||||||
this.gestionnaireEquipements = new GestionnaireEquipements(this);
|
this.gestionnaireEquipements = new GestionnaireEquipements(this);
|
||||||
|
this.deathState = false;
|
||||||
|
|
||||||
stats = new HashMap<>();
|
stats = new HashMap<>();
|
||||||
|
|
||||||
@ -65,15 +67,32 @@ public class Joueur {
|
|||||||
return this.cartePersonnage.getEquipe();
|
return this.cartePersonnage.getEquipe();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeStat(String key, int valeur) {
|
|
||||||
this.stats.put(key, valeur);
|
|
||||||
}
|
|
||||||
public void setStat(String key, int valeur) {
|
public void setStat(String key, int valeur) {
|
||||||
this.stats.put(key, valeur);
|
this.stats.put(key, valeur);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateStat(String key, int valeur) {
|
||||||
|
setStat(key, valeur);
|
||||||
|
if(isDeadStat()) {
|
||||||
|
death();
|
||||||
|
}
|
||||||
updateVictoirePlateau();
|
updateVictoirePlateau();
|
||||||
updateVie();
|
updateVie();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isDeadStat() {
|
||||||
|
return this.stats.get(PLAYER_HP) <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDead() {
|
||||||
|
return this.deathState;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void death() {
|
||||||
|
this.deathState = true;
|
||||||
|
this.plateau.death(this);
|
||||||
|
}
|
||||||
|
|
||||||
//pour tests IA
|
//pour tests IA
|
||||||
public void setHP(int val) {
|
public void setHP(int val) {
|
||||||
this.stats.put("HP", val);
|
this.stats.put("HP", val);
|
||||||
@ -99,9 +118,7 @@ public class Joueur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateVictoirePlateau() {
|
private void updateVictoirePlateau() {
|
||||||
|
this.plateau.victoire(this);
|
||||||
int result = victoire() ? 0 : 1;
|
|
||||||
this.plateau.setStat(Plateau.PARTIE_FINIE, result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean victoire() {
|
public boolean victoire() {
|
||||||
@ -161,7 +178,7 @@ public class Joueur {
|
|||||||
if(key.contentEquals(PLAYER_HP)) {
|
if(key.contentEquals(PLAYER_HP)) {
|
||||||
this.plateau.alerationVie(this,valeur);
|
this.plateau.alerationVie(this,valeur);
|
||||||
}
|
}
|
||||||
this.setStat(key,valeurBase+valeur);
|
this.updateStat(key,valeurBase+valeur);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -179,7 +196,7 @@ public class Joueur {
|
|||||||
|
|
||||||
public void setCartePersonnage(CartePersonnage cp) {
|
public void setCartePersonnage(CartePersonnage cp) {
|
||||||
this.cartePersonnage = cp;
|
this.cartePersonnage = cp;
|
||||||
this.changeStat(PLAYER_HP, cp.getPv());
|
this.setStat(PLAYER_HP, cp.getPv());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlateau(Plateau plateau2) {
|
public void setPlateau(Plateau plateau2) {
|
||||||
@ -279,4 +296,10 @@ public class Joueur {
|
|||||||
public Joueur choisir(List<Joueur> adjacents, Contexte attaquer) {
|
public Joueur choisir(List<Joueur> adjacents, Contexte attaquer) {
|
||||||
return this.plateau.choisir(this,adjacents, attaquer);
|
return this.plateau.choisir(this,adjacents, attaquer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Integer> getStats() {
|
||||||
|
return this.stats;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@ import carte.CarteLieuMultiple;
|
|||||||
import carte.CarteLieuType;
|
import carte.CarteLieuType;
|
||||||
import carte.CartePiochable;
|
import carte.CartePiochable;
|
||||||
import database.RessourceLoader;
|
import database.RessourceLoader;
|
||||||
import effet.Effet;
|
|
||||||
import effet.EffetChoisirCible;
|
import effet.EffetChoisirCible;
|
||||||
import effet.EffetChoisirEffet;
|
import effet.EffetChoisirEffet;
|
||||||
import effet.EffetSelf;
|
import effet.EffetSelf;
|
||||||
@ -23,6 +22,7 @@ import effet.action.ActionVoler;
|
|||||||
import ihm.controller.PlateauController;
|
import ihm.controller.PlateauController;
|
||||||
import personnage.Allie;
|
import personnage.Allie;
|
||||||
import personnage.CartePersonnage;
|
import personnage.CartePersonnage;
|
||||||
|
import personnage.CartePersonnage.Equipe;
|
||||||
import personnage.Franklin;
|
import personnage.Franklin;
|
||||||
import personnage.Vampire;
|
import personnage.Vampire;
|
||||||
|
|
||||||
@ -40,6 +40,7 @@ public class Plateau extends Thread{
|
|||||||
public static final String NB_MORTS_HUNTER = "nb_morts_hunter";
|
public static final String NB_MORTS_HUNTER = "nb_morts_hunter";
|
||||||
public static final String NB_MORTS_SHADOW = "nb_morts_shadow";
|
public static final String NB_MORTS_SHADOW = "nb_morts_shadow";
|
||||||
public static final String PARTIE_FINIE = "partie_finie";
|
public static final String PARTIE_FINIE = "partie_finie";
|
||||||
|
public static final String WIN_CHARLES = "victoire_charles";
|
||||||
|
|
||||||
private Map<String, Integer> stats;
|
private Map<String, Integer> stats;
|
||||||
|
|
||||||
@ -262,30 +263,21 @@ public class Plateau extends Thread{
|
|||||||
int nbJoueurs = this.joueurs.size();
|
int nbJoueurs = this.joueurs.size();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
while(true) {
|
while(!isPartieTerminee()) {
|
||||||
|
|
||||||
System.out.println(joueurs.size());
|
|
||||||
Joueur currentJoueur = this.joueurs.get(i % nbJoueurs);
|
Joueur currentJoueur = this.joueurs.get(i % nbJoueurs);
|
||||||
System.out.println("\n\n\n\n\n");
|
|
||||||
System.out.println("Au tour de "+currentJoueur.getNom());
|
if(!currentJoueur.isDead()) {
|
||||||
System.out.println("Lancement des dés.");
|
|
||||||
deplacer(currentJoueur);
|
deplacer(currentJoueur);
|
||||||
if(isPartieTerminee()) break;
|
if(isPartieTerminee()) break;
|
||||||
System.out.println("Vous êtes désormais sur le lieu "+currentJoueur.getCarteLieu().getNom());
|
|
||||||
System.out.println("Voulez vous activer l'effet du lieu ?");
|
|
||||||
gj.afficherLieu(currentJoueur);
|
gj.afficherLieu(currentJoueur);
|
||||||
|
|
||||||
if(currentJoueur.choisir(Contexte.ACTIVER_EFFET_LIEU)) {
|
if(currentJoueur.choisir(Contexte.ACTIVER_EFFET_LIEU)) {
|
||||||
System.out.println("Vous activez l'effet du lieu.");
|
|
||||||
System.out.println("Vous avez "+currentJoueur.getStat(Joueur.PLAYER_HP)+" pv");
|
|
||||||
currentJoueur.utiliserEffetLieu();
|
currentJoueur.utiliserEffetLieu();
|
||||||
System.out.println("Vous passez a "+currentJoueur.getStat(Joueur.PLAYER_HP)+" pv");
|
|
||||||
if(isPartieTerminee()) break;
|
if(isPartieTerminee()) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("\n");
|
|
||||||
|
|
||||||
System.out.println("Souhaitez vous attaquer quelqu'un ?");
|
|
||||||
if(currentJoueur.choisir(Contexte.ATTAQUER)){
|
if(currentJoueur.choisir(Contexte.ATTAQUER)){
|
||||||
if(currentJoueur.hasOpponents()) {
|
if(currentJoueur.hasOpponents()) {
|
||||||
List<Joueur> adjacents = currentJoueur.getJoueursRange();
|
List<Joueur> adjacents = currentJoueur.getJoueursRange();
|
||||||
@ -298,17 +290,17 @@ public class Plateau extends Thread{
|
|||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
List<Joueur> gagnants = new ArrayList<Joueur>();
|
List<Joueur> gagnants = new ArrayList<Joueur>();
|
||||||
|
|
||||||
|
System.out.println(this.stats);
|
||||||
for(Joueur j : joueurs) {
|
for(Joueur j : joueurs) {
|
||||||
if(j.victoire()) {
|
if(j.victoire()) {
|
||||||
gagnants.add(j);
|
gagnants.add(j);
|
||||||
|
System.out.println("CartePersonnage "+j.getCartePersonnage()+" Stats "+j.getStats());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Liste des gagnants
|
|
||||||
// TODO Evaluate every winners
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPartieTerminee() {
|
public boolean isPartieTerminee() {
|
||||||
@ -445,17 +437,31 @@ public class Plateau extends Thread{
|
|||||||
CarteLieu cl = joueur.getCarteLieu();
|
CarteLieu cl = joueur.getCarteLieu();
|
||||||
|
|
||||||
joueurs.addAll(cl.getJoueurs());
|
joueurs.addAll(cl.getJoueurs());
|
||||||
joueurs.remove(joueur);
|
|
||||||
joueurs.addAll(cl.getJoueursAdjacents());
|
joueurs.addAll(cl.getJoueursAdjacents());
|
||||||
|
joueurs.remove(joueur);
|
||||||
|
|
||||||
|
removeDeads(joueurs);
|
||||||
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void removeDeads(List<Joueur> joueurs) {
|
||||||
|
|
||||||
|
List<Joueur> toRemove = new ArrayList<Joueur>();
|
||||||
|
for(Joueur j : joueurs) {
|
||||||
|
|
||||||
|
if(j.isDead()) {
|
||||||
|
toRemove.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
joueurs.removeAll(toRemove);
|
||||||
|
}
|
||||||
|
|
||||||
public Joueur choisirParmisTous(Joueur joueur) {
|
public Joueur choisirParmisTous(Joueur joueur) {
|
||||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||||
joueurs.addAll(this.getJoueurs());
|
joueurs.addAll(this.getJoueurs());
|
||||||
joueurs.remove(joueur);
|
joueurs.remove(joueur);
|
||||||
|
removeDeads(joueurs);
|
||||||
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,4 +491,39 @@ public class Plateau extends Thread{
|
|||||||
public Joueur choisir(Joueur joueur, List<Joueur> adjacents, Contexte attaquer) {
|
public Joueur choisir(Joueur joueur, List<Joueur> adjacents, Contexte attaquer) {
|
||||||
return gj.choisirJoueur(joueur, adjacents, attaquer);
|
return gj.choisirJoueur(joueur, adjacents, attaquer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void death(Joueur joueur) {
|
||||||
|
|
||||||
|
Equipe ej = joueur.getEquipe();
|
||||||
|
|
||||||
|
switch(ej) {
|
||||||
|
case SHADOW:
|
||||||
|
this.updateStat(NB_MORTS_SHADOW,1,true);
|
||||||
|
break;
|
||||||
|
case HUNTER:
|
||||||
|
this.updateStat(NB_MORTS_HUNTER,1,true);
|
||||||
|
break;
|
||||||
|
case NEUTRE:
|
||||||
|
this.updateStat(NB_MORTS_NEUTRAL,1,true);
|
||||||
|
break;}
|
||||||
|
|
||||||
|
this.updateStat(NB_MORTS,1,true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateStat(String key , int value, boolean ajouter) {
|
||||||
|
if(ajouter) {
|
||||||
|
int valeurBase = this.getStat(key);
|
||||||
|
this.setStat(key, valeurBase+value);
|
||||||
|
}else {
|
||||||
|
this.setStat(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void victoire(Joueur joueur) {
|
||||||
|
if(joueur.victoire()) {
|
||||||
|
this.updateStat(PARTIE_FINIE, 1, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package personnage;
|
package personnage;
|
||||||
|
|
||||||
import carte.CarteCondition;
|
import carte.CarteCondition;
|
||||||
|
import condition.Condition;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
|
|
||||||
public abstract class CartePersonnage extends CarteCondition {
|
public abstract class CartePersonnage extends CarteCondition {
|
||||||
@ -19,7 +20,6 @@ public abstract class CartePersonnage extends CarteCondition {
|
|||||||
super(nom, description);
|
super(nom, description);
|
||||||
this.pv = pv;
|
this.pv = pv;
|
||||||
this.joueur = joueur;
|
this.joueur = joueur;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void utiliser();
|
public abstract void utiliser();
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
package personnage;
|
package personnage;
|
||||||
|
|
||||||
|
import condition.Condition;
|
||||||
|
import condition.ConditionStatistiques;
|
||||||
import effet.Effet;
|
import effet.Effet;
|
||||||
import effet.EffetSelf;
|
import effet.EffetSelf;
|
||||||
import effet.action.Action;
|
import effet.action.Action;
|
||||||
import effet.action.ActionAltererStatistiquesJoueur;
|
import effet.action.ActionAltererStatistiquesJoueur;
|
||||||
|
import main.Contexte;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
import main.Plateau;
|
import main.Plateau;
|
||||||
|
|
||||||
@ -16,6 +19,9 @@ public class Charles extends CartePersonnage{
|
|||||||
Effet effet = new EffetSelf(action);
|
Effet effet = new EffetSelf(action);
|
||||||
this.setEffet(effet);
|
this.setEffet(effet);
|
||||||
|
|
||||||
|
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.WIN_CHARLES, 1, ConditionStatistiques.EQUAL);
|
||||||
|
this.setCondition(winCondition);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Charles() {
|
public Charles() {
|
||||||
@ -24,6 +30,9 @@ public class Charles extends CartePersonnage{
|
|||||||
Action action = new ActionAltererStatistiquesJoueur("HP",-2,true);
|
Action action = new ActionAltererStatistiquesJoueur("HP",-2,true);
|
||||||
Effet effet = new EffetSelf(action);
|
Effet effet = new EffetSelf(action);
|
||||||
this.setEffet(effet);
|
this.setEffet(effet);
|
||||||
|
|
||||||
|
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.WIN_CHARLES, 1, ConditionStatistiques.EQUAL);
|
||||||
|
this.setCondition(winCondition);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -32,20 +41,22 @@ public class Charles extends CartePersonnage{
|
|||||||
Joueur joueur = this.getJoueur();
|
Joueur joueur = this.getJoueur();
|
||||||
super.attaquer(j, blessure);
|
super.attaquer(j, blessure);
|
||||||
|
|
||||||
if(joueur.getStat(Joueur.PLAYER_HP) > 2 && joueur.getRevele()){
|
if(joueur.getStat(Joueur.PLAYER_HP) > 2 && joueur.getRevele()
|
||||||
|
&& joueur.choisir(Contexte.EFFET_CHARLES)){
|
||||||
|
|
||||||
Plateau p = j.getPlateau();
|
Plateau p = j.getPlateau();
|
||||||
utiliser(joueur);
|
utiliser(joueur);
|
||||||
p.attaquer(this.getJoueur(), j);
|
p.attaquer(this.getJoueur(), j);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Plateau p = j.getPlateau();
|
||||||
|
if(j.isDead() && (p.getStat(Plateau.NB_MORTS) >= 3)) {
|
||||||
|
p.setStat(Plateau.WIN_CHARLES, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void utiliser() {
|
public void utiliser() {
|
||||||
|
|
||||||
/*
|
|
||||||
System.out.println("vie avant : " + this.getJoueur().getCartePersonnage().getPv());
|
|
||||||
this.getJoueur().setStat("HP", this.getJoueur().getStat("HP") - 2);
|
|
||||||
System.out.println("vie apres : " + this.getJoueur().getCartePersonnage().getPv());
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
package personnage;
|
package personnage;
|
||||||
|
|
||||||
import condition.WinConditionHunter;
|
import condition.WinConditionHunter;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user