package me.km.effects.active; import me.km.effects.ActiveEffectBase; import me.km.effects.EffectUtils; import me.km.entities.EntityItemProjectile; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.init.SoundEvents; import net.minecraft.item.ItemStack; public class Musket extends ActiveEffectBase { @Override protected boolean executeEffect(EntityPlayerMP p, int power) { EffectUtils.playSound(p, SoundEvents.ENTITY_FIREWORK_BLAST); float spread = 0.8f - power * 0.04f; if(spread < 0) { spread = 0; } EntityItemProjectile launch = new EntityItemProjectile(p, new ItemStack(Blocks.STONE_BUTTON), power * 2); launch.setHeadingFromThrower(p, p.rotationPitch, p.rotationYaw, 0, 2.5f, spread); p.world.spawnEntity(launch); return true; } @Override protected int getManaCost(int manaFactor) { return 5 * manaFactor; } }