Little cleaning with actions change.
This commit is contained in:
parent
c6ed835eda
commit
4287ddf6d8
@ -14,18 +14,32 @@ public class ComportementActionChangerCouleurCase implements ComportementAction
|
||||
|
||||
@Override
|
||||
public void executerAction(Personnage p, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
||||
ArrayList<CaseAbstraite> cases = t.c;
|
||||
ArrayList<CaseColore> cases = (ArrayList<CaseColore>) t.c.clone();
|
||||
ArrayList<Personnage> persos = (ArrayList<Personnage>) t.p.clone();
|
||||
|
||||
for (Personnage personnage : persos) {
|
||||
cases.remove(personnage.getCaseCourante());
|
||||
}
|
||||
|
||||
PersonnageBattleZone pb = (PersonnageBattleZone) p;
|
||||
ArrayList<CaseColore> remove = new ArrayList<CaseColore>();
|
||||
for (CaseColore ca : cases) {
|
||||
if (ca.getCouleur().equals(pb.getCouleur())) {
|
||||
remove.add(ca);
|
||||
}
|
||||
}
|
||||
cases.removeAll(remove);
|
||||
|
||||
int size = cases.size();
|
||||
int item = new Random().nextInt(size);
|
||||
CaseColore caseColore = (CaseColore) p.getCaseCourante();
|
||||
PersonnageBattleZone personnage = (PersonnageBattleZone) p;
|
||||
caseColore.setOccupant(null);
|
||||
|
||||
CaseColore dest = (CaseColore) cases.get(item);
|
||||
dest.setOccupant(p);
|
||||
p.setCaseCourante(dest);
|
||||
|
||||
dest.setCouleur(personnage.getCouleur());
|
||||
dest.setCouleur(pb.getCouleur());
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
package Comportements;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Person.Personnage;
|
||||
import utils.Tuple;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ComportementActionRamasserNeige implements ComportementAction {
|
||||
|
||||
@Override
|
||||
public void executerAction(Personnage joueur, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
||||
|
||||
}
|
||||
}
|
@ -12,18 +12,25 @@ public class ComportementActionSeDeplacer implements ComportementAction {
|
||||
|
||||
@Override
|
||||
public void executerAction(Personnage perso, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
||||
ArrayList<CaseAbstraite> cases = t.c;
|
||||
ArrayList<ObjetAbstrait> objs = t.o;
|
||||
ArrayList<CaseAbstraite> cases = (ArrayList<CaseAbstraite>) t.c.clone();
|
||||
ArrayList<ObjetAbstrait> objs = (ArrayList<ObjetAbstrait>) t.o.clone();
|
||||
|
||||
CaseAbstraite c = perso.getCaseCourante();
|
||||
c.setOccupant(null);
|
||||
|
||||
CaseAbstraite destination;
|
||||
CaseAbstraite destination = null;
|
||||
if (objs.isEmpty()) {
|
||||
int size = cases.size();
|
||||
int item = new Random().nextInt(size);
|
||||
destination = cases.get(item);
|
||||
} else {
|
||||
recupererObjets(objs, destination, perso);
|
||||
}
|
||||
destination.setOccupant(perso);
|
||||
perso.setCaseCourante(destination);
|
||||
}
|
||||
|
||||
private void recupererObjets(ArrayList<ObjetAbstrait> objs, CaseAbstraite destination, Personnage perso) {
|
||||
int size = objs.size();
|
||||
int item = new Random().nextInt(size);
|
||||
destination = objs.get(item).getCaseCourante();
|
||||
@ -31,8 +38,5 @@ public class ComportementActionSeDeplacer implements ComportementAction {
|
||||
destination.setObjetOccupant(null);
|
||||
perso.setObjet(objs.get(item));
|
||||
}
|
||||
destination.setOccupant(perso);
|
||||
perso.setCaseCourante(destination);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
package Comportements;
|
||||
|
||||
public enum EAction {
|
||||
ChangerCouleurCase, RamasserNeige, SeDeplacer, TirerBalon, TirerBouleDeNeige
|
||||
ChangerCouleurCase, SeDeplacer, TirerBalon, TirerBouleDeNeige
|
||||
}
|
||||
|
@ -2,12 +2,27 @@ package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Objets.ObjetAvecBonusForce;
|
||||
import Objets.ObjetAvecBonusPV;
|
||||
import Objets.ObjetAvecBonusVitesse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class FabriqueObjetBattleSnow extends FabriqueObjetAbstraite {
|
||||
@Override
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
return null;
|
||||
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
|
||||
if (new Random().nextInt(3) == 1) {
|
||||
objs.add(new ObjetAvecBonusPV("Potion", 10, 10, 10));
|
||||
}
|
||||
if (new Random().nextInt(3) == 2) {
|
||||
objs.add(new ObjetAvecBonusVitesse("Etoile", 10, 10, 10));
|
||||
|
||||
}
|
||||
if (new Random().nextInt(3) == 3) {
|
||||
objs.add(new ObjetAvecBonusForce("Marteau", 10, 10, 10));
|
||||
}
|
||||
return objs;
|
||||
}
|
||||
}
|
||||
|
@ -2,27 +2,13 @@ package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Objets.ObjetAvecBonusForce;
|
||||
import Objets.ObjetAvecBonusPV;
|
||||
import Objets.ObjetAvecBonusVitesse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class FabriqueObjetBattleZone extends FabriqueObjetAbstraite {
|
||||
@Override
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
|
||||
if (new Random().nextInt(3) == 1) {
|
||||
objs.add(new ObjetAvecBonusPV("Potion", 10, 10, 10));
|
||||
return new ArrayList<ObjetAbstrait>();
|
||||
}
|
||||
if (new Random().nextInt(3) == 2) {
|
||||
objs.add(new ObjetAvecBonusVitesse("Etoile", 10, 10, 10));
|
||||
|
||||
}
|
||||
if (new Random().nextInt(3) == 3) {
|
||||
objs.add(new ObjetAvecBonusForce("Marteau", 10, 10, 10));
|
||||
}
|
||||
return objs;
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,15 @@ package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Objets.ObjetBallon;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class FabriqueObjetFootball extends FabriqueObjetAbstraite {
|
||||
@Override
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
return null;
|
||||
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
|
||||
objs.add(new ObjetBallon());
|
||||
return objs;
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,6 @@ import Cases.CaseAbstraite;
|
||||
import Comportements.ComportementAction;
|
||||
import Comportements.ComportementActionTirerBalon;
|
||||
import Observateur.Organisation;
|
||||
import Person.Arbitre;
|
||||
import Person.JoueurDeChamp;
|
||||
import Person.Personnage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -16,12 +14,6 @@ public class FabriquePersonnagesFootball extends FabriquePersonnagesAbstraite {
|
||||
@Override
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
|
||||
|
||||
// Add referee
|
||||
Arbitre arbitre = new Arbitre("Colina");
|
||||
|
||||
|
||||
// TODO: Add team 1
|
||||
JoueurDeChamp joueur = new JoueurDeChamp("Zidane", parDefaut);
|
||||
// TODO: Add players to team 1
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@ package Fabriques.Plateau;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
|
||||
public class FabriquePlateauBattleGoal extends FabriquePlateauAbstraite {
|
||||
public class FabriquePlateauFootball extends FabriquePlateauAbstraite {
|
||||
|
||||
@Override
|
||||
public CaseAbstraite[][] CreerPlateau() {
|
32
src/Fabriques/Scenario/FabriqueScenarioBattleSnow.java
Normal file
32
src/Fabriques/Scenario/FabriqueScenarioBattleSnow.java
Normal file
@ -0,0 +1,32 @@
|
||||
package Fabriques.Scenario;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Fabriques.Objets.FabriqueObjetBattleSnow;
|
||||
import Fabriques.Personnages.FabriquePersonnagesBattleSnow;
|
||||
import Fabriques.Plateau.FabriquePlateauBattleSnow;
|
||||
import Objets.ObjetAbstrait;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class FabriqueScenarioBattleSnow extends FabriqueScenarioAbstraite {
|
||||
public FabriqueScenarioBattleSnow(FabriquePlateauBattleSnow pl, FabriquePersonnagesBattleSnow pr, FabriqueObjetBattleSnow fObjs) {
|
||||
super(pl, pr, fObjs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tourParTour(CaseAbstraite[][] plateau) {
|
||||
if (new Random().nextInt(3) == 1) {
|
||||
for (ObjetAbstrait o : this.creerObjets(plateau)) {
|
||||
placementObjet(o, plateau);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void placementObjet(ObjetAbstrait o, CaseAbstraite[][] plateau) {
|
||||
Random rand = new Random();
|
||||
int x = rand.nextInt(plateau.length);
|
||||
int y = rand.nextInt(plateau[x].length);
|
||||
o.setCaseCourante(plateau[x][y]);
|
||||
plateau[x][y].setObjetOccupant(o);
|
||||
}
|
||||
}
|
@ -4,9 +4,6 @@ import Cases.CaseAbstraite;
|
||||
import Fabriques.Objets.FabriqueObjetBattleZone;
|
||||
import Fabriques.Personnages.FabriquePersonnagesBattleZone;
|
||||
import Fabriques.Plateau.FabriquePlateauBattleZone;
|
||||
import Objets.ObjetAbstrait;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class FabriqueScenarioBattleZone extends FabriqueScenarioAbstraite {
|
||||
public FabriqueScenarioBattleZone(FabriquePlateauBattleZone pl, FabriquePersonnagesBattleZone pr, FabriqueObjetBattleZone obj) {
|
||||
@ -15,18 +12,6 @@ public class FabriqueScenarioBattleZone extends FabriqueScenarioAbstraite {
|
||||
|
||||
@Override
|
||||
public void tourParTour(CaseAbstraite[][] plateau) {
|
||||
if (new Random().nextInt(3) == 1) {
|
||||
for (ObjetAbstrait o : this.creerObjets(plateau)) {
|
||||
placementObjet(o, plateau);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void placementObjet(ObjetAbstrait o, CaseAbstraite[][] plateau) {
|
||||
Random rand = new Random();
|
||||
int x = rand.nextInt(plateau.length);
|
||||
int y = rand.nextInt(plateau[x].length);
|
||||
o.setCaseCourante(plateau[x][y]);
|
||||
plateau[x][y].setObjetOccupant(o);
|
||||
}
|
||||
}
|
||||
|
7
src/Objets/ObjetBallon.java
Normal file
7
src/Objets/ObjetBallon.java
Normal file
@ -0,0 +1,7 @@
|
||||
package Objets;
|
||||
|
||||
public class ObjetBallon extends ObjetAbstrait {
|
||||
public ObjetBallon() {
|
||||
super("Ballon", 0, 0, 0.5);
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package Person;
|
||||
|
||||
import Comportements.ComportementActionSeDeplacer;
|
||||
|
||||
public class Arbitre extends Personnage {
|
||||
|
||||
public Arbitre(String nom) {
|
||||
// TODO: Not sure if this one is a "personnage" with actions/
|
||||
super(nom, new ComportementActionSeDeplacer());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
package Person;
|
||||
|
||||
|
||||
import Comportements.ComportementAction;
|
||||
|
||||
public class JoueurDeChamp extends Personnage {
|
||||
|
||||
public JoueurDeChamp(String nom, ComportementAction parDefaut) {
|
||||
super(nom, parDefaut);
|
||||
}
|
||||
|
||||
}
|
@ -41,8 +41,7 @@ public class Personnage extends PersonnagesAbstraits {
|
||||
|
||||
this.caseCourante = null;
|
||||
this.etatCourant = new EtatPersonnageOK(this);
|
||||
this.ChangerAction(EAction.SeDeplacer);
|
||||
|
||||
this.Action = c;
|
||||
}
|
||||
|
||||
|
||||
@ -56,7 +55,7 @@ public class Personnage extends PersonnagesAbstraits {
|
||||
this.caseCourante=null;
|
||||
this.etatCourant= new EtatPersonnageOK(this);
|
||||
this.ChangerAction(EAction.SeDeplacer);
|
||||
|
||||
this.Action = a;
|
||||
}
|
||||
|
||||
public void ChangeEtat(EEtat NouvelEtat)
|
||||
@ -143,9 +142,6 @@ public class Personnage extends PersonnagesAbstraits {
|
||||
case ChangerCouleurCase:
|
||||
Action = new ComportementActionChangerCouleurCase();
|
||||
break;
|
||||
case RamasserNeige:
|
||||
Action = new ComportementActionRamasserNeige();
|
||||
break;
|
||||
case SeDeplacer:
|
||||
Action = new ComportementActionSeDeplacer();
|
||||
break;
|
||||
|
@ -24,6 +24,8 @@ public class SimulationJeu {
|
||||
o = new Organisation();
|
||||
personnages = f.CreerPersonnages(o, plateau);
|
||||
|
||||
f.creerObjets(plateau);
|
||||
|
||||
intefaceC = new InterfaceConsole(plateau);
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user