Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
  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--;
    }
  }
Exemplo n.º 3
0
  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--;
    }
  }