import schule.ngb.zm.Drawable;
import schule.ngb.zm.Options;
import schule.ngb.zm.Updatable;
import schule.ngb.zm.shapes.Picture;

public class Hehomon extends Picture implements Updatable {

	private String name, typ, bild;

	protected int angr, vert;

	protected int lp, lpMax;

	protected boolean paralysiert = false, vergiftet = false;

	private String angr1, angr2, vert1, vert2;

	private double sinOffset;

	public Hehomon( String pName, String pTyp, int pLp, int pAngr, int pVert, String pAngr1, String pAngr2, String pVert1, String pVert2, String pBild ) {
		super(0, 0, "images/" + pBild);

		name = pName;
		lp = pLp;
		lpMax = pLp;
		angr = pAngr;
		vert = pVert;
		angr1 = pAngr1;
		angr2 = pAngr2;
		vert1 = pVert1;
		vert2 = pVert2;
		bild = pBild;

		sinOffset = random(-PI, PI);
	}

	public String getName() {
		return name;
	}

	public String getTyp() {
		return typ;
	}

	public String getBild() {
		return bild;
	}

	public int getLp() {
		return lp;
	}

	public int getLpMax() {
		return lpMax;
	}

	public int getAngr() {
		return angr;
	}

	public int getVert() {
		return vert;
	}

	public boolean isParalysiert() {
		return paralysiert;
	}

	public boolean isVergiftet() {
		return vergiftet;
	}

	public String getNameAngr1() {
		return angr1;
	}

	public String getNameAngr2() {
		return angr2;
	}

	public String getNameVert1() {
		return vert1;
	}

	public String getNameVert2() {
		return vert2;
	}

	public void setAngr( int pAngr ) {
		angr = pAngr;
	}

	public void setVert( int pVert ) {
		vert = pVert;
	}

	public void setParalysiert( boolean pParalysiert ) {
		paralysiert = pParalysiert;
	}

	public void setVergiftet( boolean pVergiftet ) {
		vergiftet = pVergiftet;
	}

	public void nimmSchaden( int pSchaden ) {
		if( lp-pSchaden < 0 ) {
			lp = 0;
		} else {
			lp -= pSchaden;
		}
	}

	public void heilen( int pHeilung ) {
		if( lp+pHeilung > lpMax ) {
			lp = lpMax;
		} else {
			lp += pHeilung;
		}
	}

	public void angriff1( Hehomon gegner ) {

	}

	public void angriff2( Hehomon gegner ) {

	}

	public void verteidigung1( Hehomon gegner ) {

	}

	public void verteidigung2( Hehomon gegner ) {

	}

	public boolean isActive() {
		return true;
	}

	@Override
	public void update( double delta ) {
		double deltaY = sin(runtime / 800.0 * PI + sinOffset);
		this.move(0.0, deltaY);
	}

}
