package slimpleslickgame; import org.newdawn.slick.Graphics; import org.newdawn.slick.geom.Vector2f; import util.Logger; public class Stats { private float x, y; private int credits = 0; private int level = 1; private int time = 0; private boolean tryUpgrade = false; private int hp = 100; private int incomeRate = 1000; public Stats(Vector2f scoreBoardPos) { this.x = scoreBoardPos.x; this.y = scoreBoardPos.y; } public void render(Graphics graphics){ graphics.drawString("Credits: " + credits , x, y-(2*graphics.getFont().getLineHeight())); graphics.drawString("Level: " + level , x, y-graphics.getFont().getLineHeight()); graphics.drawString("HP: "+ hp , x, y); } public boolean update(int delta, int score){ credits = score; return this.update(delta); } public boolean update(int delta){ int levelCredits = 100 * this.level * this.level; if(this.credits >= levelCredits && this.tryUpgrade){ level++; this.credits -= levelCredits; Logger.log("Upgraded player!"); return true; } this.tryUpgrade = false; return false; } public void putUpgradePressed() { this.tryUpgrade = true; } public int calcCredits(int delta, int scoreDiff) { int creditsDiff = scoreDiff; this.time += delta; while(time > incomeRate){ time -= incomeRate; creditsDiff += level; } this.credits += creditsDiff; return this.credits; } //public in orderto write in game info screen public static final int CREEP_PRICE_1 = 50; public static final int CREEP_PRICE_5 = 225; public static final int CREEP_PRICE_10 = 400; private static final int INCOME_RATE_1 = 5; private static final int INCOME_RATE_5 = 30; private static final int INCOME_RATE_10 = 75; public int buyCreeps(int key) { switch(key){ case 1: if(this.credits >= CREEP_PRICE_1){ credits -= CREEP_PRICE_1; this.incomeRate -= INCOME_RATE_1; return 1; } break; case 2: if(this.credits >= CREEP_PRICE_5){ credits -= CREEP_PRICE_5; this.incomeRate -= INCOME_RATE_5; return 5; } break; case 3: if(this.credits >= CREEP_PRICE_10){ credits -= CREEP_PRICE_10; this.incomeRate -= INCOME_RATE_10; return 10; } break; } return 0; } public int damaged() { hp--; return hp; } public void setHP(int playerHp) { this.hp = playerHp; } }