diff --git a/src/Main/PokeMudry.java b/src/Main/PokeMudry.java index 5f78937..5d1a03b 100644 --- a/src/Main/PokeMudry.java +++ b/src/Main/PokeMudry.java @@ -22,7 +22,7 @@ public class PokeMudry extends PortableApplication { private long beginTime; private long lastMesure; - public static boolean front_montant = false; + public static boolean risingFront = false; public static void main(String[] args) { @@ -137,14 +137,14 @@ public class PokeMudry extends PortableApplication { @Override public void onKeyDown(int keycode) { super.onKeyDown(keycode); - front_montant = true; + risingFront = true; controller.keyStatus.put(keycode, true); sp.screenManager.getActiveScreen().onKeyUp(keycode); } @Override public void onKeyUp(int keycode) { super.onKeyUp(keycode); - front_montant = false; + risingFront = false; controller.keyStatus.put(keycode, false); sp.screenManager.getActiveScreen().onKeyDown(keycode); } diff --git a/src/Screen/ScreenBattle.java b/src/Screen/ScreenBattle.java index 8080f66..08544cd 100644 --- a/src/Screen/ScreenBattle.java +++ b/src/Screen/ScreenBattle.java @@ -41,7 +41,9 @@ public class ScreenBattle extends RenderingScreen{ @Override public void onGraphicRender(GdxGraphics g) { + //color the background in black g.clear(Color.BLACK); + //display the dialog, theenemy and the player displayDialog(g); displayEnemy(g); displayPlayer(g); @@ -53,16 +55,18 @@ public class ScreenBattle extends RenderingScreen{ ubuntuRegularWhite.dispose(); } + //set the images for the player and the enemy public void setImg(){ enemyImg = new BitmapImage(b.e.getImgBattle()); //width : 192, height : 240 - playerImg = new BitmapImage(b.player.getImgBattle()); + playerImg = new BitmapImage(b.player.getImgBattle()); //width : 192, height : 240 } - + //set the battle public void setBattle(Battle battle) { this.b = battle; } + //create a font with a file .ttf , a height and a color public BitmapFont generateFont(String file, int height, Color c ){ //Generate font with the file .ttf BitmapFont font; @@ -78,48 +82,40 @@ public class ScreenBattle extends RenderingScreen{ } public void displayDialog(GdxGraphics g){ - //dialog background + //draw the background g.drawFilledRectangle(Settings.SIDE/2, HEIGHT_DIALOG/2 + EDGE, WIDTH_DIALOG, HEIGHT_DIALOG, 0); - - //dialog + //draw the dialog if(b == null) return; if(b.getLine() == null) return; g.drawString(15, 260, b.getLine(), ubuntuRegularBlack); - } - public void displayEnemy(GdxGraphics g){ //draw image g.drawPicture(Settings.SIDE - (192/2), Settings.SIDE-240/2, enemyImg); //draw pv g.drawString(300, Settings.SIDE - 15 , "PV : " + b.pvEnemy + " / " + b.e.getPvInit(), ubuntuRegularWhite); - } public void displayPlayer(GdxGraphics g){ //draw image - g.drawPicture((192/2), HEIGHT_DIALOG + 10 + 240/2, playerImg); //draw pv g.drawString(255, HEIGHT_DIALOG + 100 , "XP : " + b.xpPlayer + " / " + b.player.getXpMax() + "\nPV : " + b.player.getPv() + " / " + Settings.TIME*60, ubuntuRegularWhite); + } - - public void manage(Controller c, Battle battle){ - if(PokeMudry.front_montant){ - + //add a rising front to have one impulsion + if(PokeMudry.risingFront){ + //the enemi is attacking if( battle.getAttackOn() == false){ if (c.keyStatus.get(Input.Keys.SPACE)){ battle.action(-1); } - if (c.keyStatus.get(Input.Keys.ENTER)){ - battle.screenBattleOn = battle.screenBattleOn; - } } - + //the enemi is speaking if(battle.getAttackOn() == true){ if (c.keyStatus.get(Input.Keys.NUM_1)){ battle.action(1); @@ -132,17 +128,10 @@ public class ScreenBattle extends RenderingScreen{ } else if (c.keyStatus.get(Input.Keys.NUM_4)){ battle.action(4); - } } - //mettre le front à false jusqu'à ce que le bouton soit relâché - PokeMudry.front_montant = false; + PokeMudry.risingFront = false; } - - - - - } } diff --git a/src/Screen/ScreenEnd.java b/src/Screen/ScreenEnd.java index 039c26a..7ec4088 100644 --- a/src/Screen/ScreenEnd.java +++ b/src/Screen/ScreenEnd.java @@ -17,16 +17,19 @@ public class ScreenEnd extends RenderingScreen{ private String textEnd = null; private BitmapFont unbuntuRegularWhite; - @Override public void onInit() { + //generate a new font unbuntuRegularWhite = generateFont("./Data/font/Ubuntu-Regular.ttf", 30, Color.WHITE); } @Override protected void onGraphicRender(GdxGraphics g) { + //color the background in black g.clear(Color.BLACK); + + //display the text if(textEnd != null) g.drawStringCentered(Settings.SIDE/2, textEnd, unbuntuRegularWhite); } @@ -36,6 +39,7 @@ public class ScreenEnd extends RenderingScreen{ unbuntuRegularWhite.dispose(); } + //set a different text if the player win or loose public void setText(Player p){ if(p.getXp() >= p.getXpMax()){ textEnd = "Bravo, tu as réussi ton année avec " + p.getXp()/100.0 + " crédits en " + (Settings.TIME*60-p.getPv()) + " secondes.\n\nMais, seras-tu près pour le prochain...."; @@ -45,7 +49,7 @@ public class ScreenEnd extends RenderingScreen{ } } - + //create a font with a file .ttf , a height and a color public BitmapFont generateFont(String file, int height, Color c ){ //Generate font with the file .ttf BitmapFont font; diff --git a/src/Text/Attack.java b/src/Text/Attack.java index 5618f51..9835acf 100644 --- a/src/Text/Attack.java +++ b/src/Text/Attack.java @@ -30,10 +30,12 @@ public class Attack { return attack+ " " + answer1+ " " + answer2+ " " + answer3+ " " + answer4+ " " + xp; } + //return the answer with teh number i in the array s public String getAnswer(int i){ return s[i]; } + //return the true answer to verify the answer of the player public String getTrueAnswer(){ return answer1; } diff --git a/src/Text/FightData.java b/src/Text/FightData.java index 181f693..be5c7d8 100644 --- a/src/Text/FightData.java +++ b/src/Text/FightData.java @@ -12,13 +12,10 @@ public class FightData { private File file; private static String regex = ";"; - - - public int nbr_line =0; + public int nbre_line =0; public FightData(String branch) { file = new File("./Data/Battle/Fight/" + branch + ".csv"); - } public void readFile() { @@ -54,7 +51,7 @@ public class FightData { return attacks; } - //return the vector with one attak + //return the vector with one attack public Attack getAttack(int a){ return attacks.get(a); } diff --git a/src/Text/Line.java b/src/Text/Line.java index 535acd5..64df4ab 100644 --- a/src/Text/Line.java +++ b/src/Text/Line.java @@ -4,6 +4,7 @@ public class Line { public String line; public boolean attackOn; + //in the battle screen the line is played and attack on is used by the button Line( String line, boolean attackOn){ this.line = line; this.attackOn = attackOn; diff --git a/src/Text/SpeechData.java b/src/Text/SpeechData.java index 81f8398..b51f1ff 100644 --- a/src/Text/SpeechData.java +++ b/src/Text/SpeechData.java @@ -10,7 +10,6 @@ public class SpeechData { Vector speechs = new Vector(); File file; - public SpeechData(String name){ file = new File("./Data/Battle/Speech/" + name + ".txt"); @@ -18,15 +17,15 @@ public class SpeechData { public void readFile() { String line = ""; + + // try to read the file of the speech of the enemy try { FileReader f = new FileReader(file, StandardCharsets.UTF_8); BufferedReader bf = new BufferedReader(f); - + //read and add a new line in the vector speechs line = bf.readLine(); while(line != null){ - speechs.add(line); - line = bf.readLine(); } @@ -37,6 +36,7 @@ public class SpeechData { } } + //return the element i an teh vector speechs public String getSpeechs(int i) { return speechs.elementAt(i); } diff --git a/src/Text/TextEnemy.java b/src/Text/TextEnemy.java index 97017a5..35a336c 100644 --- a/src/Text/TextEnemy.java +++ b/src/Text/TextEnemy.java @@ -65,21 +65,21 @@ public class TextEnemy { } + //generate the text who is displays in battle screen public void generateText(){ int i =1; - //introduction line String introduction = formatLine(speechData.getSpeechs(0), CUT); lines.add(new Line(introduction, false)); - orderAttack = randomGenerate(0, fightData.nbr_line-1, 4); + for(int j=0; j<4;j++){ int[] currentRandom = new int[5]; currentRandom[0] = orderAttack[j]; - //generate the order of the answer + //generate a random array to determin the order of the answer orderAnswer = randomGenerate(0, 3, 4); //save the order of answer and attack @@ -97,13 +97,15 @@ public class TextEnemy { //attack and answer (number on vector : 1-4) lines.add(new Line(attack + "\n" +answer1 + "\n" + answer2 + "\n" + answer3 + "\n" + answer4, true)); - + //save the order of the answer currentData.add(currentRandom); } + /* for(int[] a : currentData){ System.out.println(Arrays.toString(a)); } + */ //finish (win and death) String dead = formatLine(speechData.getSpeechs(5),CUT); @@ -112,11 +114,12 @@ public class TextEnemy { lines.add(new Line(alive, false)); } + //get the saved order of the attacks and answer public Vector getCurrentData() { return currentData; } - + //format a String with a specific length of char public String formatLine(String line, int cut){ String cutLine = ""; @@ -125,21 +128,21 @@ public class TextEnemy { int startC = 0; int stopC = cut; + //check if the line is shorter than the character limit if(cut>line.length()-1){ newLine =line; } else{ + //create a array with the line char[] c = new char[line.length()]; - for(int i=0; i=startC; i--){ + if(c[i] == ' '){ stopC = i; break; @@ -151,9 +154,11 @@ public class TextEnemy { //découper le mot for(int i=startC;i<=stopC;i++){ + cutLine += c[i]; } + //rebuild the line with the line breaks newLine += cutLine+"\n"; cutLine = ""; @@ -161,6 +166,7 @@ public class TextEnemy { if(c.length-1-stopC <=0){ + break; } else if(c.length-1-stopC <= cut){