Création de la méthode attaquer de plateau et de joueur
This commit is contained in:
parent
10262e8792
commit
461c38ba1b
@ -1,50 +0,0 @@
|
||||
package condition;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import main.Joueur;
|
||||
import carte.CartePersonnage;
|
||||
import carte.Type;
|
||||
|
||||
|
||||
public class ConditionClass<T> extends Condition{
|
||||
|
||||
private List<Class<T>> classes;
|
||||
|
||||
|
||||
public ConditionClass(Class<T> ... classes){
|
||||
// TODO
|
||||
this.classes = new ArrayList<Class<T>>();
|
||||
this.classes.addAll(Arrays.asList(classes));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Vérifie qu'il existe au moins une classe qui correspond soit au Type soit au Personnage du Joueur.
|
||||
* <br><br>
|
||||
* exemple :
|
||||
*
|
||||
* classes = { Emi.class, Metamorphe.class, ... etc } ou classes = { Hunter.class, Shadow.class, Neutre.class }
|
||||
* <br>
|
||||
* Si la class de la carte du joueur correspond à un des élements dans classes alors on renvoie vrai, même chose pour les types.
|
||||
*
|
||||
* @param joueur Le joueur sur lequel on vérifie les conditions.
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean isTrue(Joueur joueur)
|
||||
{
|
||||
Class<? extends T> ccp = (Class<? extends T>) joueur.getCartePersonnage().getClass();
|
||||
Class<? extends T> cct = (Class<? extends T>) joueur.getType().getClass();
|
||||
|
||||
for(Class<? extends T> classe : classes) {
|
||||
|
||||
|
||||
if(ccp.getClass() == classe.getClass() || cct.getClass() == classe.getClass() ) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,14 @@
|
||||
package effet;
|
||||
|
||||
import effet.action.Action;
|
||||
import main.Joueur;
|
||||
|
||||
public abstract class EffetTarget extends Effet{
|
||||
|
||||
public EffetTarget(Action action) {
|
||||
super(action);
|
||||
}
|
||||
|
||||
public abstract void utiliser(Joueur joueur);
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package effet.action;
|
||||
|
||||
import main.Joueur;
|
||||
import main.Plateau;
|
||||
|
||||
public class ActionAttaquer extends Action {
|
||||
|
||||
@ -12,7 +13,10 @@ public class ActionAttaquer extends Action {
|
||||
*/
|
||||
@Override
|
||||
public void affecte(Joueur j1, Joueur j2) {
|
||||
j1.attaquer(j2);
|
||||
|
||||
Plateau p = j1.getPlateau();
|
||||
p.attaquer(j1, j2);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -59,6 +59,8 @@ public class Joueur {
|
||||
}
|
||||
|
||||
public void setStat(String key, int valeur) {
|
||||
|
||||
// TODO Il faut créer des observers de mort
|
||||
this.stats.put(key, valeur);
|
||||
}
|
||||
|
||||
@ -101,11 +103,35 @@ public class Joueur {
|
||||
|
||||
}
|
||||
|
||||
public void attaquer(Joueur j2) {
|
||||
// TODO Auto-generated method stub
|
||||
public void attaquer(Joueur j2, int attaqueDice) {
|
||||
|
||||
int blessure = evaluerImmunite(j2)*(this.evaluerAttaque(j2) + attaqueDice);
|
||||
|
||||
if(blessure > 0)
|
||||
{
|
||||
j2.addStat(PLAYER_HP, -blessure);
|
||||
}
|
||||
}
|
||||
|
||||
private int evaluerAttaque(Joueur j2) {
|
||||
|
||||
return this.getStat(PLAYER_DAMAGE)-j2.getStat(PLAYER_RESISTANCE);
|
||||
}
|
||||
|
||||
private int evaluerImmunite(Joueur j2) {
|
||||
|
||||
int nbToursImmune = j2.getStat(PLAYER_IMMUNITY);
|
||||
|
||||
return nbToursImmune > 0 ? 0 : 1;
|
||||
}
|
||||
|
||||
private void addStat(String key, int valeur)
|
||||
{
|
||||
int valeurBase = this.getStat(key);
|
||||
this.setStat(Joueur.PLAYER_HP,valeurBase+valeur);
|
||||
}
|
||||
|
||||
|
||||
public Plateau getPlateau() {
|
||||
return this.plateau;
|
||||
}
|
||||
|
@ -64,6 +64,13 @@ public class Plateau {
|
||||
|
||||
public void attaquer(Joueur joueur1, Joueur joueur2) {
|
||||
|
||||
int attaque = diffRolls();
|
||||
|
||||
if(attaque != 0) {
|
||||
|
||||
joueur1.attaquer(joueur2,attaque);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -71,15 +78,16 @@ public class Plateau {
|
||||
return new Joueur("0");
|
||||
}
|
||||
|
||||
public int sumRolls() {
|
||||
//pas necessaire?
|
||||
return 0;
|
||||
public int diffRolls() {
|
||||
return Math.abs(roll6()-roll4());
|
||||
}
|
||||
|
||||
public int roll4() {
|
||||
return (int) Math.floor(Math.random() * 3)+1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int rollDices4() {
|
||||
return Math.abs(roll4() - roll4());
|
||||
}
|
||||
|
@ -15,8 +15,8 @@ import main.Plateau;
|
||||
|
||||
public class Allie extends Unique{
|
||||
|
||||
public Allie(String nom, int hp, Joueur joueur) throws Exception {
|
||||
super(nom, hp, joueur);
|
||||
public Allie(Joueur joueur) {
|
||||
super("ALLIE", 8, joueur);
|
||||
|
||||
Action action = new ActionAltererStatistiquesJoueur("HP",this.getPv(),false);
|
||||
Effet effet = new EffetSelf(action);
|
||||
@ -38,10 +38,11 @@ public class Allie extends Unique{
|
||||
* @param j
|
||||
* @return void
|
||||
*/
|
||||
public void utiliser(Joueur j) {
|
||||
public void utiliser() {
|
||||
|
||||
if(!this.isCapaciteUsed()) {
|
||||
this.getEffet().utiliser(j);
|
||||
this.getEffet().utiliser(this.getJoueur());
|
||||
this.setCapaciteUsed(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,12 +12,14 @@ public class Bob extends CartePersonnage{
|
||||
this.setCondition(condition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser(Joueur j){
|
||||
|
||||
}
|
||||
|
||||
public void attaquer(Joueur j) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public abstract class CartePersonnage extends CarteCondition {
|
||||
|
||||
//méthodes
|
||||
|
||||
public void utiliser() {};
|
||||
public abstract void utiliser();
|
||||
|
||||
public void attaquer(Joueur j) {};
|
||||
|
||||
|
@ -13,4 +13,10 @@ public class Charles extends CartePersonnage{
|
||||
public void attaquer(Joueur j) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -34,4 +34,9 @@ public class Daniel extends CartePersonnage{
|
||||
this.setCondition(winCondition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -16,4 +16,10 @@ public class Emi extends CartePersonnage{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -15,4 +15,10 @@ public class LoupGarou extends CartePersonnage {
|
||||
public void contreAttaquer(Joueur j) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -10,4 +10,10 @@ public class Metamorphe extends CartePersonnage{
|
||||
this.setCondition(new WinConditionShadow());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -21,4 +21,10 @@ public class Unique extends CartePersonnage{
|
||||
this.capaciteUsed = capaciteUsed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -19,9 +19,10 @@ public class Vampire extends CartePersonnage{
|
||||
this.setCondition(new WinConditionShadow());
|
||||
}
|
||||
|
||||
public void utiliser(Joueur j)
|
||||
@Override
|
||||
public void utiliser()
|
||||
{
|
||||
this.getEffet().utiliser(j);
|
||||
this.getEffet().utiliser(this.getJoueur());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -38,4 +39,6 @@ public class Vampire extends CartePersonnage{
|
||||
utiliser(this.getJoueur());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ class ConditionClassPersonnageTest {
|
||||
ConditionClassPersonnage cc = new ConditionClassPersonnage(classes);
|
||||
|
||||
Joueur j = new Joueur(null);
|
||||
CartePersonnage cp1 = new Allie(null, 0, j);
|
||||
CartePersonnage cp1 = new Allie(j);
|
||||
|
||||
|
||||
// Le personnage fait partie des classes.
|
||||
@ -51,7 +51,7 @@ class ConditionClassPersonnageTest {
|
||||
|
||||
ConditionClassPersonnage cc = new ConditionClassPersonnage(classes);
|
||||
Joueur j = new Joueur(null);
|
||||
CartePersonnage cp1 = new Allie(null, 0, j);
|
||||
CartePersonnage cp1 = new Allie(j);
|
||||
j.setCartePersonnage(cp1);
|
||||
assertFalse(cc.isTrue(j));
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
package condition;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class ConditionClassTest {
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
fail("Not yet implemented");
|
||||
}
|
||||
|
||||
}
|
@ -61,8 +61,6 @@ class ConditionStatistiquesTest {
|
||||
cs = new ConditionStatistiques(false,"test",randInt2,ConditionStatistiques.LESS);
|
||||
assertEquals(cs.isTrue(joueur),randInt3 <= randInt2);
|
||||
|
||||
cs = new ConditionStatistiques(false,"test",randInt3,ConditionStatistiques.LESS);
|
||||
assertEquals(cs.isTrue(joueur),randInt3 <= randInt2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -79,6 +77,7 @@ class ConditionStatistiquesTest {
|
||||
//Valeur censée être comprise entre 0 et 2
|
||||
-1);
|
||||
|
||||
assertFalse(cs.isTrue(joueur));
|
||||
}
|
||||
|
||||
|
||||
|
57
tests/personnage/AllieTest.java
Normal file
57
tests/personnage/AllieTest.java
Normal file
@ -0,0 +1,57 @@
|
||||
package personnage;
|
||||
|
||||
import static org.junit.Assert.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 main.Joueur;
|
||||
import main.Plateau;
|
||||
|
||||
class AllieTest {
|
||||
|
||||
Joueur j1;
|
||||
Plateau p;
|
||||
Random rand;
|
||||
Allie a;
|
||||
|
||||
@BeforeEach
|
||||
void init()
|
||||
{
|
||||
rand = new Random();
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
j1 = new Joueur("Michel");
|
||||
|
||||
joueurs.add(j1);
|
||||
|
||||
p = new Plateau(joueurs);
|
||||
|
||||
a = new Allie(j1);
|
||||
j1.setPlateau(p);
|
||||
j1.setCartePersonnage(a);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void utiliser_SoinTotal() {
|
||||
|
||||
j1.setStat("HP", 0);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
int pvAllie = j1.getCartePersonnage().getPv();
|
||||
|
||||
assertEquals(pvAllie,j1.getStat("HP"));
|
||||
|
||||
j1.setStat("HP", 0);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
// Le soin n'a fonctionné qu'une seule fois
|
||||
assertEquals(0,j1.getStat("HP"));
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user