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 }