package com.thebrokenrail.sorcerycraft.spell.registry; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.world.World; public abstract class Spell { private final Identifier id; private final int level; public Spell(Identifier id, int level) { this.id = id; this.level = level; } public Identifier getID() { return id; } public int getLevel() { return level; } public void execute(World world, Entity source, Entity attacker, Entity target) { // NOOP } public void execute(World world, Entity source, Entity attacker, BlockHitResult hitResult) { // NOOP } public abstract int getXPCost(); public abstract ItemStack getItemCost(); public abstract int getMaxLevel(); }