package me.tyler15555.minibosses.util;
import java.lang.reflect.InvocationTargetException;
import me.tyler15555.minibosses.entity.EntitySuperSlime;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class SummonEntry {
private static Class entityClass;
private static String summon;
private static int bCost;
private static int lReq;
public SummonEntry(Class clazz, String summonName, int bloodCost, int levelReq) {
entityClass = clazz;
summon = summonName;
bCost = bloodCost;
lReq = levelReq;
}
public void doSummon(int blood, int level, World world, int x, int y, int z) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
if(blood >= bCost && level >= lReq) {
Entity monster = (Entity) entityClass.getConstructor(World.class).newInstance(world);
monster.setPosition(x, y, z);
if(monster instanceof EntitySuperSlime) {
EntitySuperSlime slime = (EntitySuperSlime)monster;
slime.setSlimeSize(MathHelper.getRandomIntegerInRange(slime.getRNG(), 10, 15));
}
world.spawnEntityInWorld(monster);
}
}
@Override
public String toString() {
return entityClass.getName() + ":" + summon + ":" + bCost + ":" + lReq;
}
}