mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
89 lines
3.0 KiB
Java
89 lines
3.0 KiB
Java
package com.hbm.items.armor;
|
|
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
import com.hbm.handler.ArmorModHandler;
|
|
import com.hbm.main.MainRegistry;
|
|
import com.hbm.packet.AuxParticlePacketNT;
|
|
import com.hbm.packet.PacketDispatcher;
|
|
|
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.entity.SharedMonsterAttributes;
|
|
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
|
import net.minecraft.entity.ai.attributes.IAttributeInstance;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
|
|
public class ItemModKnife extends ItemArmorMod {
|
|
|
|
public static final UUID trigamma_UUID = UUID.fromString("86d44ca9-44f1-4ca6-bdbb-d9d33bead251");
|
|
|
|
public ItemModKnife() {
|
|
super(ArmorModHandler.extra, false, true, false, false);
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
|
|
|
list.add(EnumChatFormatting.RED + "Pain.");
|
|
list.add("");
|
|
list.add(EnumChatFormatting.RED + "Hurts, doesn't it?");
|
|
|
|
list.add("");
|
|
super.addInformation(stack, player, list, bool);
|
|
}
|
|
|
|
@Override
|
|
public void addDesc(List list, ItemStack stack, ItemStack armor) {
|
|
list.add(EnumChatFormatting.RED + " " + stack.getDisplayName());
|
|
}
|
|
|
|
@Override
|
|
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
|
|
|
|
if(!entity.worldObj.isRemote) {
|
|
|
|
if(entity.ticksExisted % 50 == 0 && entity.getMaxHealth() > 2F) {
|
|
|
|
entity.worldObj.playSoundAtEntity(entity, "hbm:entity.slicer", 1.0F, 1.0F);
|
|
|
|
NBTTagCompound nbt = new NBTTagCompound();
|
|
nbt.setString("type", "bloodvomit");
|
|
nbt.setInteger("entity", entity.getEntityId());
|
|
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25));
|
|
|
|
IAttributeInstance attributeinstance = entity.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.maxHealth);
|
|
|
|
float health = entity.getMaxHealth();
|
|
|
|
try {
|
|
attributeinstance.removeModifier(attributeinstance.getModifier(trigamma_UUID));
|
|
} catch(Exception ex) { }
|
|
|
|
attributeinstance.applyModifier(new AttributeModifier(trigamma_UUID, "digamma", -(entity.getMaxHealth() - health + 2), 0));
|
|
|
|
if(entity instanceof EntityPlayerMP) {
|
|
NBTTagCompound data = new NBTTagCompound();
|
|
data.setString("type", "properJolt");
|
|
|
|
if(entity.getMaxHealth() > 2F) {
|
|
data.setInteger("time", 10000 + entity.getRNG().nextInt(10000));
|
|
data.setInteger("maxTime", 10000);
|
|
} else {
|
|
data.setInteger("time", 0);
|
|
data.setInteger("maxTime", 0);
|
|
|
|
((EntityPlayer)entity).triggerAchievement(MainRegistry.achSomeWounds);
|
|
}
|
|
PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, 0, 0, 0), (EntityPlayerMP)entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|