private void playerAttack() { int damage = 0; AbstractMob monster = mEnemyList.get(mGame.getAttackingEnemyID()).getMonster(); for (int x = 0; x < mParty.length; x++) { if (mParty[x].getStats().getHitPoints() > 0) { if (mAttackSelected[x] == 1) damage = mParty[x].attack(monster); if (mAttackSelected[x] == 2) damage = mParty[x].specialAbility(monster); mGame.setGameScore(damage); mDamages[x] = damage; damage = monster.getStats().getHitPoints() - damage; mEnemyList.get(mGame.getAttackingEnemyID()).getMonster().getStats().setHitPoints(damage); } } // mTurn = 1; }
public SpriteRenderer(RenderSystem rs) { this.rs = rs; spriteShaderProgram = new ShaderProgram( Resources.loadText("shader/default_vert.shader"), Resources.loadText("shader/sprite_frag.shader")); animSpriteShaderProgram = new ShaderProgram( Resources.loadText("shader/default_vert.shader"), Resources.loadText("shader/animsprite_frag.shader")); spriteVAO = new VertexArrayObject(); spriteVAO.bind(); spriteVAO.addArrayBuffer(0, Game.toBuffer(SPRITE_VERTS), 2, GL11.GL_FLOAT, Buffer.STATIC_DRAW); spriteVAO.addArrayBuffer(1, Game.toBuffer(SPRITE_UV), 2, GL11.GL_FLOAT, Buffer.STATIC_DRAW); spriteVAO.unbind(); }
private boolean enemyAttack() { int damage = 0; if (mTimer > 80) { for (int i = 0; i < mParty.length; i++) { damage = mEnemyList.get(mGame.getAttackingEnemyID()).getMonster().attack(mParty[i]); mParty[i].getStats().setHitPoints(mParty[i].getStats().getHitPoints() - damage); mEnemyDamages[i] = damage; } return true; } return false; }
public void updateWeapons() { weaponEffectiveTimer++; for (int i = 0; i < weapons.length; i++) { if (weapons[i] != null) { weapons[i].update(); if (weapons[i].targetDestroyed()) weapons[i].setTarget(MainController.getNearestEntity((int) xPos, (int) yPos)); if (weaponEffectiveTimer == Game.getTPS()) weaponEffectiveTimer = 0; if (!weapons[i].verifyEffectiveness()) weapons[i].setTarget(MainController.getNearestEntity((int) xPos, (int) yPos)); } } }
public Camera(Game game) { this.game = game; player = game.getPlayer(); level = game.getCurrentLevel(); hud = new HUD(player, game); }
@Override public void update() { mTimer++; mParty = mGame.getPartyArray(); mEnemyList = mGame.getMonsterArray(); mCombinedPartyHP = combinedPartyHealth(); mCombinedEnemyHP = combinedEnemyHealth(); mEnemyHP = enemyHealth(); if (mEnemyHP < 1 || mCombinedPartyHP < 1) isOver = true; if (isOver) { if (mEnemyHP < 1 && mGame.getKeyManager().enter) { System.out.println("Switching back to ExplorationState"); mTimer = 0; mTurn = 0; isOver = false; count = 0; mAttackSelected = new int[3]; mDamages = new int[3]; mEnemyDamages = new int[3]; mEnemyList.remove(mEnemyList.get(mGame.getAttackingEnemyID())); mGame.setMonsterArray(mEnemyList); mGame.killedEnemy(); StateManager.setState(mStateManager.getExplorationState()); } else if (mCombinedEnemyHP < 1 && mGame.getKeyManager().enter) { StateManager.setState(mStateManager.getEndState()); } else if (mCombinedPartyHP < 1 && mGame.getKeyManager().enter) { StateManager.setState(mStateManager.getEndState()); } } else { if (mGame.getKeyManager().backspace && count > 0) { System.out.println("Backspace: count:" + count); if (count == 3) count--; mAttackSelected[count] = 0; count--; } if (mGame.getKeyManager().one && count < 3) { System.out.println("one"); mAttackSelected[count] = 1; count++; } if (mGame.getKeyManager().two && count < 3) { System.out.println("two"); mAttackSelected[count] = 2; count++; } if (mGame.getKeyManager().enter && count == 3 && mTurn == 0) { mTurn = 1; playerAttack(); mTimer = 0; mEnemyDamages = new int[3]; } if (mTurn == 1) { boolean trigger = false; if (mTurn == 1) trigger = enemyAttack(); if (trigger) { mAttackSelected = new int[3]; mDamages = new int[3]; count = 0; mTimer = 0; mTurn = 0; } } } }
private int enemyHealth() { return mEnemyList.get(mGame.getAttackingEnemyID()).getMonster().getStats().getHitPoints(); }
@Override public void render(Graphics paintBrush) { mParty = mGame.getPartyArray(); mEnemyList = mGame.getMonsterArray(); paintBrush.drawImage(GraphicAssets.mBackground, 0, 0, 1200, 725, null); paintBrush.drawImage(GraphicAssets.choppingBlock, 800, 75, 400, 200, null); paintBrush.drawImage(GraphicAssets.choppingBlock, -10, 250, 400, 200, null); Graphics2D twoDpaintBrush = (Graphics2D) paintBrush; mMenuRectangle = new Rectangle(0, 450, 1200, 500); twoDpaintBrush.drawImage( GraphicAssets.mWood, mMenuRectangle.x, mMenuRectangle.y, 1200, 500, null); Font font2 = new Font("arial", Font.BOLD, 30); Font font3 = new Font("arial", Font.BOLD, 20); Font font4 = new Font("arial", Font.PLAIN, 15); paintBrush.setFont(font2); double ratio = 1.0; for (int x = 1; x < 3 + 1; x++) { if (mParty[x - 1].getStats().getHitPoints() > 0) { ratio = (mParty[x - 1].getStats().getHitPoints() * 1.0) / (mParty[x - 1].getStats().getMaxHitPoints() * 1.0); paintBrush.setFont(font3); paintBrush.setColor(Color.BLACK); paintBrush.drawString(mParty[x - 1].getStats().getName(), 100 + (400 * (x - 1)), 500); for (int j = 0; j < mParty[x - 1].getAttackNames().size(); j++) paintBrush.drawString( j + 1 + ". " + mParty[x - 1].getAttackNames().get(j), 80 + (400 * (x - 1)), 550 + (50 * j)); paintBrush.drawString("Choice: ", 80 + (400 * (x - 1)), 650); if (mAttackSelected[x - 1] != 0) paintBrush.drawString("" + mAttackSelected[x - 1], 160 + (400 * (x - 1)), 652); paintBrush.drawImage( GraphicAssets.mhealthHolder, -10 + (100 * x), 150 - (20 * x), 100, 20, null); paintBrush.drawImage( GraphicAssets.mHealth, -10 + (100 * x), 150 - (20 * x), (int) (100 * ratio), 20, null); paintBrush.setFont(font4); paintBrush.setColor(Color.DARK_GRAY); paintBrush.drawString( mParty[x - 1].getStats().getHitPoints() + " / " + mParty[x - 1].getStats().getMaxHitPoints(), 10 + (100 * x), 185 - (20 * x)); paintBrush.drawImage( mParty[x - 1].getFightIcon(), -40 + (100 * x), 200 - (20 * x), 200, 200, null); } } int eID = mGame.getAttackingEnemyID(); ratio = (mEnemyList.get(eID).getMonster().getStats().getHitPoints() * 1.0) / (mEnemyList.get(eID).getMonster().getStats().getMaxHitPoints() * 1.0); int print = (int) (100 * ratio); paintBrush.drawImage(GraphicAssets.mhealthHolder, 1000, 40, 100, 20, null); paintBrush.drawImage(GraphicAssets.mHealth, 1000, 40, print, 20, null); paintBrush.setFont(font4); paintBrush.drawString( mEnemyList.get(eID).getMonster().getStats().getHitPoints() + " / " + mEnemyList.get(eID).getMonster().getStats().getMaxHitPoints(), 1020, 75); paintBrush.drawImage(mEnemyList.get(eID).getMonster().getIcon(), 980, 40, 200, 200, null); Font font1 = new Font("arial", Font.BOLD, 45); paintBrush.setFont(font1); String turnString = ""; if (mTurn == 0 && mEnemyHP > 0 && mCombinedPartyHP > 0) { turnString = "Your Turn"; } else if (mTurn == 1 && mEnemyHP > 0 && mCombinedPartyHP > 0) { turnString = "Enemies Turn"; } else if (mEnemyHP < 1 || mCombinedPartyHP < 1) { turnString = "Fight Over"; } else { turnString = ""; } paintBrush.setColor(Color.LIGHT_GRAY); paintBrush.drawString(turnString, mGame.getWidth() / 3 + 100, 73); paintBrush.setColor(Color.BLACK); paintBrush.drawString(turnString, mGame.getWidth() / 3 + 101, 75); paintBrush.setFont(font3); paintBrush.setColor(Color.RED); for (int x = 0; x < mDamages.length; x++) { if (mDamages[x] != 0) paintBrush.drawString("-" + mDamages[x], 950, 160 + (20 * x)); } for (int x = 0; x < mEnemyDamages.length; x++) { if (mEnemyDamages[x] != 0) paintBrush.drawString("-" + mEnemyDamages[x], 400, 160 + (20 * x)); } if (((count == 3 || mEnemyHP < 1 || mCombinedPartyHP < 1) && mTurn == 0) || (mCombinedEnemyHP < 1 || mCombinedPartyHP < 1)) { paintBrush.drawImage(GraphicAssets.mEnter, 570, 675, 100, 30, null); } }