1
0
mirror of https://github.com/Klagarge/PokeHES.git synced 2024-11-23 09:53:28 +00:00

should work

This commit is contained in:
Fastium 2022-06-13 20:53:09 +02:00
parent a4b760fe66
commit ba7694528f
8 changed files with 107 additions and 46 deletions

View File

@ -14,10 +14,10 @@ public class Player extends Character{
private int xp; private int xp;
public Enemy lastEnemy = null; public Enemy lastEnemy = null;
public boolean onEnemy = false; public boolean frontOfEnemy = false;
public Player(int x, int y, String map) { public Player(int x, int y, String map) {
super("Player", x, y, "character", map); super("Player", x, y, "Character", map);
} }
public void addXp(int xp){ public void addXp(int xp){
@ -32,7 +32,7 @@ public class Player extends Character{
// Compute direction and next cell // Compute direction and next cell
Vector<TiledMapTile> nextCell = new Vector<>(); Vector<TiledMapTile> nextCell = new Vector<>();
Player.Direction goalDirection = Player.Direction.NULL; Player.Direction goalDirection = Player.Direction.NULL;
Vector2 nextPos = new Vector2(position); Vector2 nextPos = position;
if (c.keyStatus.get(Input.Keys.RIGHT)) { if (c.keyStatus.get(Input.Keys.RIGHT)) {
goalDirection = Player.Direction.RIGHT; goalDirection = Player.Direction.RIGHT;
@ -76,13 +76,12 @@ public class Player extends Character{
nMap = ScreenMap.Door.nextMap; nMap = ScreenMap.Door.nextMap;
x = ScreenMap.Door.nextX; x = ScreenMap.Door.nextX;
y = ScreenMap.Door.nextY; y = ScreenMap.Door.nextY;
goalDirection = ScreenMap.Door.direction;
} catch (Exception e) { } } catch (Exception e) { }
ScreenMap.Door.reset(); ScreenMap.Door.reset();
if (nMap == null || x == null || y == null) return; if (nMap == null || x == null || y == null) return;
map = nMap; map = nMap;
setPosition(x*sm.tileWidth, y*sm.tileHeight); setPosition(x*sm.tileWidth, y*sm.tileHeight);
System.out.println("Go to: " + map + " in " + x + " x " + y); System.out.println("Go to: " + sm.map + " in " + x + " x " + y);
} }
} }
} }
@ -98,7 +97,7 @@ public class Player extends Character{
if(bMap && pX==eX && pY==eY) { if(bMap && pX==eX && pY==eY) {
lastEnemy = enemy; lastEnemy = enemy;
onEnemy = true; frontOfEnemy = true;
return true; return true;
} }
} }

View File

@ -1,5 +1,7 @@
package Game; package Game;
import java.util.Arrays;
import Entity.Enemy; import Entity.Enemy;
import Text.TextEnemy; import Text.TextEnemy;
@ -12,6 +14,8 @@ public class Battle {
public int answer; public int answer;
private int winPoint;
public Battle(Enemy enemy){ public Battle(Enemy enemy){
this.enemy = enemy; this.enemy = enemy;
@ -19,9 +23,8 @@ public class Battle {
textEnemy.generateText(); textEnemy.generateText();
lineSpeech = 0; lineSpeech = 0;
answer = 0; winPoint = 0;
//initialize the first line
System.out.println("lll : "+ getLine()); System.out.println("lll : "+ getLine());
} }
@ -32,6 +35,37 @@ public class Battle {
} }
//check the choice answer
public void checkAnswer(int answer){
int attack = lineSpeech-1;
//get number current attack random
int currentAttack = textEnemy.getCurrentData().get(attack)[0];
System.out.println(Arrays.toString(textEnemy.getCurrentData().get(attack)));
//get number current answer random
int currentAnswer = textEnemy.getCurrentData().get(attack)[answer];
System.out.println("current answer : " + currentAnswer);
//get the answer of the player
String answerPlayer = textEnemy.fightData.getAttack(currentAttack).getAnswer(currentAnswer);
System.out.println("answer player : " + answerPlayer);
//get true answer
String trueAsnwer = textEnemy.fightData.getAttack(currentAttack).getTrueAnswer();
System.out.println("true answer : " + trueAsnwer);
//check the choice of the player
if(answerPlayer == trueAsnwer){
System.out.println("it's true !!!!");
}
else{
System.out.println("it's false !!!!");
}
readNextLine();
}
public boolean getAttackOn(){ public boolean getAttackOn(){
return textEnemy.lines.get(lineSpeech).attackOn; return textEnemy.lines.get(lineSpeech).attackOn;
} }
@ -40,6 +74,7 @@ public class Battle {
return textEnemy.lines.get(lineSpeech).line; return textEnemy.lines.get(lineSpeech).line;
} }
public int getLineSpeech() { public int getLineSpeech() {
return lineSpeech; return lineSpeech;
} }

View File

@ -62,7 +62,7 @@ public class PokeMudry extends PortableApplication {
if(onMapScreen) sp.p.manageEntity(sp.sm, controller); if(onMapScreen) sp.p.manageEntity(sp.sm, controller);
// Switch screen // Switch screen
if (sp.p.onEnemy && onMapScreen){ if (sp.p.frontOfEnemy && onMapScreen){
sp.e = sp.p.lastEnemy; sp.e = sp.p.lastEnemy;
sp.sb = sp.screenManager.getScreenBattle(); sp.sb = sp.screenManager.getScreenBattle();
sp.b = new Battle(sp.e); sp.b = new Battle(sp.e);

View File

@ -98,7 +98,6 @@ public class ScreenBattle extends RenderingScreen{
if(PokeMudry.front_montant){ if(PokeMudry.front_montant){
System.out.println("manage: " + battle.getLineSpeech()); System.out.println("manage: " + battle.getLineSpeech());
if( battle.getAttackOn() == false){ if( battle.getAttackOn() == false){
if (c.keyStatus.get(Input.Keys.SPACE)){ if (c.keyStatus.get(Input.Keys.SPACE)){
System.out.println("in"); System.out.println("in");
@ -106,24 +105,22 @@ public class ScreenBattle extends RenderingScreen{
} }
} }
if(battle.getAttackOn() == true){ if(battle.getAttackOn() == true){
if (c.keyStatus.get(Input.Keys.NUM_1)){ if (c.keyStatus.get(Input.Keys.NUM_1)){
System.out.println("je sui dansakjshfljkahflkasjhfdlkajshflkajshfdlkasjdhfalsdkjfh123412341234");
battle.readNextLine(); battle.checkAnswer(1);
battle.answer = 1;
} }
else if (c.keyStatus.get(Input.Keys.NUM_2)){ else if (c.keyStatus.get(Input.Keys.NUM_2)){
battle.readNextLine();
battle.answer = 2; battle.checkAnswer(2);
} }
else if (c.keyStatus.get(Input.Keys.NUM_3)){ else if (c.keyStatus.get(Input.Keys.NUM_3)){
battle.readNextLine();
battle.answer = 3; battle.checkAnswer(3);
} }
else if (c.keyStatus.get(Input.Keys.NUM_4)){ else if (c.keyStatus.get(Input.Keys.NUM_4)){
battle.readNextLine();
battle.answer = 4; battle.checkAnswer(4);
} }
} }
@ -135,5 +132,6 @@ public class ScreenBattle extends RenderingScreen{
} }
} }

View File

@ -59,24 +59,18 @@ public class ScreenMap extends RenderingScreen{
tiledLayer.clear(); tiledLayer.clear();
// Get actual map of the player try { map = player.getMap(); } catch (Exception e) {}
try { map = player.getMap(); } catch (Exception e) { System.out.println("error for get map");}
// Get all layers on the current map
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {
try { tiledLayer.add((TiledMapTileLayer) tMap.get(map).getLayers().get(i)); } catch (Exception e) { } try { tiledLayer.add((TiledMapTileLayer) tMap.get(map).getLayers().get(i)); } catch (Exception e) { }
} }
// Get heigh and width of tiles and the size of the tiles
TiledMapTileLayer tl = tiledLayer.get(0); TiledMapTileLayer tl = tiledLayer.get(0);
width = tl.getWidth(); width = tl.getWidth();
tileWidth = (int) tl.getTileWidth(); tileWidth = (int) tl.getTileWidth();
height = tl.getHeight(); height = tl.getHeight();
tileHeight = (int) tl.getTileHeight(); tileHeight = (int) tl.getTileHeight();
// System.out.println(width + " x " + height + " - " + tileWidth + " x " + tileHeight); //System.out.println(width + " x " + height + " - " + tileWidth + " x " + tileHeight);
// Get all doors on the current map
try { try {
doors = tMap.get(map).getLayers().get("door").getObjects(); doors = tMap.get(map).getLayers().get("door").getObjects();
} catch (Exception e) { doors = null; } } catch (Exception e) { doors = null; }
@ -84,7 +78,8 @@ public class ScreenMap extends RenderingScreen{
// Render the tileMap // Render the tileMap
g.zoom(zoom); g.zoom(zoom);
g.moveCamera((int)player.getPosition().x, (int)player.getPosition().y, width * tileWidth, height * tileHeight); try {g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight);}
catch (Exception e) {System.out.println("Fail to move camera");}
tMapRenderer.get(map).setView(g.getCamera()); tMapRenderer.get(map).setView(g.getCamera());
tMapRenderer.get(map).render(); tMapRenderer.get(map).render();
@ -111,11 +106,10 @@ public class ScreenMap extends RenderingScreen{
public boolean isWalkable(Vector<TiledMapTile> tile) { public boolean isWalkable(Vector<TiledMapTile> tile) {
if (tile == null) return false; if (tile == null) return false;
if (tile.size() == 0) return false; boolean walkable = false;
boolean walkable = true;
for (TiledMapTile tiledMapTile : tile) { for (TiledMapTile tiledMapTile : tile) {
Object test = tiledMapTile.getProperties().get("walkable"); Object test = tiledMapTile.getProperties().get("walkable");
walkable = Boolean.parseBoolean(test.toString()) ? walkable:false; walkable = Boolean.parseBoolean(test.toString()) ? true:walkable;
} }
return walkable; return walkable;
} }
@ -156,7 +150,6 @@ public class ScreenMap extends RenderingScreen{
try { Door.nextMap = mapProperties.get("nextMap").toString(); } catch (Exception e) { } try { Door.nextMap = mapProperties.get("nextMap").toString(); } catch (Exception e) { }
try { Door.nextX = Integer.parseInt(mapProperties.get("nextX").toString()); } catch (Exception e) { } try { Door.nextX = Integer.parseInt(mapProperties.get("nextX").toString()); } catch (Exception e) { }
try { Door.nextY = Integer.parseInt(mapProperties.get("nextY").toString()); } catch (Exception e) { } try { Door.nextY = Integer.parseInt(mapProperties.get("nextY").toString()); } catch (Exception e) { }
try { Door.direction = Player.Direction.valueOf(mapProperties.get("nextDirection").toString()); } catch (Exception e) { }
} }
} }
@ -167,13 +160,11 @@ public class ScreenMap extends RenderingScreen{
public static String nextMap; public static String nextMap;
public static Integer nextX; public static Integer nextX;
public static Integer nextY; public static Integer nextY;
public static Player.Direction direction;
public static void reset(){ public static void reset(){
nextMap = null; nextMap = null;
nextX = null; nextX = null;
nextY = null; nextY = null;
direction = null;
} }
} }

View File

@ -2,11 +2,12 @@ package Text;
public class Attack { public class Attack {
String attack; String attack;
int currentAttack;
String answer1; String answer1;
String answer2; String answer2;
String answer3; String answer3;
String answer4; String answer4;
String[] s; public String[] s;
float xp; float xp;
@ -32,4 +33,9 @@ public class Attack {
public String getAnswer(int i){ public String getAnswer(int i){
return s[i]; return s[i];
} }
public String getTrueAnswer(){
return answer1;
}
} }

View File

@ -11,14 +11,15 @@ public class FightData {
private File file; private File file;
private static final String REGEX = ","; private static final String REGEX = ",";
public int nbre_line =0; public int nbre_line =0;
public FightData(String name) { public FightData(String name) {
file = new File("./resources/Battle/Fight/" + name + ".csv"); file = new File("./resources/Battle/Fight/" + name + ".csv");
} }
public void readFile() { public void readFile() {
Attack attack; Attack attack;
String line = ""; String line = "";
@ -43,7 +44,8 @@ public class FightData {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println(attacks.size());
} }
//return the vector with all attaks of one enemi //return the vector with all attaks of one enemi
@ -56,6 +58,10 @@ public class FightData {
return attacks.get(a); return attacks.get(a);
} }
} }

View File

@ -13,6 +13,8 @@ public class TextEnemy {
private int[] orderAttack; private int[] orderAttack;
private int[] orderAnswer; private int[] orderAnswer;
private Vector<int[]> currentData;
public static void main(String[] args) { public static void main(String[] args) {
TextEnemy t = new TextEnemy("enemi"); TextEnemy t = new TextEnemy("enemi");
@ -35,6 +37,9 @@ public class TextEnemy {
speechData = new SpeechData(name); speechData = new SpeechData(name);
speechData.readFile(); speechData.readFile();
//save random data (attack and ansver) : attack, answer 1, answer 2 answer 3, answer 4
currentData = new Vector<int[]>();
} }
public static int[] randomGenerate( int min, int max, int nbreRandom){ public static int[] randomGenerate( int min, int max, int nbreRandom){
@ -74,27 +79,48 @@ public class TextEnemy {
public void generateText(){ public void generateText(){
int i =1; int i =1;
//introduction line //introduction line
lines.add(new Line(speechData.getSpeechs(0), false)); lines.add(new Line(speechData.getSpeechs(0), 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];
currentRandom[0] = orderAttack[j];
//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" + Arrays.toString(orderAnswer) + "\n"); System.out.println("\n attaque " + j + " : " + Arrays.toString(orderAnswer) + "\n");
//save the order of answer and attack
for(int k=1;k<5;k++){
currentRandom[k] = orderAnswer[k-1];
}
//attack and answer (number on vector : 1-4) //attack and answer (number on vector : 1-4)
lines.add(new Line( lines.add(new Line(
speechData.getSpeechs(i++) + fightData.getAttack(orderAttack[j]).attack + " ? ("+fightData.getAttack(orderAttack[j]).xp+ ") " + "\n" + speechData.getSpeechs(i++) + fightData.getAttack(orderAttack[j]).attack + " ? ("+fightData.getAttack(orderAttack[j]).xp+ ") " + "\n" +
fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[0]) + "\n" + "1. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[0]) + "\n" +
fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[1]) + "\n" + "2. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[1]) + "\n" +
fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[2]) + "\n" + "3. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[2]) + "\n" +
fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[3]), true)); "4. " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[3]), true));
currentData.add(currentRandom);
} }
for(int[] a : currentData){
System.out.println(Arrays.toString(a));
}
//finish (win and death) //finish (win and death)
lines.add(new Line(speechData.getSpeechs(5), false)); lines.add(new Line(speechData.getSpeechs(5), false));
lines.add(new Line(speechData.getSpeechs(6), false)); lines.add(new Line(speechData.getSpeechs(6), false));
} }
public Vector<int[]> getCurrentData() {
return currentData;
}
} }