1
0
mirror of https://github.com/Klagarge/PokeHES.git synced 2025-01-31 05:02:45 +00:00

add format dialog

This commit is contained in:
Fastium 2022-06-16 12:23:33 +02:00
parent f15d40d62a
commit e748f763a8

View File

@ -3,12 +3,13 @@ package Text;
import java.util.Vector; import java.util.Vector;
import Entity.Enemy; import Entity.Enemy;
import Entity.Character.Direction;
import java.util.Arrays; import java.util.Arrays;
import java.util.Random; import java.util.Random;
public class TextEnemy { public class TextEnemy {
private static final int CUT = 40; private static final int CUT = 60;
public FightData fightData; public FightData fightData;
public SpeechData speechData; public SpeechData speechData;
@ -20,8 +21,7 @@ public class TextEnemy {
private Vector<int[]> currentData; private Vector<int[]> currentData;
public static void main(String[] args) { public static void main(String[] args) {
TextEnemy t = new TextEnemy(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert", 25, "informatique", Direction.NULL));
TextEnemy t = new TextEnemy(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert", 25, "informatique"));
t.generateText(); t.generateText();
@ -83,7 +83,10 @@ public class TextEnemy {
//introduction line //introduction line
lines.add(new Line(speechData.getSpeechs(0), false)); String introduction = formatLine(speechData.getSpeechs(0), CUT);
lines.add(new Line(introduction, false));
orderAttack = randomGenerate(0, fightData.nbre_line-1, 4); orderAttack = randomGenerate(0, fightData.nbre_line-1, 4);
for(int j=0; j<4;j++){ for(int j=0; j<4;j++){
int[] currentRandom = new int[5]; int[] currentRandom = new int[5];
@ -91,22 +94,21 @@ public class TextEnemy {
//generate the order of the answer //generate the order of the answer
orderAnswer = randomGenerate(0, 3, 4); orderAnswer = randomGenerate(0, 3, 4);
System.out.println("\n attaque " + j + " : " + Arrays.toString(orderAnswer) + "\n");
//save the order of answer and attack //save the order of answer and attack
for(int k=1;k<5;k++){ for(int k=1;k<5;k++){
currentRandom[k] = orderAnswer[k-1]; currentRandom[k] = orderAnswer[k-1];
} }
String attack = formatLine( speechData.getSpeechs(i++) + fightData.getAttack(orderAttack[j]).attack + " ? ("+fightData.getAttack(orderAttack[j]).getXp()+ ") ", cut) //Format the line
String attack = formatLine(speechData.getSpeechs(i++) + fightData.getAttack(orderAttack[j]).attack + " ? ("+fightData.getAttack(orderAttack[j]).getXp()+ ") ", CUT);
String answer1 = formatLine("1. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[0]) , CUT);
String answer2 = formatLine("2. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[1]) , CUT);
String answer3 = formatLine("3. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[2]) , CUT);
String answer4 = formatLine("4. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[3]) , CUT);
//attack and answer (number on vector : 1-4) //attack and answer (number on vector : 1-4)
lines.add(new Line( lines.add(new Line(attack + "\n" +answer1 + "\n" + answer2 + "\n" + answer3 + "\n" + answer4, true));
speechData.getSpeechs(i++) + fightData.getAttack(orderAttack[j]).attack + " ? ("+fightData.getAttack(orderAttack[j]).getXp()+ ") " + "\n" +
"1. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[0]) + "\n" +
"2. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[1]) + "\n" +
"3. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[2]) + "\n" +
"4. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[3]), true));
currentData.add(currentRandom); currentData.add(currentRandom);
@ -117,8 +119,10 @@ public class TextEnemy {
} }
//finish (win and death) //finish (win and death)
lines.add(new Line(speechData.getSpeechs(5), false)); String dead = formatLine(speechData.getSpeechs(5),CUT);
lines.add(new Line(speechData.getSpeechs(6), false)); String alive = formatLine(speechData.getSpeechs(6), CUT);
lines.add(new Line(dead, false));
lines.add(new Line(alive, false));
} }
public Vector<int[]> getCurrentData() { public Vector<int[]> getCurrentData() {
@ -134,45 +138,50 @@ public class TextEnemy {
int startC = 0; int startC = 0;
int stoppC = cut; int stoppC = cut;
if(cut>line.length()-1){
char[] c = new char[line.length()]; newLine =line;
for(int i=0; i<c.length;i++){
c[i] = line.charAt(i);
} }
System.out.println("start\n"); else{
while(true){ char[] c = new char[line.length()];
for(int i =stoppC; i>=startC; i--){ for(int i=0; i<c.length;i++){
if(c[i] == ' '){ c[i] = line.charAt(i);
stoppC = i; }
while(true){
for(int i =stoppC; i>=startC; i--){
if(c[i] == ' '){
stoppC = i;
break;
}
else if(stoppC == c.length-1){
break;
}
}
//découper le mot
for(int i=startC;i<=stoppC;i++){
cutLine += c[i];
}
newLine += cutLine+"\n";
cutLine = "";
startC = stoppC + 1;
if(c.length-1-stoppC <=0){
break; break;
} }
else if(stoppC == c.length-1){ else if(c.length-1-stoppC <= cut){
break; stoppC = c.length-1;
}
else{
stoppC += cut;
} }
}
//découper le mot
for(int i=startC;i<=stoppC;i++){
cutLine += c[i];
}
newLine += "\n" + cutLine;
cutLine = "";
startC = stoppC + 1;
if(c.length-1-stoppC <=0){
break;
}
else if(c.length-1-stoppC <= 10){
stoppC = c.length-1;
}
else{
stoppC += cut;
} }
} }
return newLine; return newLine;