mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
78 lines
2.7 KiB
Java
78 lines
2.7 KiB
Java
package com.hbm.items.armor;
|
|
|
|
import java.util.List;
|
|
|
|
import com.google.common.collect.Multimap;
|
|
import com.hbm.handler.ArmorModHandler;
|
|
import com.hbm.main.MainRegistry;
|
|
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.entity.SharedMonsterAttributes;
|
|
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemArmor;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
|
|
|
public class ItemModWD40 extends ItemArmorMod {
|
|
|
|
public ItemModWD40() {
|
|
super(ArmorModHandler.extra, true, true, true, true);
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
|
|
|
|
String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW);
|
|
|
|
list.add(color + "Highly reduces damage taken by armor, +2 HP");
|
|
list.add("");
|
|
super.addInformation(itemstack, player, list, bool);
|
|
}
|
|
|
|
@Override
|
|
public void addDesc(List list, ItemStack stack, ItemStack armor) {
|
|
|
|
String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW);
|
|
|
|
list.add(color + " " + stack.getDisplayName() + " (-80% armor wear / +2 HP)");
|
|
}
|
|
|
|
@Override
|
|
public void modDamage(LivingHurtEvent event, ItemStack armor) {
|
|
|
|
if(!event.entityLiving.worldObj.isRemote && armor.getItemDamage() > 0 && event.entityLiving.getRNG().nextInt(5) != 0) {
|
|
armor.setItemDamage(armor.getItemDamage() - 1);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Multimap getModifiers(ItemStack armor) {
|
|
Multimap multimap = super.getAttributeModifiers(armor);
|
|
|
|
multimap.put(SharedMonsterAttributes.maxHealth.getAttributeUnlocalizedName(),
|
|
new AttributeModifier(ArmorModHandler.UUIDs[((ItemArmor)armor.getItem()).armorType], "NTM Armor Mod Health", 4, 0));
|
|
|
|
return multimap;
|
|
}
|
|
|
|
@Override
|
|
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
|
|
|
|
if(entity.worldObj.isRemote && entity.hurtTime > 0) {
|
|
NBTTagCompound data = new NBTTagCompound();
|
|
data.setString("type", "vanillaExt");
|
|
data.setString("mode", "reddust");
|
|
data.setDouble("posX", entity.posX + (entity.getRNG().nextDouble() - 0.5) * entity.width * 2);
|
|
data.setDouble("posY", entity.posY - entity.yOffset + entity.getRNG().nextDouble() * entity.height);
|
|
data.setDouble("posZ", entity.posZ + (entity.getRNG().nextDouble() - 0.5) * entity.width * 2);
|
|
data.setDouble("mX", 0.01);
|
|
data.setDouble("mY", 0.5);
|
|
data.setDouble("mZ", 0.8);
|
|
MainRegistry.proxy.effectNT(data);
|
|
}
|
|
}
|
|
}
|