2023-06-26 16:12:58 +02:00

65 lines
1.5 KiB
Java

package com.hbm.entity.mob;
import com.hbm.entity.grenade.EntityGrenadeStrong;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityFBIDrone extends EntityUFOBase {
private int attackCooldown;
public EntityFBIDrone(World world) {
super(world);
}
@Override
protected void updateEntityActionState() {
super.updateEntityActionState();
if(this.courseChangeCooldown > 0) this.courseChangeCooldown--;
if(this.scanCooldown > 0) this.scanCooldown--;
if(!worldObj.isRemote) {
if(attackCooldown > 0) attackCooldown--;
if(this.target != null && attackCooldown <= 0) {
Vec3 vec = Vec3.createVectorHelper(posX - target.posX, posY - target.posY, posZ - target.posZ);
if(Math.abs(vec.xCoord) < 5 && Math.abs(vec.zCoord) < 5 && vec.yCoord > 3) {
attackCooldown = 60;
EntityGrenadeStrong grenade = new EntityGrenadeStrong(worldObj);
grenade.setPosition(posX, posY, posZ);
worldObj.spawnEntityInWorld(grenade);
}
}
}
if(this.courseChangeCooldown > 0) {
approachPosition(this.target == null ? 0.25D : 0.5D);
}
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35.0D);
}
@Override
protected int getScanRange() {
return 100;
}
@Override
protected int targetHeightOffset() {
return 7 + rand.nextInt(4);
}
@Override
protected int wanderHeightOffset() {
return 7 + rand.nextInt(4);
}
}