diff --git a/Data/img/Mudry.png b/Data/img/Mudry.png new file mode 100644 index 0000000..164d5f7 Binary files /dev/null and b/Data/img/Mudry.png differ diff --git a/Data/img/Player.png b/Data/img/Player.png new file mode 100644 index 0000000..049d962 Binary files /dev/null and b/Data/img/Player.png differ diff --git a/Data/img/enemy.png b/Data/img/enemy.png new file mode 100644 index 0000000..164d5f7 Binary files /dev/null and b/Data/img/enemy.png differ diff --git a/src/Entity/Character.java b/src/Entity/Character.java index 9740196..e439828 100644 --- a/src/Entity/Character.java +++ b/src/Entity/Character.java @@ -29,6 +29,7 @@ public abstract class Character extends Entity{ int nFrames = 4; final float FRAME_TIME = 0.1f; // Duration of each frime private String img; + private String imgBattle; protected int pv; @@ -43,6 +44,8 @@ public abstract class Character extends Entity{ public Character(String name, int x, int y, String img, String map){ super(name, x, y, map); this.img = img; + + imgBattle = "./Data/img/" + name + ".png"; } @Override @@ -163,4 +166,8 @@ public abstract class Character extends Entity{ } abstract protected void removedPv(int pv); + + public String getImgBattle(){ + return imgBattle; + } } diff --git a/src/Entity/Enemy.java b/src/Entity/Enemy.java index 2164933..df64c5b 100644 --- a/src/Entity/Enemy.java +++ b/src/Entity/Enemy.java @@ -6,8 +6,7 @@ public class Enemy extends Character{ private String branch; - - + private int pvInit; public Enemy(String name, int x, int y, String img, String map, int pv, String branch, Character.Direction dir) { @@ -21,6 +20,9 @@ public class Enemy extends Character{ this.branch = branch; this.pv = pv; + + pvInit = pv; + } public void setPosition(int x, int y, String map){ @@ -47,5 +49,10 @@ public class Enemy extends Character{ //the pv can go under 0, but his real pv is 0 (for the player) return (pv<0) ? 0 : pv; } + + public int getPvInit(){ + return pvInit; + } + } diff --git a/src/Entity/Player.java b/src/Entity/Player.java index ca48738..921dfc7 100644 --- a/src/Entity/Player.java +++ b/src/Entity/Player.java @@ -15,6 +15,7 @@ public class Player extends Character{ private int xp = 0; public Enemy lastEnemy = null; public boolean onEnemy = false; + private static final int XP_MAX = 6000; public Player(int x, int y, String map) { super("Player", x, y, "Character_flipped", map); @@ -119,4 +120,8 @@ public class Player extends Character{ // TODO Auto-generated method stub } + + public int getXpMax(){ + return XP_MAX; + } } diff --git a/src/Game/Battle.java b/src/Game/Battle.java index 915ffd2..d7231a9 100644 --- a/src/Game/Battle.java +++ b/src/Game/Battle.java @@ -1,11 +1,14 @@ package Game; import Entity.Enemy; +import Entity.Player; import Text.TextEnemy; public class Battle { - private Enemy e; + public Enemy e; + public Player player; + public TextEnemy textEnemy; private int lineSpeech; @@ -140,4 +143,7 @@ public class Battle { public void setEnemy(Enemy e){ this.e = e; } + public void setPlayer(Player p){ + this.player = p; + } } diff --git a/src/Main/PokeMudry.java b/src/Main/PokeMudry.java index 632cb73..31da7d7 100644 --- a/src/Main/PokeMudry.java +++ b/src/Main/PokeMudry.java @@ -66,6 +66,8 @@ public class PokeMudry extends PortableApplication { if(onMapScreen) sp.p.manageEntity(sp.sm, controller); + + // Switch screen if (sp.p.onEnemy && onMapScreen){ sp.e = sp.p.lastEnemy; @@ -73,8 +75,9 @@ public class PokeMudry extends PortableApplication { int pv = sp.e.getPv(); if (pv>0) { - sp.sb = sp.screenManager.getScreenBattle(); + sp.b = new Battle(sp.e); + sp.sb = sp.screenManager.getScreenBattle(); //set pv and xp to display sp.b.setXpPlayer(sp.p.getXp()); diff --git a/src/Screen/ScreenBattle.java b/src/Screen/ScreenBattle.java index a1090d7..959e653 100644 --- a/src/Screen/ScreenBattle.java +++ b/src/Screen/ScreenBattle.java @@ -46,6 +46,7 @@ public class ScreenBattle extends RenderingScreen{ g.clear(Color.BLACK); displayDialog(g); displayEnemy(g); + displayPlayer(g); } @Override @@ -56,7 +57,7 @@ public class ScreenBattle extends RenderingScreen{ public void setImg(){ enemyImg = new BitmapImage(b.e.getImgBattle()); //width : 192, height : 240 - enemyImg = new BitmapImage(b); + playerImg = new BitmapImage(b.player.getImgBattle()); } @@ -94,16 +95,17 @@ public class ScreenBattle extends RenderingScreen{ //draw image g.drawPicture(Settings.SIDE - (192/2), Settings.SIDE-240/2, enemyImg); //draw pv - g.drawString(250, Settings.SIDE - 15 , "PV : " + b.pvEnemy , unbuntuRegularWhite); + g.drawString(350, Settings.SIDE - 15 , "PV : " + b.pvEnemy + " / " + b.e.getPvInit(), unbuntuRegularWhite); } public void displayPlayer(GdxGraphics g){ //draw image - g.drawPicture(Settings.SIDE - (192/2), Settings.SIDE-240/2, playerImg); + + g.drawPicture((192/2), HEIGHT_DIALOG + 10 + 240/2, playerImg); //draw pv - g.drawString(250, Settings.SIDE - 15 , "PV : " + b.pvEnemy , unbuntuRegularWhite); + g.drawString(255, HEIGHT_DIALOG + 100 , "XP : " + b.xpPlayer + " / " + b.player.getXpMax() + "\nPV : " + b.player.getPv() + " / " + Settings.TIME*60, unbuntuRegularWhite); } diff --git a/src/Screen/ScreenPlayer.java b/src/Screen/ScreenPlayer.java index 131d432..6835a64 100644 --- a/src/Screen/ScreenPlayer.java +++ b/src/Screen/ScreenPlayer.java @@ -20,7 +20,8 @@ public class ScreenPlayer { //p = new Player(8, 15, "desert"); p = new Player(4, 2, "21RI"); - b = new Battle(new Enemy("enemy", 0, 0, "lumberjack_sheet32", "desert", 50, "enemy",Direction.NULL)); + e = new Enemy("enemy", 0, 0, "lumberjack_sheet32", "desert", 50, "enemy",Direction.NULL); + b = new Battle(e); // Create both type of screen and record for reuse screenManager.registerScreen(ScreenMap.class); @@ -38,6 +39,8 @@ public class ScreenPlayer { if(sb != null){ sb.setBattle(b); b.setEnemy(e); + b.setPlayer(p); + sb.setImg(); } screenManager.render(g);