package be.isach.ultracosmetics.cosmetics.particleeffects;
import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.cosmetics.type.ParticleEffectType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.Sounds;
import be.isach.ultracosmetics.util.UtilParticles;
import be.isach.ultracosmetics.util.SoundUtil;
import org.bukkit.Location;
import org.bukkit.util.Vector;
/**
* Represents an instance of frost lord particles summoned by a player.
*
* @author iSach
* @since 08-12-2015
*/
public class ParticleEffectFrostLord extends ParticleEffect {
int step = 0;
float stepY = 0;
float radius = 1.5f;
public ParticleEffectFrostLord(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(ultraCosmetics, owner, ParticleEffectType.FROSTLORD);
}
@Override
public void onUpdate() {
for (int i = 0; i < 6; i++) {
Location location = getPlayer().getLocation();
double inc = (2 * Math.PI) / 100;
double angle = step * inc + stepY + i;
Vector v = new Vector();
v.setX(Math.cos(angle) * radius);
v.setZ(Math.sin(angle) * radius);
UtilParticles.display(getType().getEffect(), location.add(v).add(0, stepY, 0));
location.subtract(v).subtract(0, stepY, 0);
if (stepY < 3) {
radius -= 0.022;
stepY += 0.045;
} else {
stepY = 0;
step = 0;
radius = 1.5f;
SoundUtil.playSound(getPlayer(), Sounds.DIG_SNOW, .5f, 1.5f);
UtilParticles.display(getType().getEffect(), location.clone().add(0, 3, 0), 48, 0.3f);
}
}
}
}