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

xp modification

This commit is contained in:
Fastium 2022-06-15 09:53:54 +02:00
parent 997f303567
commit b944d9be51
5 changed files with 50 additions and 83 deletions

View File

@ -42,4 +42,10 @@ public class Enemy extends Character{
return branch;
}
@Override
public int getPv() {
//the pv can go under 0, but his real pv is 0 (for the player)
return (pv<0) ? 0 : pv;
}
}

View File

@ -12,9 +12,9 @@ public class Battle {
private int lineSpeech;
public int answer;
private int newXp;
private int pvEnemy;
private int xpPlayer;
public int newXp;
public int pvEnemy;
public int xpPlayer;
public boolean screenBattleOn = true;
@ -23,12 +23,9 @@ public class Battle {
textEnemy = new TextEnemy(e);
textEnemy.generateText();
}
pvEnemy = e.getPv();
lineSpeech = 0;
newXp = 0;
System.out.println("lll : "+ getLine());
}
public void readNextLine(){
@ -44,45 +41,55 @@ public class Battle {
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];
//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){
newXp += textEnemy.fightData.getAttack(currentAttack).getXp();
updatePlayerEnemy(textEnemy.fightData.getAttack(currentAttack).getXp());
System.out.println("it's true !!!!");
}
else{
System.out.println("it's false !!!!");
}
System.out.println("pv enemy : " +pvEnemy);
System.out.println("xp player : " + xpPlayer);
System.out.println("xp win " + newXp);
if(lineSpeech < 4) readNextLine();
readNextLine();
}
public void FinishSpeech(int pvEnemy){
public void updatePlayerEnemy(int xp){
//add xp for the player
xpPlayer += xp;
//remove pv enemy
pvEnemy -= xp;
}
public void FinishSpeech(){
if(pvEnemy>0){
//alive
readNextLine();
//alive (speechline = 6)
for(int i=0;i<2;i++)readNextLine();;
}
else{
//dead
//dead (speechline = 5)
readNextLine();
}
}
public boolean finish(){
return false;
}
@ -112,10 +119,6 @@ public class Battle {
return newXp;
}
public void setPvEnemy(int pv){
pvEnemy = pv;
}
public void setXpPlayer(int xp){
xpPlayer = xp;
}

View File

@ -1,6 +1,5 @@
package Main;
import java.util.Vector;
import com.badlogic.gdx.Input;
@ -68,24 +67,24 @@ public class PokeMudry extends PortableApplication {
if(sp.e == null) System.out.println("sdfsdfsdfsdf");
sp.b = new Battle(sp.e);
//set pv and xp to display
sp.b.setXpPlayer(sp.p.getXp());
g.resetCamera();
}
if(onBattleScreen) sp.sb.manage(controller, sp.b);
//manage battle
if(!sp.b.getScreenBattleOn()){
sp.p.addXp(sp.b.getNewXp());
sp.e.removedPv(sp.b.getNewXp());
sp.b.setPvEnemy(sp.e.getPv());
sp.b.setXpPlayer(sp.p.getXp());
}
if(!sp.b.getScreenBattleOn() && onBattleScreen){
//addXp for the player
sp.p.addXp(sp.b.getNewXp());
//remove pv of the enemy
sp.e.removedPv(sp.b.getNewXp());
sp.p.onEnemy = false;
sp.sm = sp.screenManager.getScreenMap();
}
// Graphics render

View File

@ -35,6 +35,7 @@ public class ScreenBattle extends RenderingScreen{
//display the question
generateFont("resources/font/OptimusPrinceps.ttf", 40, Color.BLACK);
}
@ -99,13 +100,20 @@ public class ScreenBattle extends RenderingScreen{
if(PokeMudry.front_montant){
System.out.println("manage: " + battle.getLineSpeech());
if( battle.getAttackOn() == false){
if (c.keyStatus.get(Input.Keys.SPACE)){
if(battle.getLineSpeech() <= 5){
if(battle.getLineSpeech() == 4){
//dislpay the finish speech
battle.FinishSpeech();
}
else if(battle.getLineSpeech() > 4){
//return in the map
battle.screenBattleOn = battle.finish();
}
else{
System.out.println("in");
//fix next line
battle.readNextLine();
}
@ -117,19 +125,15 @@ public class ScreenBattle extends RenderingScreen{
if(battle.getAttackOn() == true){
if (c.keyStatus.get(Input.Keys.NUM_1)){
battle.checkAnswer(1);
}
else if (c.keyStatus.get(Input.Keys.NUM_2)){
battle.checkAnswer(2);
}
else if (c.keyStatus.get(Input.Keys.NUM_3)){
battle.checkAnswer(3);
}
else if (c.keyStatus.get(Input.Keys.NUM_4)){
battle.checkAnswer(4);
}

View File

@ -1,45 +0,0 @@
package Screen;
import Entity.Enemy;
import Entity.Player;
import Game.Battle;
import ch.hevs.gdx2d.lib.GdxGraphics;
public class ScreenPlayer {
public ManagerOfScreen screenManager = new ManagerOfScreen();
public Player p = null;
public Enemy e = null;
public Battle b = null;
public ScreenMap sm = null;
public ScreenBattle sb = null;
public void init(){
// One player by ScreenPlayer
p = new Player(8, 15, "desert");
//p = new Player(4, 2, "21RI");
b = new Battle(new Enemy("enemi", 0, 0, "charachter", "desert", 50, "enemi"));
// Create both type of screen and record for reuse
screenManager.registerScreen(ScreenMap.class);
screenManager.registerScreen(ScreenBattle.class);
sb = screenManager.getScreenBattle();
sm = screenManager.getScreenMap();
}
public void render(GdxGraphics g){
if(sm != null){
sm.setPlayer(p);
}
if(sb != null){
sb.setBattle(b);
b.setEnemy(e);
}
screenManager.render(g);
}
}