Package com.googlecode.jumpnevolve.game.objects

Source Code of com.googlecode.jumpnevolve.game.objects.Soldier

package com.googlecode.jumpnevolve.game.objects;

import org.newdawn.slick.Graphics;
import org.newdawn.slick.Input;

import com.googlecode.jumpnevolve.game.EnemyTemplate;
import com.googlecode.jumpnevolve.graphics.GraphicUtils;
import com.googlecode.jumpnevolve.graphics.ResourceManager;
import com.googlecode.jumpnevolve.graphics.world.Blockable;
import com.googlecode.jumpnevolve.graphics.world.Damageable;
import com.googlecode.jumpnevolve.graphics.world.GravityActing;
import com.googlecode.jumpnevolve.graphics.world.Living;
import com.googlecode.jumpnevolve.graphics.world.World;
import com.googlecode.jumpnevolve.math.NextCollision;
import com.googlecode.jumpnevolve.math.Shape;
import com.googlecode.jumpnevolve.math.ShapeFactory;
import com.googlecode.jumpnevolve.math.Vector;
import com.googlecode.jumpnevolve.util.Masses;

/**
*
* Beschreibung: Ein Soldat der steht
*
* Spezifikationen: blockbar, nicht schiebbar
*
* Bewegungen: Masse = 5; grundsätzlich keine Bewegung; Schwerkraft wirkt
*
* Aggressivitäten: nur gegen den Spieler, wenn der nicht von oben kommt
*
* Immunitäten: Wird nicht von anderen Soldaten getötet
*
* Aktivierung: keine
*
* Deaktivierung: keine
*
* Besonderheiten: kann als Vorlage für andere Gegner benutzt werden
*
* @author Erik Wagner
*
*/
public class Soldier extends EnemyTemplate implements GravityActing, Blockable {

  private static final long serialVersionUID = 5378834855856957746L;

  public Soldier(World world, Vector position) {
    super(world, ShapeFactory.createRectangle(position, new Vector(20.0f,
        20.0f)), Masses.SOLDIER);
  }

  @Override
  protected void specialSettingsPerRound(Input input) {
    if (this.isAlive() == false) {
      this.getWorld().removeFromWorld(this);
      // Aus allen Listen der Welt löschen, da dieses Objekt besiegt wurde
    }
  }

  @Override
  public void draw(Graphics g) {
    GraphicUtils.drawImage(
        g,
        this.getShape(),
        ResourceManager.getInstance().getImage(
            "object-pictures/simple-foot-soldier.png"));
  }

  @Override
  public boolean canDamage(NextCollision col) {
    return col.isBlocked(Shape.DOWN) || col.isBlocked(Shape.RIGHT)
        || col.isBlocked(Shape.LEFT);
  }

  @Override
  public int getDamage() {
    return 1;
  }

  @Override
  public int getKindOfDamage() {
    return DAMAGE_NORMAL;
  }

  @Override
  public boolean wantDamaging(Living object) {
    return object.getCompany() == COMPANY_PLAYER;
  }

  @Override
  public void damage(Damageable damager) {
    this.killed();
  }

  @Override
  public int getDeff(int kindOfDamage) {
    return 0;
  }

  @Override
  public int getHP() {
    return 1;
  }

  @Override
  public void killed() {
    this.setAlive(false);
  }

  @Override
  public boolean canBeBlockedBy(Blockable other) {
    return other.getCompany() != COMPANY_PLAYER;
  }

  @Override
  public boolean wantBlock(Blockable other) {
    return true;
  }
}
TOP

Related Classes of com.googlecode.jumpnevolve.game.objects.Soldier

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.