diff --git a/xtremvaders/src/main/java/xtremvaders/Entites/Invader.java b/xtremvaders/src/main/java/xtremvaders/Entites/Invader.java index 260b308..db30653 100644 --- a/xtremvaders/src/main/java/xtremvaders/Entites/Invader.java +++ b/xtremvaders/src/main/java/xtremvaders/Entites/Invader.java @@ -11,6 +11,7 @@ import xtremvaders.Objets.BonusJoueur.BonusManager; import xtremvaders.Objets.BonusJoueur.TypeBonus; import xtremvaders.Objets.Missiles.Missile; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Utilities.TypeMouvement; import xtremvaders.Utilities.Utilite; @@ -75,12 +76,13 @@ public Invader(Game g, String sprite,int x, int y, double vitesse) { */ @Override public void collideEffect(GameItem gi) { - if(gi.getItemType().equals("MissileJoueur")){ - Missile m = (Missile) gi; - setPtVie(getPtVie() - m.getDegat(this)); + Missile missile = null; + if(gi.getItemType().equals("MissileJoueur")) { + missile = (Missile) gi; + setPtVie(getPtVie() - missile.getDegat(this)); } //effet de la propagation de l'explosion de la bombe nuke - if(gi.getItemType().equals("explosioNuke")){ + if(gi.getItemType().equals("explosionNuke")){ setPtVie(getPtVie() - 100); } if(!estVivant()){ @@ -97,8 +99,10 @@ public void collideEffect(GameItem gi) { nombreEnnemi --; XtremVaders2021.getJoueur().addScore(); - - BonusManager.getInstance().lacherBonus(getGame(), typeBonus, getMiddleX(), getMiddleY()); + + if(missile != null && missile.getRarity() != Rarity.EPIC) { + BonusManager.getInstance().lacherBonus(getGame(), typeBonus, getMiddleX(), getMiddleY()); + } } } diff --git a/xtremvaders/src/main/java/xtremvaders/Entites/Joueur.java b/xtremvaders/src/main/java/xtremvaders/Entites/Joueur.java index e199dec..26cc7e7 100644 --- a/xtremvaders/src/main/java/xtremvaders/Entites/Joueur.java +++ b/xtremvaders/src/main/java/xtremvaders/Entites/Joueur.java @@ -150,7 +150,7 @@ else if(item.getItemType().equals("Invader")){ setPtVie(-getPtVie()); AudioDirector.getInstance().playSFX("newSounds/playerTouched"); } - else if(item.getItemType().equals("Debrits")){ + else if(item.getItemType().equals("Debris")){ setPtVie(getPtVie()-50); AudioDirector.getInstance().playSFX("newSounds/asteroidCollision"); } diff --git a/xtremvaders/src/main/java/xtremvaders/Graphics/SpritesAnimes/ExplosionNuke.java b/xtremvaders/src/main/java/xtremvaders/Graphics/SpritesAnimes/ExplosionNuke.java index 40bf741..e127697 100644 --- a/xtremvaders/src/main/java/xtremvaders/Graphics/SpritesAnimes/ExplosionNuke.java +++ b/xtremvaders/src/main/java/xtremvaders/Graphics/SpritesAnimes/ExplosionNuke.java @@ -36,7 +36,7 @@ public void collideEffect(GameItem gi) { @Override public String getItemType() { - return "explosioNuke"; + return "explosionNuke"; } @Override diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Debris/Debris.java b/xtremvaders/src/main/java/xtremvaders/Objets/Debris/Debris.java index e0257f5..2f09741 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Debris/Debris.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Debris/Debris.java @@ -53,7 +53,7 @@ public void collideEffect(GameItem gi) { @Override public String getItemType() { - return "Debrits"; + return "Debris"; } @Override diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileBoss.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileBoss.java index 93440ea..b741619 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileBoss.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileBoss.java @@ -4,6 +4,7 @@ import xtremvaders.Graphics.SpritesAnimes.EnnemiExplosion; import xtremvaders.Graphics.VFX.ItemAnime; import xtremvaders.Graphics.VFX.TypeAnimation; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Objets.Missiles.TypeMissile; import iut.Game; import iut.GameItem; @@ -45,6 +46,11 @@ public void deplacement(long dt) { this.trackPlayerPosition(); } + @Override + public Rarity getRarity() { + return Rarity.RARE; + } + @Override public int getDegat(iut.GameItem itemType) { return 50; diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileInvader.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileInvader.java index 96af38d..0c52963 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileInvader.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Ennemis/MissileInvader.java @@ -2,6 +2,7 @@ import xtremvaders.Entites.Vaisseau; import xtremvaders.Graphics.SpritesAnimes.ImpactMissile; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Objets.Missiles.TypeMissile; import iut.Game; import iut.GameItem; @@ -45,6 +46,11 @@ public void deplacement(long dt) { trackPlayerPosition(); } + @Override + public Rarity getRarity() { + return Rarity.COMMON; + } + @Override public int getDegat(iut.GameItem itemType) { return 20; diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileCanon.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileCanon.java index 3434eda..107676e 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileCanon.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileCanon.java @@ -2,6 +2,7 @@ import xtremvaders.Entites.Vaisseau; import xtremvaders.Graphics.SpritesAnimes.ImpactMissile; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Objets.Missiles.TypeMissile; import iut.Game; import iut.GameItem; @@ -36,7 +37,12 @@ public void effetExplosion() { public void deplacement(long dt) { this.moveDA(dt * getVitesse(), getRandomDirection() ); } - + + @Override + public Rarity getRarity() { + return Rarity.COMMON; + } + /** * Les missiles du canon possède une efficité fixe indifférente de l'item * qu'il a touché diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNormal.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNormal.java index 03f2eaa..b23f4a7 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNormal.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNormal.java @@ -3,6 +3,7 @@ import xtremvaders.Entites.Vaisseau; import xtremvaders.Graphics.SpritesAnimes.ImpactMissile; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Objets.Missiles.TypeMissile; import iut.Game; import iut.GameItem; @@ -46,7 +47,12 @@ public void deplacement(long dt) { if(getVaisseau().getItemType().equals("Joueur")) this.moveDA(dt * getVitesse(), 90); else if(getVaisseau().getItemType().equals("Invader")) this.moveDA(dt * getVitesse(), -90); } - + + @Override + public Rarity getRarity() { + return Rarity.COMMON; + } + /** * Les missiles normaux ne font pas beaucoup de dégât sur le boss * @param itemType diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNuke.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNuke.java index 1355f74..55280b7 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNuke.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileNuke.java @@ -9,6 +9,7 @@ import xtremvaders.Entites.Vaisseau; import xtremvaders.Graphics.VFX.ItemAnime; import xtremvaders.Graphics.VFX.TypeAnimation; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Objets.Missiles.TypeMissile; import iut.Game; import iut.GameItem; @@ -49,7 +50,12 @@ public void deplacement(long dt) { itemAnime.loopAnimation(dt, 10); this.moveDA(dt * getVitesse(), 90); } - + + @Override + public Rarity getRarity() { + return Rarity.EPIC; + } + /** * Les missiles nuke ont moins d'efficacité sur le boss mais peuvent détruire * en un coup les débrits @@ -61,7 +67,7 @@ public int getDegat(iut.GameItem itemType) { int degat = 20; if(itemType.getItemType().equals("Invader")) degat = 200; else if(itemType.getItemType().equals("Boss")) degat = 25; - else if(itemType.getItemType().equals("Debrits")) degat = 45; + else if(itemType.getItemType().equals("Debris")) degat = 45; return degat; } } diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileRapide.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileRapide.java index de096d0..631acab 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileRapide.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Joueur/MissileRapide.java @@ -2,6 +2,7 @@ import xtremvaders.Entites.Vaisseau; +import xtremvaders.Objets.Missiles.Rarity; import xtremvaders.Objets.Missiles.TypeMissile; import iut.Game; import iut.GameItem; @@ -44,6 +45,11 @@ public void deplacement(long dt) { this.moveDA(dt * getVitesse(), +90); } + @Override + public Rarity getRarity() { + return Rarity.RARE; + } + /** * Les missiles rapides occasionnent plus de dégât aux débrits * @param itemType @@ -52,7 +58,7 @@ public void deplacement(long dt) { @Override public int getDegat(iut.GameItem itemType) { int degat = 20; - if(itemType.getItemType().equals("Debrits")){ + if(itemType.getItemType().equals("Debris")){ degat = 45; } return degat; diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Missile.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Missile.java index 8062964..8f8863a 100644 --- a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Missile.java +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Missile.java @@ -56,7 +56,7 @@ public Missile(Game aG, String nomSprite ,int aX, int aY, Vaisseau vaisseau) { @Override public void collideEffect(GameItem gameItem) { //collisions entre un missile et un débrit - if(gameItem.getItemType().equals("Debrits")){ + if(gameItem.getItemType().equals("Debris")){ effetExplosion(); getGame().remove(this); } @@ -94,6 +94,8 @@ public void evolve(long dt) { */ public abstract void deplacement(long dt); + public abstract Rarity getRarity(); + public double getVitesse() { return vitesse; } diff --git a/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Rarity.java b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Rarity.java new file mode 100644 index 0000000..8d9b3a7 --- /dev/null +++ b/xtremvaders/src/main/java/xtremvaders/Objets/Missiles/Rarity.java @@ -0,0 +1,7 @@ +package xtremvaders.Objets.Missiles; + +public enum Rarity { + COMMON, + RARE, + EPIC +}