package mhfc.net.common.entity.monster;
import java.util.List;
import org.lwjgl.opengl.GL11;
import com.github.worldsender.mcanm.client.model.util.RenderPassInformation;
import mhfc.net.common.ai.IActionManager;
import mhfc.net.common.ai.entity.boss.deviljho.Bite1;
import mhfc.net.common.ai.entity.boss.deviljho.Bite2;
import mhfc.net.common.ai.entity.boss.deviljho.Death;
import mhfc.net.common.ai.entity.boss.deviljho.FrontalBreathe;
import mhfc.net.common.ai.entity.boss.deviljho.Idle;
import mhfc.net.common.ai.entity.boss.deviljho.Jump;
import mhfc.net.common.ai.entity.boss.deviljho.Launch;
import mhfc.net.common.ai.entity.boss.deviljho.MoveToTarget;
import mhfc.net.common.ai.entity.boss.deviljho.Roar;
import mhfc.net.common.ai.entity.boss.deviljho.Stomp;
import mhfc.net.common.ai.entity.boss.deviljho.TailWhip;
import mhfc.net.common.ai.entity.boss.deviljho.Wander;
import mhfc.net.common.ai.manager.builder.ActionManagerBuilder;
import mhfc.net.common.entity.type.EntityMHFCBase;
import mhfc.net.common.entity.type.EntityMHFCPart;
import mhfc.net.common.item.materials.ItemDeviljho.DeviljhoSubType;
import mhfc.net.common.util.SubTypedItem;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
public class EntityDeviljho extends EntityMHFCBase<EntityDeviljho> {
public EntityDeviljho(World WORLD) {
super(WORLD);
setSize(7.6F, 6F);
targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
targetTasks.addTask(1, new EntityAIHurtByTarget(this, true));
stepHeight = 2.0F;
}
@Override
public IActionManager<EntityDeviljho> constructActionManager() {
ActionManagerBuilder<EntityDeviljho> attackManager = new ActionManagerBuilder<>();
attackManager.registerAction(setDeathAction(new Death()));
attackManager.registerAction(new Idle());
attackManager.registerAction(new Idle());
attackManager.registerAction(new Bite1());
attackManager.registerAction(new Bite2());
attackManager.registerAction(new Launch());
attackManager.registerAction(new MoveToTarget());
attackManager.registerAction(new Roar());
attackManager.registerAction(new Stomp());
attackManager.registerAction(new TailWhip());
attackManager.registerAction(new Jump());
attackManager.registerAction(new FrontalBreathe());
attackManager.registerAction(new Wander());
return attackManager.build(this);
}
@Override
public EntityMHFCPart[] getParts() {
return null;
}
@Override
public void applyEntityAttributes() {
super.applyEntityAttributes();
getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(healthbaseHP(42253D));
}
@Override
public RenderPassInformation preRenderCallback(float scale, RenderPassInformation sub) {
GL11.glScaled(3.7, 3.7, 3.7);
return super.preRenderCallback(scale, sub);
}
@Override
protected String getLivingSound() {
return "mhfc:deviljho.idle";
}
@Override
protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) {
this.playSound("mhfc:deviljho.step", 1.0F, 1.0F);
}
@Override
protected void dropFewItems(boolean par1, int par2) {
int var4;
for (var4 = 0; var4 < 13; ++var4) {
dropItemRand(SubTypedItem.fromSubItem(DeviljhoSubType.SCALE, 2));
}
for (var4 = 0; var4 < 8; ++var4) {
dropItemRand(SubTypedItem.fromSubItem(DeviljhoSubType.FANG, 1));
}
for (var4 = 0; var4 < 1; ++var4) {
dropItemRand(SubTypedItem.fromSubItem(DeviljhoSubType.HIDE, 1));
}
dropItemRand(SubTypedItem.fromSubItem(DeviljhoSubType.SCALP, 1));
dropItemRand(SubTypedItem.fromSubItem(DeviljhoSubType.TALON, 1));
dropItemRand(SubTypedItem.fromSubItem(DeviljhoSubType.TAIL, 1));
}
boolean CamShake = false;
float CamShakeIntensity;
}