package com.zivilon.cinder_loe.entity; import com.zivilon.cinder_loe.CinderLoE; import lotr.common.LOTRFoods; import lotr.common.LOTRMod; import lotr.common.entity.ai.*; import lotr.common.entity.animal.LOTREntityHorse; import lotr.common.entity.npc.*; import lotr.common.fac.LOTRFaction; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import java.util.Arrays; import java.util.List; public class DarkSpider extends LOTREntitySpiderBase { public static int VENOM_DARK = 3; public DarkSpider(World world) { super(world); } @Override protected int getRandomSpiderScale() { return this.rand.nextInt(4); } @Override protected int getRandomSpiderType() { return VENOM_DARK; } @Override public LOTRFaction getFaction() { return LOTRFaction.UTUMNO; } @Override public boolean attackEntityAsMob(Entity entity) { if (super.attackEntityAsMob(entity)) { if (entity instanceof EntityLivingBase) { ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.blindness.id, 200, 0)); } return true; } return false; } @Override protected boolean canRideSpider() { return false; } @Override public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) { } @Override public boolean attackEntityFrom(DamageSource source, float amount) { if (source.getEntity() instanceof EntityLivingBase) { EntityLivingBase attacker = (EntityLivingBase) source.getEntity(); if (attacker instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) attacker; if (this.getSpiderScale() > 4 && this.rand.nextDouble() < 0.5) { spawnDarkSpiders(player); } } } return super.attackEntityFrom(source, amount); } private void spawnDarkSpiders(EntityPlayer player) { World world = player.worldObj; for (int i = 0; i < 10; i++) { DarkSpider babySpider = new DarkSpider(world); babySpider.setLocationAndAngles(player.posX, player.posY, player.posZ, player.rotationYaw, 0.0F); babySpider.setSpiderScale(0); babySpider.setHealth(10); world.spawnEntityInWorld(babySpider); } } @Override public ItemStack getPickedResult(MovingObjectPosition target) { return null; } }