/** onScannedRobot: What to do when you see another robot */ public void onScannedRobot(ScannedRobotEvent e) { if (isFriend(e.getName())) { return; } Enemy en; if (targets.containsKey(e.getName())) { en = (Enemy) targets.get(e.getName()); } else { en = new Enemy(); targets.put(e.getName(), en); } // the next line gets the absolute bearing to the point where the bot is double absbearing_rad = (getHeadingRadians() + e.getBearingRadians()) % (2 * PI); // this section sets all the information about our target en.name = e.getName(); double h = normaliseBearing(e.getHeadingRadians() - en.heading); h = h / (getTime() - en.ctime); en.changehead = h; en.x = getX() + Math.sin(absbearing_rad) * e.getDistance(); // works out // the x // coordinate // of where // the // target is en.y = getY() + Math.cos(absbearing_rad) * e.getDistance(); // works out // the y // coordinate // of where // the // target is en.bearing = e.getBearingRadians(); en.heading = e.getHeadingRadians(); en.ctime = getTime(); // game time at which this scan was produced en.speed = e.getVelocity(); en.distance = e.getDistance(); en.live = true; if ((en.distance < target.distance) || (target.live == false)) { target = en; } }
private void spawn() { Enemy e = new Enemy(); e.x = Game.water.width; e.y = Game.water.getAt((int) e.x); objects.add(e); }
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--; } }