package common.entity.npc;

import common.init.Items;
import common.item.ItemStack;
import common.rng.Random;
import common.world.World;

public class EntitySpirit extends EntityNPC {
	public EntitySpirit(World worldIn) {
		super(worldIn);
	}
	
//	public boolean isAggressive() {
//		return false;
//	}
//	
//    public boolean isPeaceful() {
//    	return true;
//    }
    
    public boolean isAggressive(Class<? extends EntityNPC> clazz) {
    	return clazz == EntityHaunter.class;
    }
    
    public boolean isPeaceful(Class<? extends EntityNPC> clazz) {
    	return clazz != EntityHaunter.class;
    }
    
//    public boolean canInfight(Alignment align) {
//    	return false;
//    }
//    
//    public boolean canMurder(Alignment align) {
//    	return false;
//    }
    
//    public boolean canUseMagic() {
//    	return false;
//    }
    
//    public int getBaseEnergy(Random rand) {
//    	return rand.range(1, 2);
//    }
    
    public int getBaseHealth(Random rand) {
    	return rand.range(8, 14);
    }

    public float getHeightDeviationMax() {
    	return 0.1f;
    }
    
    public float getSpeciesBaseSize() {
    	return 1.65f;
    }
    
    public Alignment getNaturalAlign() {
    	return rand.pick(Alignment.LAWFUL_GOOD, Alignment.GOOD);
    }
    
    public boolean isGhost() {
    	return true;
    }
    
	public int getColor() {
		return 0xffffff;
	}

//    public void attackEntityWithRangedAttack(EntityLiving target, float p_82196_2_)
//    {
//        
//    }
    
//    public boolean isRangedWeapon(ItemStack stack) {
//    	return true;
//    }
    
    public float getArmRotation() {
    	return 0.1f;
    }
    
    public float getLegRotation() {
    	return 0.2f;
    }

	protected ItemStack pickItem() {
		return this.rand.chance(new ItemStack(Items.snowball), null, 5);
	}
    
//    public boolean canAmbush(EntityLiving entity) {
//    	return true;
//    }
}
