Android Open Source - feup-lpoo-android-tower-defense Tar Pool Defense






From Project

Back to project page feup-lpoo-android-tower-defense.

License

The source code is released under:

MIT License

If you think the Android project feup-lpoo-android-tower-defense listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pt.up.fe.lpoo.towerdefense;
//from w  w  w.  j  a  v a2 s  .c  om
import java.util.ArrayList;

import pt.up.fe.lpoo.framework.Image;

/**
 * This class represents the Tar Pool defense object. It does not block the enemies' paths (although they will go
 *  around it if its easy to do so) and gives all enemies on it a slow effect
 * @author Joao Marinheiro
 * @author Luis Cleto
 * @see DefenseObject
 */
public class TarPoolDefense extends DefenseObject{
  private static final double SLOW_REACTION_TIME_MODIFIER = 5.0;
  private static final float SLOW_DURATION = 5f;
  private static final int TARPOOL_HP = 100;
  private static final float RELOAD_TIME = 0.1f;
  private static final double TARPOOL_RADIUS = Tile.TILE_SIDE/2;
  /** Cost to build this defense object */
  public static final int TARPOOL_DEFENSE_COST = 50;

  /**
   * Constructor for the TarPoolDefense class. Calls the constructor for the DefenseObject class
   * @param xPos position of the defense in the x axis of the game map
   * @param yPos position of the defense in the y axis of the game map
   */
  public TarPoolDefense(int xPos, int yPos){
    super(RELOAD_TIME, TARPOOL_HP, xPos, yPos, TARPOOL_RADIUS);
  }

  @Override
  protected void attack(ArrayList<Enemy> enemies) {
    for(int i=0; i < enemies.size(); i++){
      if(isWithinRadius(enemies.get(i)) && !enemies.get(i).canFly()){
        if(!enemies.get(i).hasStatusEffect(StatusEffect.EffectType.Slowed)){
          enemies.get(i).addStatusEffect(
              new StatusEffect(StatusEffect.EffectType.Slowed,SLOW_DURATION,SLOW_REACTION_TIME_MODIFIER));
          foundEnemies = true;
        }
        else
          enemies.get(i).addStatusEffect(
              new StatusEffect(StatusEffect.EffectType.Slowed,SLOW_DURATION,SLOW_REACTION_TIME_MODIFIER));

      }
    }
  }

  /**
   * Returns the current Image to represent the tar pool.
   * 
   * @return returns the Image object corresponding the current image of the tar pool
   */
  @Override
  public Image getCurrentImage() {
    return Assets.tarPool;
  }
  /**
   * Indicates whether this defense object can be upgraded or not
   * 
   * @return returns true if it can be upgraded, false otherwise
   */
  @Override
  public boolean isUpgradable() {
    return false;
  }
  /**
   * Returns the cost to upgrade the defense
   * 
   * @return returns the necessary credit to upgrade this defense
   */
  @Override
  public int getUpgradeCost() {
    return 0;
  }

  /**
   * Merely a stub since this defense can not be upgraded yet
   */
  @Override
  public void upgrade() {
  }

  /**
   * Returns the cost to build this defense
   */
  @Override
  public int getCost() {
    return TARPOOL_DEFENSE_COST;
  }
  
  /**
   * Indicates whether this defense will block an enemies path or not
   * 
   * @return returns false if enemies cant walk across this defense, true otherwise
   */
  @Override
  public boolean isCrossable() {
    return true;
  }
  /**
   * Indicates whether this defense is part of the ground terrain or if it has a height (for visibility purposes)
   * 
   * @return returns true if the defense is at ground level, false otherwise
   */
  @Override
  public boolean isGroundObject() {
    return true;
  }
  /**
   * @return returns the cost required to repair the defense
   */
  @Override
  public int getRepairCost() {
    return TARPOOL_HP-hitpoints;
  }
}




Java Source Code List

pt.up.fe.lpoo.framework.Audio.java
pt.up.fe.lpoo.framework.FileIO.java
pt.up.fe.lpoo.framework.Game.java
pt.up.fe.lpoo.framework.Graphics.java
pt.up.fe.lpoo.framework.Image.java
pt.up.fe.lpoo.framework.Input.java
pt.up.fe.lpoo.framework.Music.java
pt.up.fe.lpoo.framework.Pool.java
pt.up.fe.lpoo.framework.Screen.java
pt.up.fe.lpoo.framework.Sound.java
pt.up.fe.lpoo.framework.implementation.AndroidAudio.java
pt.up.fe.lpoo.framework.implementation.AndroidFastRenderView.java
pt.up.fe.lpoo.framework.implementation.AndroidFileIO.java
pt.up.fe.lpoo.framework.implementation.AndroidGame.java
pt.up.fe.lpoo.framework.implementation.AndroidGraphics.java
pt.up.fe.lpoo.framework.implementation.AndroidImage.java
pt.up.fe.lpoo.framework.implementation.AndroidInput.java
pt.up.fe.lpoo.framework.implementation.AndroidMusic.java
pt.up.fe.lpoo.framework.implementation.AndroidSound.java
pt.up.fe.lpoo.framework.implementation.MultiTouchHandler.java
pt.up.fe.lpoo.framework.implementation.SingleTouchHandler.java
pt.up.fe.lpoo.framework.implementation.TouchHandler.java
pt.up.fe.lpoo.towerdefense.Animation.java
pt.up.fe.lpoo.towerdefense.Assets.java
pt.up.fe.lpoo.towerdefense.BarricadeDefense.java
pt.up.fe.lpoo.towerdefense.BoulderProjectile.java
pt.up.fe.lpoo.towerdefense.BoulderTower.java
pt.up.fe.lpoo.towerdefense.BuildingOption.java
pt.up.fe.lpoo.towerdefense.DefenseObject.java
pt.up.fe.lpoo.towerdefense.DescriptionObject.java
pt.up.fe.lpoo.towerdefense.Enemy.java
pt.up.fe.lpoo.towerdefense.FreezeTower.java
pt.up.fe.lpoo.towerdefense.GameElements.java
pt.up.fe.lpoo.towerdefense.GameObj.java
pt.up.fe.lpoo.towerdefense.Golem.java
pt.up.fe.lpoo.towerdefense.InstructionsScreen.java
pt.up.fe.lpoo.towerdefense.LevelScreen.java
pt.up.fe.lpoo.towerdefense.LevelSelectionScreen.java
pt.up.fe.lpoo.towerdefense.LoadingScreen.java
pt.up.fe.lpoo.towerdefense.MainMenuScreen.java
pt.up.fe.lpoo.towerdefense.Messages.java
pt.up.fe.lpoo.towerdefense.MusicPlayer.java
pt.up.fe.lpoo.towerdefense.PathCluster.java
pt.up.fe.lpoo.towerdefense.PoisonTower.java
pt.up.fe.lpoo.towerdefense.Projectile.java
pt.up.fe.lpoo.towerdefense.Skull.java
pt.up.fe.lpoo.towerdefense.Slime.java
pt.up.fe.lpoo.towerdefense.SplashLoadingScreen.java
pt.up.fe.lpoo.towerdefense.StatusEffect.java
pt.up.fe.lpoo.towerdefense.TarPoolDefense.java
pt.up.fe.lpoo.towerdefense.TextParser.java
pt.up.fe.lpoo.towerdefense.Tile.java
pt.up.fe.lpoo.towerdefense.TowerDefenseGame.java
pt.up.fe.lpoo.towerdefense.TurretProjectile.java
pt.up.fe.lpoo.towerdefense.TurretTower.java
pt.up.fe.lpoo.towerdefense.Wave.java