erge branch 'development' of https://github.com/PTE-SH/ShadowHunterGame into development
This commit is contained in:
commit
87538765ad
@ -13,7 +13,10 @@ public abstract class Equipement extends CartePiochable<Type>{
|
||||
}
|
||||
|
||||
public void utiliser(Joueur j) {
|
||||
|
||||
if(!j.getEquipements().contains(this)) {
|
||||
j.ajouterEquipement(this);
|
||||
}
|
||||
super.utiliser(j);
|
||||
}
|
||||
|
||||
public abstract void reverse(Joueur j);
|
||||
|
@ -5,10 +5,10 @@ import main.Joueur;
|
||||
|
||||
public class EquipementStat extends Equipement{
|
||||
|
||||
public EquipementStat(String nom, String description, int b) {
|
||||
public EquipementStat(String nom, String description) {
|
||||
super(nom, description);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void reverse(Joueur j) {
|
||||
ActionAltererStatistiquesJoueur action = ((ActionAltererStatistiquesJoueur) this.getEffet().getAction()).getReverseAction();
|
||||
|
@ -2,6 +2,8 @@ package condition;
|
||||
|
||||
import main.Joueur;
|
||||
|
||||
public abstract class Condition {
|
||||
public abstract boolean isTrue(Joueur joueur);
|
||||
public class Condition {
|
||||
public boolean isTrue(Joueur joueur) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ public class EffetChoisirCible extends Effet{
|
||||
@Override
|
||||
public void utiliser(Joueur joueur) {
|
||||
|
||||
Joueur j2 = joueur.choisirTous();
|
||||
Joueur j2 = joueur.choisiParmisTous();
|
||||
Action action = this.getAction();
|
||||
|
||||
action.affecte(joueur, j2);
|
||||
|
@ -15,23 +15,19 @@ public class GestionnaireEquipements {
|
||||
this.equipements = new ArrayList<Equipement>();
|
||||
}
|
||||
|
||||
public void ajouterEquipement(Equipement e) {
|
||||
public void ajouter(Equipement e) {
|
||||
this.equipements.add(e);
|
||||
e.utiliser(this.j);
|
||||
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, 1);
|
||||
}
|
||||
|
||||
public void retirerEquipement(Equipement e) {
|
||||
public void retirer(Equipement e) {
|
||||
if(this.equipements.contains(e)) {
|
||||
e.reverse(j);
|
||||
this.equipements.remove(e);
|
||||
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1);
|
||||
}
|
||||
}
|
||||
|
||||
public void reverseEffect(Equipement e) {
|
||||
e.reverse(j);
|
||||
}
|
||||
|
||||
public List<Equipement> getEquipements() {
|
||||
return equipements;
|
||||
|
@ -1,7 +1,12 @@
|
||||
package main;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import effet.Effet;
|
||||
|
||||
public class GestionnaireJeu {
|
||||
private Plateau plateau;
|
||||
private View view;
|
||||
|
||||
public GestionnaireJeu (Plateau p) {
|
||||
plateau = p;
|
||||
@ -24,4 +29,27 @@ public class GestionnaireJeu {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Joueur choisirParmisTous(Joueur joueur, List<Joueur> joueurs) {
|
||||
return joueur;
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public Joueur choisirAdjacents(Joueur joueur, List<Joueur> joueurs) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean choisir(Joueur joueur) {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import java.util.Map;
|
||||
|
||||
import carte.CarteLieu;
|
||||
import carte.Equipement;
|
||||
import carte.EquipementStat;
|
||||
import effet.Effet;
|
||||
import personnage.CartePersonnage;
|
||||
|
||||
@ -40,7 +41,7 @@ public class Joueur {
|
||||
public Joueur(String nom) {
|
||||
this.nom = nom;
|
||||
this.revele = false;
|
||||
|
||||
this.gestionnaireEquipements = new GestionnaireEquipements(this);
|
||||
|
||||
stats = new HashMap<>();
|
||||
|
||||
@ -49,7 +50,8 @@ public class Joueur {
|
||||
|
||||
//stats.put(PLAYER_HP, char.getHP());
|
||||
//stats.put(PLAYER_TURN, 1);
|
||||
//stats.put(PLAYER_DAMAGE, 0); - dégats en +
|
||||
stats.put(PLAYER_DAMAGE, 0);
|
||||
stats.put(PLAYER_NB_EQUIPEMENTS, 0);
|
||||
//stats.put(PLAYER_RESISTANCE, 0);
|
||||
//stats.put(PLAYER_REVEAL, 0);
|
||||
//stats.put(PLAYER_IMMUNITY, 0);
|
||||
@ -72,6 +74,7 @@ public class Joueur {
|
||||
if(stats.containsKey(key)) {
|
||||
return stats.get(key);
|
||||
}else {
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -90,8 +93,8 @@ public class Joueur {
|
||||
|
||||
public void voler(Joueur j2, Equipement equipement) {
|
||||
|
||||
j2.gestionnaireEquipements.retirerEquipement(equipement);
|
||||
this.gestionnaireEquipements.ajouterEquipement(equipement); }
|
||||
j2.gestionnaireEquipements.retirer(equipement);
|
||||
this.gestionnaireEquipements.ajouter(equipement); }
|
||||
|
||||
public Equipement choisir(List<Equipement> equipements) {
|
||||
// TODO Auto-generated method stub
|
||||
@ -123,22 +126,28 @@ public class Joueur {
|
||||
public void addToStat(String key, int valeur)
|
||||
{
|
||||
int valeurBase = this.getStat(key);
|
||||
this.setStat(Joueur.PLAYER_HP,valeurBase+valeur);
|
||||
this.setStat(key,valeurBase+valeur);
|
||||
}
|
||||
|
||||
|
||||
public Plateau getPlateau() {
|
||||
return this.plateau;
|
||||
}
|
||||
|
||||
|
||||
public boolean choisir() {
|
||||
return this.plateau.choisir(this);
|
||||
}
|
||||
|
||||
public Joueur choisirAdjacents() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return this.plateau.choisirAdjacents(this);
|
||||
}
|
||||
|
||||
public Effet choisir(Effet[] effets) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return this.plateau.choisirEffet(this,effets);
|
||||
}
|
||||
|
||||
public Joueur choisiParmisTous() {
|
||||
return this.plateau.choisirParmisTous(this);
|
||||
}
|
||||
|
||||
public boolean getRevele() {
|
||||
@ -162,10 +171,7 @@ public class Joueur {
|
||||
this.plateau = plateau2;
|
||||
}
|
||||
|
||||
public boolean choisir() {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public void utiliserEffetLieu() {
|
||||
this.carteLieu.utiliser(this);
|
||||
@ -181,10 +187,7 @@ public class Joueur {
|
||||
|
||||
}
|
||||
|
||||
public Joueur choisirTous() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public CarteLieu getCarteLieu() {
|
||||
return this.carteLieu;
|
||||
@ -202,4 +205,12 @@ public class Joueur {
|
||||
this.revele = b;
|
||||
}
|
||||
|
||||
public void ajouterEquipement(Equipement equipement) {
|
||||
this.gestionnaireEquipements.ajouter(equipement);
|
||||
}
|
||||
|
||||
public void retirerEquipement(Equipement equipement) {
|
||||
this.gestionnaireEquipements.retirer(equipement);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,9 +7,11 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import carte.CarteLieu;
|
||||
import effet.Effet;
|
||||
|
||||
public class Plateau {
|
||||
|
||||
private GestionnaireJeu gj;
|
||||
private List<Joueur> joueurs;
|
||||
private List<CarteLieu> lieux;
|
||||
|
||||
@ -169,4 +171,30 @@ public class Plateau {
|
||||
this.lieux = lieux;
|
||||
shuffleLieux();
|
||||
}
|
||||
|
||||
public boolean choisir(Joueur joueur) {
|
||||
return gj.choisir(joueur);
|
||||
}
|
||||
|
||||
public Joueur choisirAdjacents(Joueur joueur) {
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
CarteLieu cl = joueur.getCarteLieu();
|
||||
|
||||
joueurs.addAll(cl.getJoueurs());
|
||||
joueurs.remove(joueur);
|
||||
joueurs.addAll(cl.getJoueursAdjacents());
|
||||
|
||||
return gj.choisirAdjacents(joueur, joueurs);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
||||
return gj.choisirEffet(joueur,effets);
|
||||
}
|
||||
|
||||
public Joueur choisirParmisTous(Joueur joueur) {
|
||||
List<Joueur> joueurs = this.getJoueurs();
|
||||
return gj.choisirParmisTous(joueur,joueurs);
|
||||
}
|
||||
}
|
||||
|
5
src/main/View.java
Normal file
5
src/main/View.java
Normal file
@ -0,0 +1,5 @@
|
||||
package main;
|
||||
|
||||
public class View {
|
||||
|
||||
}
|
@ -25,7 +25,7 @@ public class Franklin extends Unique{
|
||||
Plateau p = joueur.getPlateau();
|
||||
int roll = p.roll6();
|
||||
|
||||
Joueur joueur2 = joueur.choisirTous();
|
||||
Joueur joueur2 = joueur.choisiParmisTous();
|
||||
super.attaquer(joueur2, roll);
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ public class Georges extends Unique{
|
||||
Plateau p = joueur.getPlateau();
|
||||
int roll = p.roll4();
|
||||
|
||||
Joueur joueur2 = joueur.choisirTous();
|
||||
Joueur joueur2 = joueur.choisiParmisTous();
|
||||
super.attaquer(joueur2, roll);
|
||||
}
|
||||
}
|
||||
|
100
tests/main/GestionnaireEquipementsTest.java
Normal file
100
tests/main/GestionnaireEquipementsTest.java
Normal file
@ -0,0 +1,100 @@
|
||||
package main;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import carte.EquipementStat;
|
||||
import condition.Condition;
|
||||
import effet.EffetSelf;
|
||||
import effet.action.ActionAltererStatistiquesJoueur;
|
||||
import personnage.Allie;
|
||||
|
||||
class GestionnaireEquipementsTest {
|
||||
|
||||
Joueur j1;
|
||||
Joueur j2;
|
||||
Plateau p;
|
||||
Random rand;
|
||||
Allie a1;
|
||||
Allie a2;
|
||||
|
||||
@BeforeEach
|
||||
void init()
|
||||
{
|
||||
rand = new Random();
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
j1 = new Joueur("Michel");
|
||||
j2 = new Joueur("Antoine");
|
||||
|
||||
joueurs.add(j1);
|
||||
joueurs.add(j2);
|
||||
|
||||
p = new Plateau(joueurs);
|
||||
|
||||
a1 = new Allie(j1);
|
||||
a2 = new Allie(j2);
|
||||
j1.setCartePersonnage(a1);
|
||||
j2.setCartePersonnage(a2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void ajouterEquipement_NbEquipements() {
|
||||
|
||||
int nbEffets = 20;
|
||||
|
||||
for(int i = 0; i < 20; i++) {
|
||||
|
||||
EquipementStat es = new EquipementStat("AddDamage", "desc");
|
||||
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true)));
|
||||
es.setCondition(new Condition());
|
||||
j1.ajouterEquipement(es);
|
||||
|
||||
}
|
||||
|
||||
assertEquals(nbEffets, j1.getStat(Joueur.PLAYER_NB_EQUIPEMENTS));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void ajouterEquipement_StackingStats() {
|
||||
|
||||
int nbEffets = 20;
|
||||
int valeurEffet = 3;
|
||||
|
||||
for(int i = 0; i < 20; i++) {
|
||||
|
||||
EquipementStat es = new EquipementStat("AddDamage", "desc");
|
||||
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
|
||||
es.setCondition(new Condition());
|
||||
j1.ajouterEquipement(es);
|
||||
}
|
||||
|
||||
assertEquals(nbEffets*valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE));
|
||||
}
|
||||
|
||||
@Test
|
||||
void ajouterEquipement_RetirerEffet() {
|
||||
|
||||
int valeurEffet = 3;
|
||||
|
||||
EquipementStat es = new EquipementStat("AddDamage", "desc");
|
||||
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
|
||||
es.setCondition(new Condition());
|
||||
j1.ajouterEquipement(es);
|
||||
|
||||
assertEquals(valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE));
|
||||
|
||||
j1.retirerEquipement(es);
|
||||
|
||||
assertEquals(0, j1.getStat(Joueur.PLAYER_DAMAGE));
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user