mirror of
https://github.com/Klagarge/PokeHES.git
synced 2024-11-23 09:53:28 +00:00
should work
This commit is contained in:
parent
a4b760fe66
commit
ba7694528f
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,15 +59,11 @@ 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();
|
||||||
@ -75,8 +71,6 @@ public class ScreenMap extends RenderingScreen{
|
|||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user