public boolean makeEnemies(long n) { int i = choices.size() - 1; if (n > choices.get(i).cost * 14) { while (i >= 0) { choices.get(i).maxHealth *= 2; choices.get(i).health *= 2; choices.get(i).damage *= 2; i--; } return true; } while (n > 0) { while (choices.get(i).cost > n) { i--; if (i < 0) break; } if (i < 0) break; Enemy test = choices.get(i).makeRandomEnemy(); if (test == null) { break; } test.maxHealth = choices.get(i).maxHealth; test.health = choices.get(i).health; test.damage = choices.get(i).damage; test.points = choices.get(i).points; test.cost = choices.get(i).cost; n -= choices.get(i).cost; } return false; }
public void specialAttack(Graphics2D g, Input p1) { swordSpecHelper(g); if (justPressed(p1, Button.B)) { if (player.weapon.name.equals("Short Sword")) { if (swordSpec) { swordSpec = false; // Stop special noise wepspec.stop(); wepspec.reset(); } else if (!swordSpec && player.mana > 0) { // Start special noise weps.loadSound("Resources/Sounds/special.wav"); weps.run(); wepspec.loadSound("Resources/Sounds/fire.wav"); wepspec.runLoop(); swordSpec = true; } } if (player.weapon.name.equals("Greatsword") && player.mana >= 40 && spDelay == 0) { // Greatsword spec sound weps.loadSound("Resources/Sounds/special.wav"); weps.run(); player.mana -= 40; spDelay = player.weapon.delay; for (Enemy enemy : wave.enemies.values()) { if (enemy.x + enemy.size / 2 + arena.xOffset > player.x - 128 && enemy.x - enemy.size / 2 + arena.xOffset < player.x + 128 && enemy.y + enemy.size / 2 + arena.yOffset > player.y - 128 && enemy.y - enemy.size / 2 + arena.yOffset < player.y + 128) { enemy.health -= player.weapon.spDamage; // UP if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x - 32 && enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 32 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - 96 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y - 33) { enemy.y -= 32; } // DOWN if (enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 32 && enemy.x + arena.xOffset + enemy.size / 2 >= player.x - 32 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + 96 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y + 33) { enemy.y += 32; } // LEFT if (enemy.x + arena.xOffset - enemy.size / 2 <= player.x - 32 && enemy.x + arena.xOffset + enemy.size / 2 >= player.x - 96 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + 32 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - 32) { enemy.x -= 32; } // RIGHT if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x + 32 && enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 96 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - 32 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + 32) { enemy.x += 32; } } } g.drawRect((int) (player.x - 128), (int) (player.y - 128), 256, 256); } if (player.weapon.name.equals("Spear") && player.mana >= 25 && spDelay == 0) { wepspec.loadSound("Resources/Sounds/special.wav"); wepspec.run(); player.mana -= 25; spDelay = player.weapon.delay; // UP if (player.direction == 0) { for (Enemy enemy : wave.enemies.values()) { if (enemy.x + enemy.size / 2 + arena.xOffset > player.x - player.size / 2 - 16 && enemy.x - enemy.size / 2 + arena.xOffset < player.x + player.size / 2 + 16 && enemy.y + enemy.size / 2 + arena.yOffset > player.y - player.size / 2 - 192 && enemy.y - enemy.size / 2 + arena.yOffset < player.y - player.size / 2) { enemy.health -= player.weapon.spDamage; enemy.y -= 32; } } g.drawRect( (int) (player.x - player.size / 2 - 16), (int) (player.y - player.size / 2 - 192), 96, 192); } // DOWN if (player.direction == 1) { for (Enemy enemy : wave.enemies.values()) { if (enemy.x + enemy.size / 2 + arena.xOffset > player.x - player.size / 2 - 16 && enemy.x - enemy.size / 2 + arena.xOffset < player.x + player.size / 2 + 16 && enemy.y + enemy.size / 2 + arena.yOffset > player.y + player.size / 2 && enemy.y - enemy.size / 2 + arena.yOffset < player.y + player.size / 2 + 192) { enemy.health -= player.weapon.spDamage; enemy.y += 32; } } g.drawRect( (int) (player.x - player.size / 2 - 16), (int) (player.y + player.size / 2), 96, 192); } // LEFT if (player.direction == 2) { for (Enemy enemy : wave.enemies.values()) { if (enemy.x + enemy.size / 2 + arena.xOffset > player.x - player.size / 2 - 192 && enemy.x - enemy.size / 2 + arena.xOffset < player.x - player.size / 2 && enemy.y + enemy.size / 2 + arena.yOffset > player.y - player.size / 2 - 16 && enemy.y - enemy.size / 2 + arena.yOffset < player.y + player.size / 2 + 16) { enemy.health -= player.weapon.spDamage; enemy.x -= 32; } } g.drawRect( (int) (player.x - player.size / 2 - 192), (int) (player.y - player.size / 2 - 16), 192, 96); } // RIGHT if (player.direction == 3) { for (Enemy enemy : wave.enemies.values()) { if (enemy.x + enemy.size / 2 + arena.xOffset > player.x + player.size / 2 && enemy.x - enemy.size / 2 + arena.xOffset < player.x + player.size / 2 + 192 && enemy.y + enemy.size / 2 + arena.yOffset > player.y - player.size / 2 - 16 && enemy.y - enemy.size / 2 + arena.yOffset < player.y + player.size / 2 + 16) { enemy.health -= player.weapon.spDamage; enemy.x += 32; } } g.drawRect( (int) (player.x + player.size / 2), (int) (player.y - player.size / 2 - 16), 192, 96); } } } if (spDelay > 0) { spDelay--; } }
public void basicAttack(Graphics2D g, Input p1) { if (justPressed(p1, Button.A) && delay == 0) { delay = player.weapon.delay; if (player.weapon.name.equals("Short Sword")) { weps.loadSound("Resources/Sounds/short.wav"); weps.run(); // UP if (player.direction == 0) { AnimationLoader.wick.setAnimation(14); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 48 && enemy.x + arena.xOffset + enemy.size / 2 >= player.x - 48 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y - 33 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - 96) { if (swordSpec) { enemy.health -= (1.5 * player.weapon.damage); } else { enemy.health -= player.weapon.damage; } generateMana(); } } g.drawRect((int) (player.x - 48), (int) (player.y - 96), weapon.width, weapon.length); } // DOWN if (player.direction == 1) { AnimationLoader.wick.setAnimation(4); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x - 48 && enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 48 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y + 36 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + 96) { if (swordSpec) { enemy.health -= (1.5 * player.weapon.damage); } else { enemy.health -= player.weapon.damage; } generateMana(); } } g.drawRect((int) (player.x - 48), (int) (player.y + 32), weapon.width, weapon.length); } // LEFT if (player.direction == 2) { AnimationLoader.wick.setAnimation(6); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x - 96 && enemy.x + arena.xOffset - enemy.size / 2 <= player.x - 36 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - 32 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + 32) { if (swordSpec) { enemy.health -= (1.5 * player.weapon.damage); } else { enemy.health -= player.weapon.damage; } generateMana(); } } g.drawRect((int) (player.x - 96), (int) (player.y - 48), weapon.length, weapon.width); } // RIGHT if (player.direction == 3) { AnimationLoader.wick.setAnimation(5); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 96 && enemy.x + arena.xOffset + enemy.size / 2 >= player.x + 36 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + 32 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - 32) { if (swordSpec) { enemy.health -= (1.5 * player.weapon.damage); } else { enemy.health -= player.weapon.damage; } generateMana(); } } g.drawRect((int) (player.x + 32), (int) (player.y - 48), weapon.length, weapon.width); } } if (player.weapon.name.equals("Greatsword")) { weps.loadSound("Resources/Sounds/great.wav"); weps.run(); // UP if (player.direction == 0) { AnimationLoader.wick.setAnimation(15); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 > player.x - 32 && enemy.x + arena.xOffset - enemy.size / 2 < player.x + 32 && enemy.y + arena.yOffset + enemy.size / 2 > player.y - 96 && enemy.y + arena.yOffset - enemy.size / 2 < player.y - 33) { enemy.health -= player.weapon.damage; enemy.y -= 32; generateMana(); } } g.drawRect((int) (player.x - 96), (int) (player.y - 96), weapon.width, weapon.length); } // DOWN if (player.direction == 1) { AnimationLoader.wick.setAnimation(7); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset - enemy.size / 2 < player.x + 32 && enemy.x + arena.xOffset + enemy.size / 2 > player.x - 32 && enemy.y + arena.yOffset - enemy.size / 2 < player.y + 96 && enemy.y + arena.yOffset + enemy.size / 2 > player.y + 33) { enemy.health -= player.weapon.damage; enemy.y += 32; generateMana(); } } g.drawRect((int) (player.x - 96), (int) player.y, weapon.width, weapon.length); } // LEFT if (player.direction == 2) { AnimationLoader.wick.setAnimation(9); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset - enemy.size / 2 < player.x - 32 && enemy.x + arena.xOffset + enemy.size / 2 > player.x - 96 && enemy.y + arena.yOffset - enemy.size / 2 < player.y + 32 && enemy.y + arena.yOffset + enemy.size / 2 > player.y - 32) { enemy.health -= player.weapon.damage; enemy.x -= 32; generateMana(); } } g.drawRect((int) (player.x - 96), (int) (player.y - 96), weapon.length, weapon.width); } // RIGHT if (player.direction == 3) { AnimationLoader.wick.setAnimation(8); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 > player.x + 32 && enemy.x + arena.xOffset - enemy.size / 2 < player.x + 96 && enemy.y + arena.yOffset + enemy.size / 2 > player.y - 32 && enemy.y + arena.yOffset - enemy.size / 2 < player.y + 32) { enemy.health -= player.weapon.damage; enemy.x += 32; generateMana(); } } g.drawRect((int) player.x, (int) (player.y - 96), weapon.length, weapon.width); } } if (player.weapon.name.equals("Spear")) { weps.loadSound("Resources/Sounds/spear.wav"); weps.run(); // UP if (player.direction == 0) { AnimationLoader.wick.setAnimation(12); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x + weapon.width && enemy.x + arena.xOffset - enemy.size / 2 <= player.x + weapon.width && enemy.y + arena.yOffset + enemy.size / 2 >= player.y - weapon.length - 32 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y - 32) { enemy.health -= player.weapon.damage; generateMana(); } } g.drawRect((int) player.x, (int) (player.y - 160), weapon.width, weapon.length); } // DOWN if (player.direction == 1) { AnimationLoader.wick.setAnimation(13); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x + weapon.width && enemy.x + arena.xOffset - enemy.size / 2 <= player.x + weapon.width && enemy.y + arena.yOffset + enemy.size / 2 >= player.y + 32 && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + weapon.length + 32) { enemy.health -= player.weapon.damage; generateMana(); } } g.drawRect((int) player.x, (int) (player.y + 32), weapon.width, weapon.length); } // LEFT if (player.direction == 2) { AnimationLoader.wick.setAnimation(11); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x - weapon.length - 32 && enemy.x + arena.xOffset - enemy.size / 2 <= player.x - 32 && enemy.y + arena.yOffset + enemy.size / 2 >= player.y + weapon.width && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + weapon.width) { enemy.health -= player.weapon.damage; generateMana(); } } g.drawRect((int) (player.x - 160), (int) player.y, weapon.length, weapon.width); } // RIGHT if (player.direction == 3) { AnimationLoader.wick.setAnimation(10); for (Enemy enemy : wave.enemies.values()) { if (enemy.x + arena.xOffset + enemy.size / 2 >= player.x + 32 && enemy.x + arena.xOffset - enemy.size / 2 <= player.x + 32 + weapon.length && enemy.y + arena.yOffset + enemy.size / 2 >= player.y + weapon.width && enemy.y + arena.yOffset - enemy.size / 2 <= player.y + weapon.width) { enemy.health -= player.weapon.damage; generateMana(); } } g.drawRect((int) (player.x + 32), (int) player.y, weapon.length, weapon.width); } } } if (delay > 0) { delay--; } }