Added the rest of the armorset effects.

This commit is contained in:
Lizbeth Rika committed 2015-01-29 18:20:20 +00:00
1 parent 563d378ad8
commit 8c3e0751fc
10 files changed
+134 -30

No files matched your search

@@ -4,10 +4,13 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import vazkii.botania.api.item.IPixieSpawner;
import vazkii.botania.common.entity.EntityPixie;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.equipment.armor.elementium.ItemElementiumHelm;
import baubles.common.container.InventoryBaubles;
import baubles.common.lib.PlayerHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -31,6 +34,16 @@ public class PixieHandler {
if(Math.random() < chance) {
EntityPixie pixie = new EntityPixie(player.worldObj);
pixie.setPosition(player.posX, player.posY + 2, player.posZ);
if(((ItemElementiumHelm) ModItems.elementiumHelm).hasArmorSet(player)) {
int[] potions = new int[] {
Potion.blindness.id,
Potion.wither.id,
Potion.moveSlowdown.id,
Potion.weakness.id
};
pixie.setApplyPotionEffect(new PotionEffect(potions[event.entity.worldObj.rand.nextInt(potions.length)], 40, 0));
}
float dmg = 4;
if(stack != null && stack.getItem() == ModItems.elementiumSword)
@@ -13,6 +13,7 @@ package vazkii.botania.common.entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import vazkii.botania.common.Botania;
@@ -21,6 +22,7 @@ public class EntityPixie extends EntityFlyingCreature {
EntityLivingBase summoner = null;
float damage = 0;
PotionEffect effect = null;
public EntityPixie(World world) {
super(world);
@@ -53,6 +55,10 @@ public class EntityPixie extends EntityFlyingCreature {
this.damage = damage;
setType(type);
}
public void setApplyPotionEffect(PotionEffect effect) {
this.effect = effect;
}
@Override
protected void updateEntityActionState() {
@@ -79,6 +85,8 @@ public class EntityPixie extends EntityFlyingCreature {
target.attackEntityFrom(DamageSource.causeMobDamage(summoner), damage);
}
} else target.attackEntityFrom(DamageSource.causeMobDamage(this), damage);
if(effect != null)
target.addPotionEffect(effect);
die();
}
}
@@ -1,7 +1,11 @@
package vazkii.botania.common.item.equipment.armor.elementium;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.item.IPixieSpawner;
import vazkii.botania.client.lib.LibResources;
@@ -23,5 +27,43 @@ public abstract class ItemElementiumArmor extends ItemManasteelArmor implements
public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
return par2ItemStack.getItem() == ModItems.manaResource && par2ItemStack.getItemDamage() == 7 ? true : super.getIsRepairable(par1ItemStack, par2ItemStack);
}
static ItemStack[] armorset;
public ItemStack[] getArmorSetStacks() {
if(armorset == null)
armorset = new ItemStack[] {
new ItemStack(ModItems.elementiumHelm),
new ItemStack(ModItems.elementiumChest),
new ItemStack(ModItems.elementiumLegs),
new ItemStack(ModItems.elementiumBoots)
};
return armorset;
}
public boolean hasArmorSetItem(EntityPlayer player, int i) {
ItemStack stack = player.inventory.armorInventory[3 - i];
if(stack == null)
return false;
switch(i) {
case 0: return stack.getItem() == ModItems.elementiumHelm || stack.getItem() == ModItems.elementiumHelmRevealing;
case 1: return stack.getItem() == ModItems.elementiumChest;
case 2: return stack.getItem() == ModItems.elementiumLegs;
case 3: return stack.getItem() == ModItems.elementiumBoots;
}
return false;
}
public String getArmorSetName() {
return StatCollector.translateToLocal("botania.armorset.elementium.name");
}
public void addArmorSetDescription(List<String> list) {
super.addArmorSetDescription(list);
addStringToTooltip(StatCollector.translateToLocal("botania.armorset.elementium.desc"), list);
}
}
@@ -1,9 +1,11 @@
package vazkii.botania.common.item.equipment.armor.elementium;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import vazkii.botania.api.mana.IManaDiscountArmor;
import vazkii.botania.common.lib.LibItemNames;
public class ItemElementiumHelm extends ItemElementiumArmor {
public class ItemElementiumHelm extends ItemElementiumArmor implements IManaDiscountArmor {
public ItemElementiumHelm() {
this(LibItemNames.ELEMENTIUM_HELM);
@@ -17,5 +19,10 @@ public class ItemElementiumHelm extends ItemElementiumArmor {
public float getPixieChance(ItemStack stack) {
return 0.11F;
}
@Override
public float getDiscount(ItemStack stack, int slot, EntityPlayer player) {
return hasArmorSet(player) ? 0.1F : 0F;
}
}
@@ -10,12 +10,15 @@
*/
package vazkii.botania.common.item.equipment.armor.terrasteel;
import java.util.List;
import java.util.UUID;
import net.minecraft.entity.Entity;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.common.item.ModItems;
@@ -30,17 +33,6 @@ public class ItemTerrasteelArmor extends ItemManasteelArmor {
super(type, name, BotaniaAPI.terrasteelArmorMaterial);
}
int getHealthBoost() {
return 0;
}
@Override
public Multimap getItemAttributeModifiers() {
Multimap map = HashMultimap.create();
map.put(SharedMonsterAttributes.maxHealth.getAttributeUnlocalizedName(), new AttributeModifier(new UUID(171328 /** Random number **/, armorType), "Armor modifier" + armorType, getHealthBoost(), 0));
return map;
}
@Override
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
return slot == 2 ? LibResources.MODEL_TERRASTEEL_1 : LibResources.MODEL_TERRASTEEL_0;
@@ -50,5 +42,43 @@ public class ItemTerrasteelArmor extends ItemManasteelArmor {
public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
return par2ItemStack.getItem() == ModItems.manaResource && par2ItemStack.getItemDamage() == 4 ? true : super.getIsRepairable(par1ItemStack, par2ItemStack);
}
static ItemStack[] armorset;
public ItemStack[] getArmorSetStacks() {
if(armorset == null)
armorset = new ItemStack[] {
new ItemStack(ModItems.terrasteelHelm),
new ItemStack(ModItems.terrasteelChest),
new ItemStack(ModItems.terrasteelLegs),
new ItemStack(ModItems.terrasteelBoots)
};
return armorset;
}
public boolean hasArmorSetItem(EntityPlayer player, int i) {
ItemStack stack = player.inventory.armorInventory[3 - i];
if(stack == null)
return false;
switch(i) {
case 0: return stack.getItem() == ModItems.terrasteelHelm || stack.getItem() == ModItems.terrasteelHelmRevealing;
case 1: return stack.getItem() == ModItems.terrasteelChest;
case 2: return stack.getItem() == ModItems.terrasteelLegs;
case 3: return stack.getItem() == ModItems.terrasteelBoots;
}
return false;
}
public String getArmorSetName() {
return StatCollector.translateToLocal("botania.armorset.terrasteel.name");
}
public void addArmorSetDescription(List<String> list) {
addStringToTooltip(StatCollector.translateToLocal("botania.armorset.terrasteel.desc0"), list);
addStringToTooltip(StatCollector.translateToLocal("botania.armorset.terrasteel.desc1"), list);
}
}
@@ -18,9 +18,4 @@ public class ItemTerrasteelBoots extends ItemTerrasteelArmor {
super(3, LibItemNames.TERRASTEEL_BOOTS);
}
@Override
int getHealthBoost() {
return 3;
}
}
@@ -18,9 +18,4 @@ public class ItemTerrasteelChest extends ItemTerrasteelArmor {
super(1, LibItemNames.TERRASTEEL_CHEST);
}
@Override
int getHealthBoost() {
return 7;
}
}
@@ -10,9 +10,13 @@
*/
package vazkii.botania.common.item.equipment.armor.terrasteel;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import vazkii.botania.api.mana.IManaDiscountArmor;
import vazkii.botania.common.lib.LibItemNames;
public class ItemTerrasteelHelm extends ItemTerrasteelArmor {
public class ItemTerrasteelHelm extends ItemTerrasteelArmor implements IManaDiscountArmor {
public ItemTerrasteelHelm() {
this(LibItemNames.TERRASTEEL_HELM);
@@ -23,8 +27,18 @@ public class ItemTerrasteelHelm extends ItemTerrasteelArmor {
}
@Override
int getHealthBoost() {
return 4;
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
super.onArmorTick(world, player, stack);
if(!hasArmorSet(player)) {
int food = player.getFoodStats().getFoodLevel();
if(food > 0 && food < 18 && player.shouldHeal() && player.ticksExisted % 80 == 0)
player.heal(1F);
}
}
@Override
public float getDiscount(ItemStack stack, int slot, EntityPlayer player) {
return hasArmorSet(player) ? 0.2F : 0F;
}
}
@@ -18,9 +18,4 @@ public class ItemTerrasteelLegs extends ItemTerrasteelArmor {
super(2, LibItemNames.TERRASTEEL_LEGS);
}
@Override
int getHealthBoost() {
return 6;
}
}