package com.lyeeedar.Roguelike3D.Game.Spell;
import java.io.Serializable;
import com.lyeeedar.Roguelike3D.Game.GameData;
import com.lyeeedar.Roguelike3D.Game.Actor.GameActor;
public class SpellBehaviourSingleDamage implements SpellBehaviour, Serializable {
/**
*
*/
private static final long serialVersionUID = 107121664009788997L;
public SpellBehaviourSingleDamage() {
}
boolean damaged = false;
float time = 0;
@Override
public void update(float delta, Spell spell) {
if (time == 0) {
spell.particleEffect.getFirstEmitter().emissionTime /= 4;
}
else if (time < 0.5f)
{
spell.particleEffect.getFirstEmitter().ex += delta*5;
spell.particleEffect.getFirstEmitter().ey += delta*5;
spell.particleEffect.getFirstEmitter().ez += delta*5;
spell.particleEffect.getFirstEmitter().calculateRadius();
spell.radius += delta*5;
}
else if (time < 2)
{
spell.particleEffect.getFirstEmitter().emissionTime += delta;
}
else spell.alive = false;
time += delta;
if (!damaged)
{
GameActor ga = GameData.level.collideSphereActorsAll(spell.getPosition().x, spell.getPosition().y, spell.getPosition().z, spell.getRadius(), spell.casterUID);
if (ga != null)
{
ga.damage(spell.damage, spell.ELE_DAM, spell.DAM_DAM);
damaged = true;
}
}
}
@Override
public SpellBehaviour copy() {
return new SpellBehaviourSingleDamage();
}
}