mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-14 01:04:16 +00:00
Added the rest of the armorset effects.
This commit is contained in:
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();
|
||||
}
|
||||
}
|
||||
|
||||
+42
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
+8
-1
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
+41
-11
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
-5
@@ -18,9 +18,4 @@ public class ItemTerrasteelBoots extends ItemTerrasteelArmor {
|
||||
super(3, LibItemNames.TERRASTEEL_BOOTS);
|
||||
}
|
||||
|
||||
@Override
|
||||
int getHealthBoost() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
}
|
||||
-5
@@ -18,9 +18,4 @@ public class ItemTerrasteelChest extends ItemTerrasteelArmor {
|
||||
super(1, LibItemNames.TERRASTEEL_CHEST);
|
||||
}
|
||||
|
||||
@Override
|
||||
int getHealthBoost() {
|
||||
return 7;
|
||||
}
|
||||
|
||||
}
|
||||
+17
-3
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
-5
@@ -18,9 +18,4 @@ public class ItemTerrasteelLegs extends ItemTerrasteelArmor {
|
||||
super(2, LibItemNames.TERRASTEEL_LEGS);
|
||||
}
|
||||
|
||||
@Override
|
||||
int getHealthBoost() {
|
||||
return 6;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user