예제 #1
0
  public void fire() {
    if (!canFire()) return;
    Enemy target = getTargetEnemy();

    if (target == null) return;

    if (this.towerType == TowerType.ArrowTower) {
      Effect effect =
          new Effect(
              1, TowerType.ArrowTower.getAttack(level), Effect.Target.SINGLE, Effect.Type.DAMAGE);
      effect.setTargetEnemy(target);
      grid.getLevel().getCurrentWave().addEffect(effect);
      grid.getLevel()
          .getCurrentWave()
          .addAmmoSprite(
              new AmmoSprite(
                  this.grid, target.getLastGrid(), Configuration.TOWER_ARROWTOWER_AMMOSPRITE_TYPE));
    } else if (this.towerType == TowerType.CannonTower) {
      Effect effect =
          new Effect(
              1, TowerType.CannonTower.getAttack(level), Effect.Target.SPLASH, Effect.Type.DAMAGE);
      effect.setTargetGrid(target.getGrid());
      grid.getLevel().getCurrentWave().addEffect(effect);
      grid.getLevel()
          .getCurrentWave()
          .addAmmoSprite(
              new AmmoSprite(
                  this.grid,
                  target.getLastGrid(),
                  Configuration.TOWER_CANNONTOWER_AMMOSPRITE_TYPE));
    } else throw new AssertionError();

    // setib turns to fire kuhugi
    // efekt vaja tekitada
  }