Skip to content
Snippets Groups Projects
Commit 876135ea authored by Louis MALTERRE's avatar Louis MALTERRE
Browse files

bug zombies retire LM

parent 17b036f1
Branches
No related tags found
No related merge requests found
package entity;
import environnement.Coordonnees;
import environnement.HitBox;
import environnement.Physique;
import environnement.PositionCollision;
import static environnement.PositionCollision.*;
import map.Obstacle;
import static jeu.Jeu.getGameCharacter;
import static jeu.Jeu.getObstacleTable;
import java.util.HashMap;
......@@ -51,6 +51,30 @@ public class Boss extends Monster{
}
public void attaque(){
if ((Math.abs(this.coord.getX()-getGameCharacter().coord.getX()) <= 2+entityWIDTH/2+getGameCharacter().entityWIDTH/2 && Math.abs(this.coord.getZ()-getGameCharacter().coord.getZ()) <= entityHEIGHT && characInFrontOf()) || isAttacking > 0){ //n'attaque que si perso pas invincible
//si il n'est pas immobile il s'arrete
if (isAttacking < 100){
isAttacking++;
}
//on cree l'attaque
else{
Coordonnees coordAttack = new Coordonnees(this.coord.getX() + direction*entityWIDTH/2,this.coord.getZ());
Attack monsterAttack = new Attack(attackStat, coordAttack, new HitBox(coordAttack, entityHEIGHT, entityWIDTH+20));
//si il ya collision entre le perso et l'attaque
if (HitBox.collision(monsterAttack.getHitBox(), getGameCharacter().hitBox)){
//l'attaque fait ses degats
monsterAttack.dealDamage(getGameCharacter());
}
isAttacking++;
if (isAttacking > 200)isAttacking = 0; //animation d'attaque finie
}
//else isAttacking = 0;//animation d'attaque finie
}
}
public void collisionGestion(){
List<Obstacle> listeObstaclesInVoisinage = getObstacleTable();
//stocke l'obstacle avec lequel il y a eu collision
......
......@@ -108,11 +108,11 @@ public class Monster extends Entity{
public void attaque(){//isAttacking > 0 pour dire que si il est entrain d'attaquer, il finit son attaque
if ((Math.abs(this.coord.getX()-getGameCharacter().coord.getX()) <= 2+entityWIDTH/2+getGameCharacter().entityWIDTH/2 && Math.abs(this.coord.getZ()-getGameCharacter().coord.getZ()) <= entityHEIGHT && characInFrontOf()) || isAttacking > 0){ //n'attaque que si perso pas invincible
//si il n'est pas immobile il s'arrete
if (isAttacking >= 50){
if (isAttacking <= 100){
isAttacking++;
}
//sinon on cree l'attaque
else{
//on cree l'attaque
Coordonnees coordAttack = new Coordonnees(this.coord.getX() + direction*entityWIDTH/2,this.coord.getZ());
Attack monsterAttack = new Attack(attackStat, coordAttack, new HitBox(coordAttack, entityHEIGHT, entityWIDTH+20));
......@@ -120,10 +120,12 @@ public class Monster extends Entity{
if (HitBox.collision(monsterAttack.getHitBox(), getGameCharacter().hitBox)){
//l'attaque fait ses degats
monsterAttack.dealDamage(getGameCharacter());
}
isAttacking++;//il peut rebouger
if (isAttacking > 100)isAttacking = 0; //animation d'attaque finie
//if (isAttacking > 200)isAttacking = 0;
}
else isAttacking = 0;//animation d'attaque finie
}
}
......@@ -145,7 +147,7 @@ public class Monster extends Entity{
private void updateNbFrameInvincible(){nbFramesInvincible = Math.max(0, nbFramesInvincible-1);
}
private Boolean characInFrontOf(){
protected Boolean characInFrontOf(){
return (direction == 1 && getGameCharacter().getCoord().getX() >= this.coord.getX()) || (direction == -1 && getGameCharacter().getCoord().getX() <= this.coord.getX());
}
......
......@@ -32,7 +32,7 @@ public class Jeu implements Game{
//Coordonees de debut du personnage
static final double zdebut = 700;
static final double zdebut = 1000;
static final double xdebut = 1400;
//perso
......
......@@ -11,22 +11,22 @@ import environnement.Coordonnees;
import environnement.HitBox;
import jeu.Jeu;
import map.Coffre;
import map.LevelManager;
import map.Obstacle;
public class CharacterTest {
Character character;
Obstacle obstacleTest;
Monster monster;
Coffre coffreTest;
static Character character;
static Obstacle obstacleTest;
static Monster monster;
static Coffre coffreTest;
@BeforeClass
public void generateParameters(){
public static void generateParameters(){
character = new Character(new Coordonnees(2,3), 100, 1, 50000);
obstacleTest = new Obstacle(new HitBox(new Coordonnees(10, 30),50,60));
monster = new Monster(new Coordonnees(20, 3), 100, 50, 60, 1, 1);
Jeu.getMonsterList().add(monster);
coffreTest = new Coffre(new HitBox(new Coordonnees(10, 30),50,60));
character.tableCommande.put("CommandX",(double) 1000);
character.tableCommande.put("CommandZ",(double) 1000000);
character.tableCommande.put("CommandAttack", (double) 1);
......@@ -40,8 +40,8 @@ public class CharacterTest {
@Test
public void testCollisionGestion() {
assertTrue("y a collision avec l obstacle", HitBox.collision(character.hitBox, obstacleTest.getHitbox()));
character.collisionGestion();
assertFalse("y a plus collision", HitBox.collision(character.hitBox, obstacleTest.getHitbox()));
}
@Test
......@@ -54,13 +54,13 @@ public class CharacterTest {
}
@Test
/*@Test
public void testKeyGestion() {
assertTrue("il a pas de cle", character.key==0);
character.keyGestion();
assertTrue("il a une cle", character.key==1);
}
}*/
@Test
public void testResetCommand() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment