package org.pokenet.client.backend.entity; import java.io.InputStream; import org.newdawn.slick.Image; import org.newdawn.slick.SlickException; import org.newdawn.slick.loading.LoadingList; import org.pokenet.client.backend.FileLoader; import org.pokenet.client.backend.entity.Enums.Poketype; public class OurPokemon extends Pokemon { private Image m_backSprite; private int m_exp; private int m_atk; private int m_def; private int m_speed; private int m_spatk; private int m_spdef; private String m_ability; private String m_nature; /** * Default Constructor */ public OurPokemon() { super(); } /** * Returns Exp * * @return */ public int getExp() { return m_exp; } /** * Sets Exp * * @param exp */ public void setExp(int exp) { this.m_exp = exp; } /** * Returns back sprite * * @return */ public Image getBackSprite() { return m_backSprite; } /** * Sets back sprite */ private void setBackSprite() { LoadingList.setDeferredLoading(true); try { String respath = System.getProperty("res.path"); if(respath==null) respath=""; InputStream f; String path = new String(); String index, isShiny = new String(); if (!isShiny()) { isShiny = "normal/"; } else { isShiny = "shiny/"; } if (getSpriteNumber() <= 9) { index = "00" + String.valueOf(getSpriteNumber()); } else if (getSpriteNumber() <= 99) { index = "0" + String.valueOf(getSpriteNumber()); } else { if(getSpriteNumber() > 389) index = String.valueOf(getSpriteNumber() - 3); else index = String.valueOf(getSpriteNumber()); } int gender; if (getGender() == 1) gender = 1; else gender = 0; try { path = respath+"res/pokemon/back/" + isShiny + index + "-" + String.valueOf(gender) + ".png"; f = FileLoader.loadFile(path); m_backSprite = new Image(f, path.toString(), false); } catch (Exception e) { if (gender == 3) { path = respath+"res/pokemon/back/" + isShiny + index + "-1.png"; } else { path = respath+"res/pokemon/back/" + isShiny + index + "-0.png"; } m_backSprite = new Image(path.toString(), false); e.printStackTrace(); } } catch (SlickException e) { e.printStackTrace(); } LoadingList.setDeferredLoading(false); } /** * Sets the sprite number and loads sprites */ public void setSpriteNumber(int i) { super.setSpriteNumber(i); setBackSprite(); } /** * Returns ATK */ public int getAtk() { return m_atk; } /** * Sets ATK */ public void setAtk(int atk) { this.m_atk = atk; } /** * Returns DEF */ public int getDef() { return m_def; } /** * Sets DEF * * @param def */ public void setDef(int def) { this.m_def = def; } /** * Returns SPD */ public int getSpeed() { return m_speed; } /** * Sets SPD * * @param speed */ public void setSpeed(int speed) { this.m_speed = speed; } /** * Returns SP.ATK */ public int getSpatk() { return m_spatk; } /** * Sets SP.ATK */ public void setSpatk(int spatk) { this.m_spatk = spatk; } /** * Returns SP.DEF * * @return */ public int getSpdef() { return m_spdef; } /** * Sets SP.DEF * * @param spdef */ public void setSpdef(int spdef) { this.m_spdef = spdef; } /** * Returns ability * * @return */ public String getAbility() { return m_ability; } /** * Sets ability * * @param ability */ public void setAbility(String ability) { this.m_ability = ability; } /** * Returns nature * * @return */ public String getNature() { return m_nature; } /** * Sets nature * * @param nature */ public void setNature(String nature) { this.m_nature = nature; } /** * Generates a pokemon object for the trade display * * @param info * @return */ public OurPokemon initTradePokemon(String[] info) { int sprite = Integer.parseInt(info[0]); if(sprite > 389) { sprite -= 2; } else { sprite++; } /* * Set sprite, name, gender and hp */ setSpriteNumber(sprite); setName(info[1]); setCurHP(Integer.parseInt(info[5])); setGender(Integer.parseInt(info[3])); if (info[4].equalsIgnoreCase("0")) setShiny(false); else setShiny(true); setMaxHP(Integer.parseInt(info[2])); /* * Stats */ setAtk(Integer.parseInt(info[6])); setDef(Integer.parseInt(info[7])); setSpeed(Integer.parseInt(info[8])); setSpatk(Integer.parseInt(info[9])); setSpdef(Integer.parseInt(info[10])); setType1(Poketype.valueOf(info[11])); if (info[12] != null && !info[12].equalsIgnoreCase("")) { setType2(Poketype.valueOf(info[12])); } setExp(Integer.parseInt(info[13].substring(0, info[13].indexOf('.')))); setLevel(Integer.parseInt(info[14])); setAbility(info[15]); setNature(info[16]); /* * Moves */ String[] moves = new String[4]; for (int j = 0; j < 4; j++) { if (j < info.length - 17 && info[j + 17] != null) moves[j] = info[j + 17]; else moves[j] = ""; } setMoves(moves); return this; } }