From ea43fbce7d8c78a47dd49ff167f9cd434d725221 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Fri, 14 Oct 2016 20:51:21 -0400 Subject: [PATCH] Added the Sigil of Elasticity, the Sigil of the Claw, and the Sigil of Winter's Breath. --- changelog.txt | 1 + .../WayofTime/bloodmagic/api/Constants.java | 5 +++- .../bloodmagic/item/ItemComponent.java | 6 +++++ .../item/sigil/ItemSigilBounce.java | 21 +++++++++++++++++ .../bloodmagic/item/sigil/ItemSigilClaw.java | 21 +++++++++++++++++ .../sigil/ItemSigilElementalAffinity.java | 1 - .../bloodmagic/item/sigil/ItemSigilFrost.java | 20 ++++++++++++++++ .../bloodmagic/registry/ModItems.java | 10 ++++++++ .../bloodmagic/registry/ModRecipes.java | 6 +++++ .../util/handler/event/GenericHandler.java | 17 +++++++++----- .../blockstates/item/ItemComponent.json | 15 ++++++++++++ .../blockstates/item/ItemSigilBounce.json | 22 ++++++++++++++++++ .../blockstates/item/ItemSigilClaw.json | 21 +++++++++++++++++ .../blockstates/item/ItemSigilFrost.json | 22 ++++++++++++++++++ .../assets/bloodmagic/lang/en_US.lang | 6 +++++ .../textures/items/BounceSigil_activated.png | Bin 0 -> 717 bytes .../items/BounceSigil_deactivated.png | Bin 0 -> 695 bytes .../textures/items/ClawSigil_activated.png | Bin 0 -> 676 bytes .../textures/items/ClawSigil_deactivated.png | Bin 0 -> 685 bytes .../textures/items/ReagentBounce.png | Bin 0 -> 497 bytes .../bloodmagic/textures/items/ReagentClaw.png | Bin 0 -> 628 bytes .../textures/items/ReagentFrost.png | Bin 0 -> 3622 bytes 22 files changed, 186 insertions(+), 8 deletions(-) create mode 100644 src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBounce.java create mode 100644 src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilClaw.java create mode 100644 src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilFrost.java create mode 100644 src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilBounce.json create mode 100644 src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilClaw.json create mode 100644 src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilFrost.json create mode 100644 src/main/resources/assets/bloodmagic/textures/items/BounceSigil_activated.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/BounceSigil_deactivated.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/ClawSigil_activated.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/ClawSigil_deactivated.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/ReagentBounce.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/ReagentClaw.png create mode 100644 src/main/resources/assets/bloodmagic/textures/items/ReagentFrost.png diff --git a/changelog.txt b/changelog.txt index 0e4de7f7..dbed1671 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ Version 2.1.0-66 - Added a Dig Slowdown armour downgrade called "Weakened Pick", trained by having weakness on while mining. - Added the framework for a ritual that grants downgrades (instead of the potion method). - Fixed the recipes for some of the Demon Will blocks +- Added the Sigil of Elasticity, the Sigil of the Claw, and the Sigil of Winter's Breath. ------------------------------------------------------ Version 2.1.0-65 diff --git a/src/main/java/WayofTime/bloodmagic/api/Constants.java b/src/main/java/WayofTime/bloodmagic/api/Constants.java index 6decc874..507ce821 100644 --- a/src/main/java/WayofTime/bloodmagic/api/Constants.java +++ b/src/main/java/WayofTime/bloodmagic/api/Constants.java @@ -246,7 +246,10 @@ public class Constants SIGIL_HOLDING("ItemSigilHolding"), ARMOUR_POINTS_UPGRADE("ItemLivingArmourPointsUpgrade"), DEMON_WILL_GAUGE("ItemDemonWillGauge"), - POTION_FLASK("ItemPotionFlask"), ; + POTION_FLASK("ItemPotionFlask"), + SIGIL_CLAW("ItemSigilClaw"), + SIGIL_BOUNCE("ItemSigilBounce"), + SIGIL_FROST("ItemSigilFrost"); @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 73710542..95c6dd63 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java @@ -53,6 +53,9 @@ public class ItemComponent extends Item implements IVariantProvider public static final String REAGENT_HOLDING = "reagentHolding"; public static final String CATALYST_LENGTH_1 = "mundaneLength"; public static final String CATALYST_POWER_1 = "mundanePower"; + public static final String REAGENT_CLAW = "reagentClaw"; + public static final String REAGENT_BOUNCE = "reagentBounce"; + public static final String REAGENT_FROST = "reagentFrost"; public ItemComponent() { @@ -97,6 +100,9 @@ public class ItemComponent extends Item implements IVariantProvider names.add(27, REAGENT_HOLDING); names.add(28, CATALYST_LENGTH_1); names.add(29, CATALYST_POWER_1); + names.add(30, REAGENT_CLAW); + names.add(31, REAGENT_BOUNCE); + names.add(32, REAGENT_FROST); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBounce.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBounce.java new file mode 100644 index 00000000..37492009 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBounce.java @@ -0,0 +1,21 @@ +package WayofTime.bloodmagic.item.sigil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import WayofTime.bloodmagic.registry.ModPotions; + +public class ItemSigilBounce extends ItemSigilToggleableBase +{ + public ItemSigilBounce() + { + super("bounce", 100); + } + + @Override + public void onSigilUpdate(ItemStack stack, World world, EntityPlayer player, int itemSlot, boolean isSelected) + { + player.addPotionEffect(new PotionEffect(ModPotions.bounce, 2, 0, true, false)); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilClaw.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilClaw.java new file mode 100644 index 00000000..1314ff5a --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilClaw.java @@ -0,0 +1,21 @@ +package WayofTime.bloodmagic.item.sigil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import WayofTime.bloodmagic.registry.ModPotions; + +public class ItemSigilClaw extends ItemSigilToggleableBase +{ + public ItemSigilClaw() + { + super("claw", 100); + } + + @Override + public void onSigilUpdate(ItemStack stack, World world, EntityPlayer player, int itemSlot, boolean isSelected) + { + player.addPotionEffect(new PotionEffect(ModPotions.cling, 2, 0, true, false)); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilElementalAffinity.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilElementalAffinity.java index 6fcee8fe..bf77aa98 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilElementalAffinity.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilElementalAffinity.java @@ -5,7 +5,6 @@ import net.minecraft.init.MobEffects; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; -import WayofTime.bloodmagic.api.Constants; public class ItemSigilElementalAffinity extends ItemSigilToggleableBase { diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilFrost.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilFrost.java new file mode 100644 index 00000000..9aaeb7da --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilFrost.java @@ -0,0 +1,20 @@ +package WayofTime.bloodmagic.item.sigil; + +import net.minecraft.enchantment.EnchantmentFrostWalker; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemSigilFrost extends ItemSigilToggleableBase +{ + public ItemSigilFrost() + { + super("frost", 100); + } + + @Override + public void onSigilUpdate(ItemStack stack, World world, EntityPlayer player, int itemSlot, boolean isSelected) + { + EnchantmentFrostWalker.freezeNearby(player, world, player.getPosition(), 1); + } +} diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java index f279e743..6973a278 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java @@ -51,11 +51,14 @@ import WayofTime.bloodmagic.item.routing.ItemNodeRouter; import WayofTime.bloodmagic.item.routing.ItemRouterFilter; import WayofTime.bloodmagic.item.sigil.ItemSigilAir; import WayofTime.bloodmagic.item.sigil.ItemSigilBloodLight; +import WayofTime.bloodmagic.item.sigil.ItemSigilBounce; +import WayofTime.bloodmagic.item.sigil.ItemSigilClaw; import WayofTime.bloodmagic.item.sigil.ItemSigilCompression; import WayofTime.bloodmagic.item.sigil.ItemSigilDivination; import WayofTime.bloodmagic.item.sigil.ItemSigilElementalAffinity; import WayofTime.bloodmagic.item.sigil.ItemSigilEnderSeverance; import WayofTime.bloodmagic.item.sigil.ItemSigilFastMiner; +import WayofTime.bloodmagic.item.sigil.ItemSigilFrost; import WayofTime.bloodmagic.item.sigil.ItemSigilGreenGrove; import WayofTime.bloodmagic.item.sigil.ItemSigilHaste; import WayofTime.bloodmagic.item.sigil.ItemSigilHolding; @@ -125,6 +128,9 @@ public class ModItems public static final Item SIGIL_HOLDING; public static final Item SIGIL_TELEPOSITION; public static final Item SIGIL_TRANSPOSITION; + public static final Item SIGIL_CLAW; + public static final Item SIGIL_BOUNCE; + public static final Item SIGIL_FROST; public static final Item ITEM_COMPONENT; public static final Item ITEM_DEMON_CRYSTAL; public static final Item TELEPOSITION_FOCUS; @@ -213,6 +219,10 @@ public class ModItems SIGIL_TELEPOSITION = registerItem(new ItemSigilTeleposition(), Constants.BloodMagicItem.SIGIL_TELEPOSITION.getRegName()); SIGIL_TRANSPOSITION = registerItem(new ItemSigilTransposition(), Constants.BloodMagicItem.SIGIL_TRANSPOSITION.getRegName()); + SIGIL_CLAW = registerItem(new ItemSigilClaw(), Constants.BloodMagicItem.SIGIL_CLAW.getRegName()); + SIGIL_BOUNCE = registerItem(new ItemSigilBounce(), Constants.BloodMagicItem.SIGIL_BOUNCE.getRegName()); + SIGIL_FROST = registerItem(new ItemSigilFrost(), Constants.BloodMagicItem.SIGIL_FROST.getRegName()); + ITEM_COMPONENT = registerItem(new ItemComponent(), Constants.BloodMagicItem.COMPONENT.getRegName()); ITEM_DEMON_CRYSTAL = registerItem(new ItemDemonCrystal(), Constants.BloodMagicItem.DEMON_CRYSTAL.getRegName()); TELEPOSITION_FOCUS = registerItem(new ItemTelepositionFocus(), Constants.BloodMagicItem.TELEPOSITION_FOCUS.getRegName()); diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index c8747763..271c7057 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -288,6 +288,9 @@ public class ModRecipes AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_SEVERANCE), new ItemStack(ModItems.SLATE, 1, 3), new ItemStack(ModItems.SIGIL_ENDER_SEVERANCE), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WIPArray.png")); AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_TELEPOSITION), new ItemStack(ModItems.SLATE, 1, 3), new ItemStack(ModItems.SIGIL_TELEPOSITION), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WIPArray.png")); AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_TRANSPOSITION), new ItemStack(ModItems.SLATE, 1, 3), new ItemStack(ModItems.SIGIL_TRANSPOSITION), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WIPArray.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_CLAW), new ItemStack(ModItems.SLATE, 1, 2), new ItemStack(ModItems.SIGIL_CLAW), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WIPArray.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_BOUNCE), new ItemStack(ModItems.SLATE, 1, 1), new ItemStack(ModItems.SIGIL_BOUNCE), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WIPArray.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_FROST), new ItemStack(ModItems.SLATE, 1, 1), new ItemStack(ModItems.SIGIL_FROST), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WIPArray.png")); AlchemyArrayRecipeRegistry.registerRecipe(new ItemStack(Items.ROTTEN_FLESH), new ItemStack(Items.ROTTEN_FLESH), new AlchemyArrayEffectAttractor("attractor"), new AttractorAlchemyCircleRenderer()); AlchemyArrayRecipeRegistry.registerRecipe(new ItemStack(Items.FEATHER), new ItemStack(Items.REDSTONE), new AlchemyArrayEffectMovement("movement"), new StaticAlchemyCircleRenderer(new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/MovementArray.png"))); @@ -342,6 +345,9 @@ public class ModRecipes TartaricForgeRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.REAGENT_COMPRESSION), 2000, 200, "blockIron", "blockGold", Blocks.OBSIDIAN, "cobblestone"); TartaricForgeRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.REAGENT_TELEPOSITION), 1500, 200, ModBlocks.TELEPOSER, "glowstone", "blockRedstone", "ingotGold"); TartaricForgeRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.REAGENT_TRANSPOSITION), 1500, 200, ModBlocks.TELEPOSER, "gemDiamond", Items.ENDER_PEARL, Blocks.OBSIDIAN); + TartaricForgeRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.REAGENT_CLAW), 800, 120, Items.FLINT, Items.FLINT, ItemCuttingFluid.getStack(ItemCuttingFluid.BASIC)); + TartaricForgeRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.REAGENT_BOUNCE), 200, 20, Blocks.SLIME_BLOCK, Blocks.SLIME_BLOCK, Items.LEATHER, Items.STRING); + TartaricForgeRecipeRegistry.registerRecipe(ItemComponent.getStack(ItemComponent.REAGENT_FROST), 80, 10, Blocks.ICE, Items.SNOWBALL, Items.SNOWBALL, "dustRedstone"); TartaricForgeRecipeRegistry.registerRecipe(new ItemStack(ModItems.SENTIENT_ARMOUR_GEM), 240, 150, Items.DIAMOND_CHESTPLATE, new ItemStack(ModItems.SOUL_GEM, 1, 1), Blocks.IRON_BLOCK, Blocks.OBSIDIAN); diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java index 852f62ca..57633cad 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java @@ -98,8 +98,7 @@ public class GenericHandler if (player.worldObj.isRemote) { player.motionY *= -0.9; - player.isAirBorne = true; - player.onGround = false; + player.fallDistance = 0; bounceMap.put(player, player.motionY); } else { @@ -231,11 +230,17 @@ public class GenericHandler if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; - if (player.worldObj.isRemote && player.isSneaking() && player.isPotionActive(ModPotions.cling) && Utils.isPlayerBesideSolidBlockFace(player) && !player.onGround) + if (player.isSneaking() && player.isPotionActive(ModPotions.cling) && Utils.isPlayerBesideSolidBlockFace(player) && !player.onGround) { - player.motionY = 0; - player.motionX *= 0.8; - player.motionZ *= 0.8; + if (player.worldObj.isRemote) + { + player.motionY = 0; + player.motionX *= 0.8; + player.motionZ *= 0.8; + } else + { + player.fallDistance = 0; + } } } diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json index 3366196d..eb690f3b 100644 --- a/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemComponent.json @@ -155,6 +155,21 @@ "textures": { "layer0": "bloodmagic:items/MundanePowerCatalyst" } + }, + "reagentclaw": { + "textures": { + "layer0": "bloodmagic:items/ReagentClaw" + } + }, + "reagentbounce": { + "textures": { + "layer0": "bloodmagic:items/ReagentBounce" + } + }, + "reagentfrost": { + "textures": { + "layer0": "bloodmagic:items/ReagentFrost" + } } } } diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilBounce.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilBounce.json new file mode 100644 index 00000000..d4fdbefe --- /dev/null +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilBounce.json @@ -0,0 +1,22 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "builtin/generated", + "transform": "forge:default-item" + }, + "variants": { + "active": { + "false": { + "textures": { + "layer0": "bloodmagic:items/BounceSigil_deactivated" + } + }, + "true": { + "textures": { + "layer0": "bloodmagic:items/BounceSigil_activated" + } + } + } + } +} + diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilClaw.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilClaw.json new file mode 100644 index 00000000..54f6aa1b --- /dev/null +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilClaw.json @@ -0,0 +1,21 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "builtin/generated", + "transform": "forge:default-item" + }, + "variants": { + "active": { + "false": { + "textures": { + "layer0": "bloodmagic:items/ClawSigil_deactivated" + } + }, + "true": { + "textures": { + "layer0": "bloodmagic:items/ClawSigil_activated" + } + } + } + } +} diff --git a/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilFrost.json b/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilFrost.json new file mode 100644 index 00000000..b7dcb443 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/blockstates/item/ItemSigilFrost.json @@ -0,0 +1,22 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "builtin/generated", + "transform": "forge:default-item" + }, + "variants": { + "active": { + "false": { + "textures": { + "layer0": "bloodmagic:items/IceSigil_deactivated" + } + }, + "true": { + "textures": { + "layer0": "bloodmagic:items/IceSigil_activated" + } + } + } + } +} + diff --git a/src/main/resources/assets/bloodmagic/lang/en_US.lang b/src/main/resources/assets/bloodmagic/lang/en_US.lang index ac8d4085..52432dca 100644 --- a/src/main/resources/assets/bloodmagic/lang/en_US.lang +++ b/src/main/resources/assets/bloodmagic/lang/en_US.lang @@ -84,6 +84,9 @@ item.BloodMagic.baseComponent.reagentBridge.name=Phantom Bridge Reagent item.BloodMagic.baseComponent.reagentCompression.name=Compression Reagent item.BloodMagic.baseComponent.reagentSeverance.name=Severance Reagent item.BloodMagic.baseComponent.reagentHolding.name=Holding Reagent +item.BloodMagic.baseComponent.reagentClaw.name=Claw Reagent +item.BloodMagic.baseComponent.reagentBounce.name=Elasticity Reagent +item.BloodMagic.baseComponent.reagentFrost.name=Frost Reagent item.BloodMagic.baseComponent.reagentTeleposition.name=Teleposition Reagent item.BloodMagic.baseComponent.reagentTransposition.name=Transposition Reagent @@ -133,6 +136,9 @@ item.BloodMagic.sigil.holding.name=Sigil of Holding item.BloodMagic.sigil.holding.display=&r%s: &o&n%s item.BloodMagic.sigil.teleposition.name=Teleposition Sigil item.BloodMagic.sigil.transposition.name=Transposition Sigil +item.BloodMagic.sigil.claw.name=Sigil of the Claw +item.BloodMagic.sigil.bounce.name=Sigil of Elasticity +item.BloodMagic.sigil.frost.name=Sigil of Winter's Breath item.BloodMagic.livingArmour.helmet.name=Living Helmet item.BloodMagic.livingArmour.chest.name=Living Chestplate diff --git a/src/main/resources/assets/bloodmagic/textures/items/BounceSigil_activated.png b/src/main/resources/assets/bloodmagic/textures/items/BounceSigil_activated.png new file mode 100644 index 0000000000000000000000000000000000000000..649f337b783ed14dd1c95c74aeadc914e98d2d7f GIT binary patch literal 717 zcmV;;0y6!HP)WFU8GbZ8()Nlj2>E@cM*00J>dL_t(I%dOMRYZE~j z$MNrMHk&tNY?9hk38G>_lfHod6P`r8>ZPa$4|)`=C-LITp@K;9A_xkCXF*Y_Ab1iA zX`41^D@19vR`asiolSOUJXC|R^`y^j=J1)B=lKo%V~O7v!^NT=9LQ4rwA$SZhr{G{ zW~eu8GU*ggp1u%U0;3}%I^CDz#Id8yExtzuJ^&%p#6LNM_3$vWv-4P%$+PD#MGr7G zI;wZ)`Z;_06jQNFgoHt1@Bq~tX)+f+;`tqFvJOCXqK{g=NqJ#G02sfNw%6vtqsPR; z7V&#yM9mn5iGa^H`>9Rtf~kWDA;{-*Jv}f0G|-Zg{d@P3@5{00asyv0-d#7@5sh>& zn~WroZf7&#c^+D899Ob*B}L2iSihApmEz0t@UOgH;|=PZ&I2qlg(u4 zk7vl9U&nSN{+%I0XUYI{l)q_=2Eg>I*8-q(u1w2m@n-ogm8;>OQ?O`E=8;~2QVJ<0 zhGFyq073|q(5$X}!EO6E<1^T{L$hfEV1^8uQWA|sdY)l+B_Xg(lgPynIM;?)v2BXQ zG_GusNG4f1K27TW5mp;(J?S%l4@CU#FiXo-wEBwD8dtXX{;ff+*2KJh2)4u8dab7i zU7$2SF9NM~G-8oTCDAINRH}dw2(fXd)|z-MiYvXX{{p~Bp`Za&5a26?VF=>UFiLO4 zy3ur4tW?Bbfj_Yz2oQ#WAq0U^%$3W6|5-l(-`DDx7}+i#00000NkvXXu0mjfkOVh3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/items/BounceSigil_deactivated.png b/src/main/resources/assets/bloodmagic/textures/items/BounceSigil_deactivated.png new file mode 100644 index 0000000000000000000000000000000000000000..8b3ceb944ab8454bcb18a5e0b561b2fd54363017 GIT binary patch literal 695 zcmV;o0!aOdP)WFU8GbZ8()Nlj2>E@cM*00J9HL_t(I%dL}5PZLoT zhM#+9rc=sCVW!v;(Fn33)FRQuty|r=aP7|cCtUhlT$s2v!Dz&Ug^_5Qv{0ykBtQgF zoOY(|Oxruxh1gJqm7d)>i|2g2?}2{|aXPt{&+Cb7hTZ*xUd^&Bau-}`^#IpN^J4L} zI1?~mC}?La&Ha0KSl!qnR$TxL(_}?0a?83)xx7XqVe<0TlIR0mpP$zkbK^XE_<$#i zk8#~m94Cz^PVi~y9RSjhSeA);@8Z>bD(mY4!2C^VM{S-ydybv8NN-JXq^fkXhfM7) z^v2zBid?yr!>jqdngq~5BMiAZHH~Q*Y>s@u^8%)i7Z^?2y>AQH0i- zW-DZ5a|UThZpOC}!eAp)WN>ikqz!1T{|4l;8N8ZLsazrBx|oJZ(OxEKhGh3<*&bUt zS4Ii&=Iycoi1NEMnhiRg4wsJ#Cn_Y!?#&WL3Lykx7$T+Y2LK2m=(M{WeEEuL85~Yl z2!bZQ9{^w)60J2!+wNPV2arP0?I_y$eeCii!BUEG*C92KU~qVt9p@u6^&8ac^*;BR zrwuW2Fvs@iU3C17SZi8ggCECrJkKX5XJG`6zI%N)=mAP=YeH$QlXil1dKeumN~J0Y zfe@mnKx!aKD~!(m1%SfboCb)Mq8rCZDM%$PV*Sh3b-&3*wJOd9{0UP^A*4hKfr?{R dD;2^2jGqv)-2&v_2(ADC002ovPDHLkV1jxcC~yD( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/items/ClawSigil_activated.png b/src/main/resources/assets/bloodmagic/textures/items/ClawSigil_activated.png new file mode 100644 index 0000000000000000000000000000000000000000..72a9254b33091b9ad9845155e2d103b5f85ed911 GIT binary patch literal 676 zcmV;V0$crwP)03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00Ia}L_t(I%dL~mYEw}V z$A5E@dy^)ntxdF%Qbh&Pv`zW|;@*{rwIJwDid&z+r%><#1Wkhr7owuHf<8ggq)lmE z6hTq*b@Op=de1#BjKOGJ>8$1q!|$9q|Np>0hWvV1T3j?IW>Xw|{4}gtmPPt_l4h$- za%PI>FW<;mKrWj#Ge@VmcI7f#J9`A$2OtyM^6d>xV+96>Q??YJ&yPoE($3i!(1JNJPaYd0SNeO6c20dRYVBcG@MJkP@z zL$~MRc^=@<>mLFMh{k~U;2JQ-{0T_Urf4)BilqvvWD-z>LKYx28g-yczOXV@Mg_3( z_MHH9I$b*54$$UH{o6nVd-!|+*L6`!jRF8f1QE!uUmX-eKo`ep4?1k}h3iBkk&!Wm z03|}R)dqx17ay{>yAKGl37dE#!Hw0&fT7uHjks@^FJ&_3WFU8GbZ8()Nlj2>E@cM*00I$7L_t(I%dL}5YZFlv zhM#jYxk*!MKa$!MDcA~v_RFP+h$uzsM#P=qPW)#s1aaX)R4lD%^#>$v`a#_kp;X#V zGRb6SI`>`|siD!j(zCngz;k%d`(F6RlGBgbnHe`eR$}-2UbmOcW+|U9Qg1XVjtuhV z-IAOMn4g<-Bg2C{da%ga<_^}R0AxH5t#hPlO0~L<)*kOatVj>w+Wfq`P#)#k(Pk!a9YB@c7{*&L!NxUBZ}z8`p;ch}y?JM^pfD9OIlL zY)8a#jMg6Qssm#;oibO@3`>wbcu*_|&f z?~%{tdSr9~N`!i&Ns@%jP7kuP{f$;@k3yfOe_()xJL6azQExPQ(&wEH#MI;ju*?3w z#X860y%~-U8~A>Jr!p+uy-20H-E)I3pt8O$#yOYMS%!wr;jE!j*#eOh7dj3U`tr1+ z`0T#`FgHEz0IV^j)}oY9$Y-&x6YEA0vbnV-e+B#wGsYlFp+qp&vR11J|FeDqL1^w} T(7VC)00000NkvXXu0mjfS353x literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/items/ReagentBounce.png b/src/main/resources/assets/bloodmagic/textures/items/ReagentBounce.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb11b7267f74b63ac51ef752a0b446727a1378d GIT binary patch literal 497 zcmV`03>LW0X+Z!0e(qD zK~y-)-ILEt+Hn}iUmso5k~Z=OIZK8sHX3dOg&@{o(nS=rL#Lv4=s)nfgSY($t-}r; z#@MMHH=-a96@*2!;XzhGwziROD$ZQrxu=5=jzl}g-lykzc;2t)`F!Ak|630i0@A8S z_pf0_e9@59;*dNY9jABBC0Cp_B`>suJYRe%9*;)=9MgjW5Q#)291cs<4bHx$c()Pb z!`nDIvmSus*E7n0la9~+GP$)3TBbs2KhMvVJ=GKd;Pd%JM6eAx$x@`0FOd2El^;t7tv|6| nZns;MQmF2m>@IJq>vb>Z+LMLL5B_Vo00000NkvXXu0mjfwyoCI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/bloodmagic/textures/items/ReagentClaw.png b/src/main/resources/assets/bloodmagic/textures/items/ReagentClaw.png new file mode 100644 index 0000000000000000000000000000000000000000..7343b4b04e7f7df447f749ff92e59cd85aaf3a52 GIT binary patch literal 628 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