package com.spaceshooter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
// EnemyKiller1 shoots two streams of bullets.
public class EnemyKiller1 extends Enemy {
private float bulletTimer;
private float angryTimer;
private Texture angryTexture;
private Texture happyTexture;
private boolean isAngry;
private float angle;
private boolean wave;
//Initialization block to avoid repeating constructor code.
{
angryTexture = ResourceManager.getAssetManager().get(
ResourceManager.EnemyKiller1b, Texture.class);
happyTexture = ResourceManager.getAssetManager().get(
ResourceManager.EnemyKiller1, Texture.class);
bulletTimer = 0f;
angryTimer = 0f;
isAngry = false;
}
EnemyKiller1() {
super(50, ResourceManager.EnemyKiller1);
angle = 0.0f;
this.wave = false;
}
EnemyKiller1(boolean wave, float startAngle) {
super(50, ResourceManager.EnemyKiller1);
angle = startAngle;
this.wave = wave;
}
public void updateEnemy(Player player, BulletManager bulletManager) {
angle += Gdx.graphics.getDeltaTime() * 100f;
angryTimer += (Gdx.graphics.getDeltaTime() / 5);
if (isAngry == false) {
if (angryTimer > 0.5f) {
setTexture(angryTexture);
isAngry = true;
}
} else if (isAngry == true) {
bulletTimer += (Gdx.graphics.getDeltaTime() / 5);
if (bulletTimer > 0.06f) {
bulletManager.getList().add(
new EnemyBulletBasic(getX() + 118, getY(), 0,SpaceShooter.getBulletSpeed(), 0));
bulletManager.getList().add(
new EnemyBulletBasic(getX() + 10, getY(), 0,SpaceShooter.getBulletSpeed(), 0));
bulletTimer = 0;
}
if (angryTimer > 1.0f) {
isAngry = false;
setTexture(happyTexture);
angryTimer = 0f;
}
}
if (player != null) {
if (wave) {
setPosition(getX() + 4f * (float) Math.sin(Math.toRadians(angle)),
getY() - 75 * Gdx.graphics.getDeltaTime());
}
else {
setY(getY() - 75 * Gdx.graphics.getDeltaTime());
}
}
else {
if (wave) {
setPosition(getX() + 4f * (float) Math.sin(Math.toRadians(angle)),
getY() - 150 * Gdx.graphics.getDeltaTime());
}
else {
setY(getY() - 200 * Gdx.graphics.getDeltaTime());
}
}
}
}