From f8859dbf56615725c6a3dd292e0b343091983709 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sun, 12 Jun 2016 15:20:48 -0400 Subject: [PATCH] Added the Draft of Angelus, which increases the max number of upgrade points for Living Armour. --- changelog.txt | 5 + .../WayofTime/bloodmagic/api/Constants.java | 3 +- .../bloodmagic/item/ItemComponent.java | 4 + .../ItemLivingArmourPointsUpgrade.java | 162 ++++++++++++++++++ .../bloodmagic/registry/ModItems.java | 5 + .../bloodmagic/registry/ModRecipes.java | 7 + .../ritual/RitualUpgradeRemove.java | 1 + .../blockstates/item/ItemComponent.json | 10 ++ .../item/ItemLivingArmourPointsUpgrade.json | 16 ++ .../assets/bloodmagic/lang/en_US.lang | 6 + .../bloodmagic/textures/items/Antiseptic.png | Bin 0 -> 362 bytes .../bloodmagic/textures/items/NeuroToxin.png | Bin 0 -> 360 bytes 12 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java create mode 100644 src/main/resources/assets/bloodmagic/blockstates/item/ItemLivingArmourPointsUpgrade.json create mode 100644 src/main/resources/assets/bloodmagic/textures/items/Antiseptic.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/NeuroToxin.png diff --git a/changelog.txt b/changelog.txt index 08eb21bf..8e922b98 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ +------------------------------------------------------ +Version 2.0.2-44 +------------------------------------------------------ +- Added the Draft of Angelus, which increases the max number of upgrade points for Living Armour. It's strawberry flavoured! + ------------------------------------------------------ Version 2.0.1-43 ------------------------------------------------------ diff --git a/src/main/java/WayofTime/bloodmagic/api/Constants.java b/src/main/java/WayofTime/bloodmagic/api/Constants.java index 05967dfc..5a903c51 100644 --- a/src/main/java/WayofTime/bloodmagic/api/Constants.java +++ b/src/main/java/WayofTime/bloodmagic/api/Constants.java @@ -229,7 +229,8 @@ public class Constants SIGIL_TRANSPOSITION("ItemSigilTransposition"), RITUAL_READER("ItemRitualReader"), SANGUINE_BOOK("ItemSanguineBook"), - SIGIL_HOLDING("ItemSigilHolding"), ; + SIGIL_HOLDING("ItemSigilHolding"), + ARMOUR_POINTS_UPGRADE("ItemLivingArmourPointsUpgrade"), ; @Getter private final String regName; diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java index 82448e8c..fd3c4ba2 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java @@ -48,6 +48,8 @@ public class ItemComponent extends Item implements IVariantProvider public static final String PLANT_OIL = "plantOil"; public static final String SULFUR = "sulfur"; public static final String SALTPETER = "saltpeter"; + public static final String NEURO_TOXIN = "neurotoxin"; + public static final String ANTISEPTIC = "antiseptic"; public ItemComponent() { @@ -87,6 +89,8 @@ public class ItemComponent extends Item implements IVariantProvider names.add(22, PLANT_OIL); names.add(23, SULFUR); names.add(24, SALTPETER); + names.add(25, NEURO_TOXIN); + names.add(26, ANTISEPTIC); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java new file mode 100644 index 00000000..bc92e70d --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/item/alchemy/ItemLivingArmourPointsUpgrade.java @@ -0,0 +1,162 @@ +package WayofTime.bloodmagic.item.alchemy; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import lombok.Getter; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.effect.EntityLightningBolt; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.init.MobEffects; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.potion.PotionUtils; +import net.minecraft.stats.StatList; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +import com.google.common.collect.Iterables; + +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.util.helper.NBTHelper; +import WayofTime.bloodmagic.client.IVariantProvider; +import WayofTime.bloodmagic.item.armour.ItemLivingArmour; +import WayofTime.bloodmagic.livingArmour.LivingArmour; +import WayofTime.bloodmagic.registry.ModItems; +import WayofTime.bloodmagic.util.helper.TextHelper; + +public class ItemLivingArmourPointsUpgrade extends Item implements IVariantProvider +{ + @Getter + private static ArrayList names = new ArrayList(); + + public static final String DRAFT_ANGELUS = "draftAngelus"; + + public ItemLivingArmourPointsUpgrade() + { + super(); + + setUnlocalizedName(Constants.Mod.MODID + ".livingPointUpgrade."); + setHasSubtypes(true); + setCreativeTab(BloodMagic.tabBloodMagic); + + buildItemList(); + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced) + { + NBTHelper.checkNBT(stack); + + tooltip.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect("tooltip.BloodMagic.livingArmourPointsUpgrade.desc", 200)))); + } + + @Override + public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) + { + EntityPlayer player = entityLiving instanceof EntityPlayer ? (EntityPlayer) entityLiving : null; + + if (player == null || !player.capabilities.isCreativeMode) + { + --stack.stackSize; + } + + if (!worldIn.isRemote) + { + player.addPotionEffect(new PotionEffect(MobEffects.WITHER, 300, 5)); + player.addPotionEffect(new PotionEffect(MobEffects.POISON, 300, 5)); + player.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 400, 1)); + + if (LivingArmour.hasFullSet(player)) + { + ItemStack chestStack = Iterables.toArray(player.getArmorInventoryList(), ItemStack.class)[2]; + LivingArmour armour = ItemLivingArmour.armourMap.get(chestStack); + if (armour != null) + { + if (armour.maxUpgradePoints < 200) + { + armour.maxUpgradePoints = 200; + ((ItemLivingArmour) chestStack.getItem()).setLivingArmour(chestStack, armour, true); + ItemLivingArmour.armourMap.put(chestStack, armour); + } + } + } + } + + return stack; + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) + { + return 32; + } + + @Override + public EnumAction getItemUseAction(ItemStack stack) + { + return EnumAction.DRINK; + } + + @Override + public ActionResult onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) + { + playerIn.setActiveHand(hand); + return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); + } + + private void buildItemList() + { + names.add(0, DRAFT_ANGELUS); + } + + @Override + public String getUnlocalizedName(ItemStack stack) + { + return super.getUnlocalizedName(stack) + names.get(stack.getItemDamage()); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item id, CreativeTabs creativeTab, List list) + { + for (int i = 0; i < names.size(); i++) + list.add(new ItemStack(id, 1, i)); + } + + public static ItemStack getStack(String name) + { + return new ItemStack(ModItems.itemPointsUpgrade, 1, names.indexOf(name)); + } + + @Override + public List> getVariants() + { + List> ret = new ArrayList>(); + for (String name : names) + ret.add(new ImmutablePair(names.indexOf(name), "type=" + name)); + return ret; + } + + public static ItemStack getStack(String key, int stackSize) + { + ItemStack stack = getStack(key); + stack.stackSize = stackSize; + + return stack; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java index c4030034..b0a3ff45 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java @@ -41,6 +41,7 @@ import WayofTime.bloodmagic.item.ItemTelepositionFocus; import WayofTime.bloodmagic.item.ItemUpgradeTome; import WayofTime.bloodmagic.item.ItemUpgradeTrainer; import WayofTime.bloodmagic.item.alchemy.ItemCuttingFluid; +import WayofTime.bloodmagic.item.alchemy.ItemLivingArmourPointsUpgrade; import WayofTime.bloodmagic.item.armour.ItemLivingArmour; import WayofTime.bloodmagic.item.armour.ItemSentientArmour; import WayofTime.bloodmagic.item.gear.ItemPackSacrifice; @@ -168,6 +169,8 @@ public class ModItems public static Item sanguineBook; + public static Item itemPointsUpgrade; + public static Item.ToolMaterial boundToolMaterial = EnumHelper.addToolMaterial("BoundToolMaterial", 4, 1, 10, 8, 50); public static Item.ToolMaterial soulToolMaterial = EnumHelper.addToolMaterial("SoulToolMaterial", 4, 520, 7, 8, 50); @@ -268,6 +271,8 @@ public class ModItems cuttingFluid = registerItem(new ItemCuttingFluid(), Constants.BloodMagicItem.CUTTING_FLUID.getRegName()); sanguineBook = registerItem(new ItemSanguineBook(), Constants.BloodMagicItem.SANGUINE_BOOK.getRegName()); + + itemPointsUpgrade = registerItem(new ItemLivingArmourPointsUpgrade(), Constants.BloodMagicItem.ARMOUR_POINTS_UPGRADE.getRegName()); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 4fb10e9f..c551c6fa 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -5,6 +5,7 @@ import java.util.List; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.item.ItemFishFood; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.util.ResourceLocation; @@ -38,6 +39,7 @@ import WayofTime.bloodmagic.compress.StorageBlockCraftingManager; import WayofTime.bloodmagic.item.ItemComponent; import WayofTime.bloodmagic.item.ItemDemonCrystal; import WayofTime.bloodmagic.item.alchemy.ItemCuttingFluid; +import WayofTime.bloodmagic.item.alchemy.ItemLivingArmourPointsUpgrade; import WayofTime.bloodmagic.item.soul.ItemSoulGem; import WayofTime.bloodmagic.recipe.alchemyTable.AlchemyTableDyeableRecipe; @@ -331,6 +333,11 @@ public class ModRecipes AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.PLANT_OIL), 100, 100, 1, Items.WHEAT, Items.WHEAT, new ItemStack(Items.DYE, 1, 15)); AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.PLANT_OIL), 100, 100, 1, Items.BEETROOT, Items.BEETROOT, Items.BEETROOT, new ItemStack(Items.DYE, 1, 15)); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.NEURO_TOXIN), 1000, 100, 2, new ItemStack(Items.FISH, 1, 3)); + AlchemyTableRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.ANTISEPTIC, 2), 1000, 200, 2, ItemComponent.getStack(ItemComponent.PLANT_OIL), "nuggetGold", Items.WHEAT, Items.SUGAR, Blocks.BROWN_MUSHROOM, Blocks.RED_MUSHROOM); + + AlchemyTableRecipeRegistry.registerRecipe(ItemLivingArmourPointsUpgrade.getStack(ItemLivingArmourPointsUpgrade.DRAFT_ANGELUS), 20000, 400, 3, ItemComponent.getStack(ItemComponent.NEURO_TOXIN), ItemComponent.getStack(ItemComponent.ANTISEPTIC), ItemComponent.getStack(ItemComponent.SAND_GOLD), Items.FERMENTED_SPIDER_EYE, new ItemStack(ModItems.bloodShard, 1, 0), Items.GHAST_TEAR); + AlchemyTableRecipeRegistry.registerRecipe(new AlchemyTableDyeableRecipe(0, 100, 0, new ItemStack(ModItems.sigilHolding))); } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualUpgradeRemove.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualUpgradeRemove.java index 88b1754b..fda701e8 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualUpgradeRemove.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualUpgradeRemove.java @@ -92,6 +92,7 @@ public class RitualUpgradeRemove extends Ritual if (removedUpgrade) { ((ItemLivingArmour) chestStack.getItem()).setLivingArmour(chestStack, armour, true); + ItemLivingArmour.armourMap.put(chestStack, armour); masterRitualStone.setActive(false); diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json index 2c5d025a..43cc0043 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json @@ -130,6 +130,16 @@ "textures": { "layer0": "bloodmagic:items/Saltpeter" } + }, + "neurotoxin": { + "textures": { + "layer0": "bloodmagic:items/NeuroToxin" + } + }, + "antiseptic": { + "textures": { + "layer0": "bloodmagic:items/Antiseptic" + } } } } diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemLivingArmourPointsUpgrade.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemLivingArmourPointsUpgrade.json new file mode 100644 index 00000000..67ac1582 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemLivingArmourPointsUpgrade.json @@ -0,0 +1,16 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "builtin/generated", + "transform": "forge:default-item" + }, + "variants": { + "type": { + "draftangelus": { + "textures": { + "layer0": "bloodmagic:items/Coagulant" + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bloodmagic/lang/en_US.lang b/src/main/resources/assets/bloodmagic/lang/en_US.lang index 96dcc6d7..a6cf1938 100644 --- a/src/main/resources/assets/bloodmagic/lang/en_US.lang +++ b/src/main/resources/assets/bloodmagic/lang/en_US.lang @@ -93,6 +93,8 @@ item.BloodMagic.baseComponent.coalSand.name=Coal Sand item.BloodMagic.baseComponent.plantOil.name=Plant Oil item.BloodMagic.baseComponent.sulfur.name=Sulfur item.BloodMagic.baseComponent.saltpeter.name=Saltpeter +item.BloodMagic.baseComponent.neurotoxin.name=Neuro Toxin +item.BloodMagic.baseComponent.antiseptic.name=Antiseptic item.BloodMagic.cuttingFluid.basicCuttingFluid.name=Basic Cutting Fluid item.BloodMagic.cuttingFluid.explosive.name=Explosive Powder @@ -169,6 +171,8 @@ item.BloodMagic.itemFilter.oreDict.name=Ore Dictionary Item Filter item.BloodMagic.experienceTome.name=Tome of Peritia item.BloodMagic.sanguineBook.name=Book of Sanguine +item.BloodMagic.livingPointUpgrade.draftAngelus.name=Draft of Angelus + # Blocks tile.BloodMagic.fluid.lifeEssence.name=Life Essence @@ -290,6 +294,8 @@ tooltip.BloodMagic.sigil.transposition.desc=Feel the power of the Force, my youn tooltip.BloodMagic.sigil.holding.desc=Sigil-ception tooltip.BloodMagic.sigil.holding.sigilInSlot=Slot %d: %s +tooltip.BloodMagic.livingArmourPointsUpgrade.desc=Increases the max points of Living Armour to %d. + tooltip.BloodMagic.bound.sword.desc=&oCulling the weak tooltip.BloodMagic.bound.pickaxe.desc=&oDestroying stone without mercy tooltip.BloodMagic.bound.axe.desc=&oDemonic deforestation diff --git a/src/main/resources/assets/bloodmagic/textures/items/Antiseptic.png b/src/main/resources/assets/bloodmagic/textures/items/Antiseptic.png new file mode 100644 index 0000000000000000000000000000000000000000..e86f47118065630baec1b80670400e4db130d89b GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPN8;_8j&NJKlAffM`E{-7zc*6Up#(ehCV}2rv3Au_9u8z|B(W=ti%{SjzPPPckoYwoUOw7;p4A1>P zXITH8?P32`zP+Teg{ZC~U)u9ov-x&Qfxj<<`J z-28aMV>9AYSFSRvyJpR-(4{mt#QHj$yZ`>G1SJQT6YR=wvV3PPyAp3Dy`YijzU=dGevjDm zX3W{TVJwr+Jhl?uCSZ1EO8b=?KW-f|Fsc76zK_vmW=?)J#|(d95HNVU`njxgN@xNA Dz=4m9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/items/NeuroToxin.png b/src/main/resources/assets/bloodmagic/textures/items/NeuroToxin.png new file mode 100644 index 0000000000000000000000000000000000000000..765cf5bd6f1bd6a0a9ce59d26f2ce971ea56d8ec GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPN8;_8b#Nwy#Rsw~-db&7Jb^JA{>7I@`}E__syddA4jK7(!tR3CEFWnk-7~Sc z{^`S)rXa7sQQj^orPD84Gi=hC98h+Fy>kD~rE9a*o-d#Bvg9vs81JRi)pjw5-xah6 znk=;Ysp2WLHLTg@eBs=ukAC$WI=6CK{$AcDhUYS&=^9;48{Z53xzE5b_x+66rBfDt zxWs>hZ{{(HJ^3rIiX~5ru;*a^?Z&fL*W^Lk3+|1qc?G?B3A2F#z~JfX=d#Wzp$Pyu Chmx8A literal 0 HcmV?d00001