From 086d9f6af679527f3a5fc63bb551c080c8ee62bb Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Wed, 21 Oct 2020 22:37:53 +0100 Subject: [PATCH] A few tweaks and fixes for flamecatcher --- .../client/WizardryClientEventHandler.java | 26 +++++++++++-------- .../wizardry/item/ItemFlamecatcher.java | 6 ++--- .../ebwizardry/spells/flamecatcher.json | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java index 7f3cd6c2..9e3e8f0c 100644 --- a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java +++ b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java @@ -21,6 +21,7 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.EntityLiving; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityDispenser; import net.minecraft.util.ResourceLocation; @@ -165,21 +166,24 @@ public final class WizardryClientEventHandler { public static void onFOVUpdateEvent(FOVUpdateEvent event){ // Bow zoom. Taken directly from AbstractClientPlayer so it works exactly like vanilla. - if(event.getEntity().isHandActive() && - (event.getEntity().getActiveItemStack().getItem() instanceof ItemSpectralBow - || event.getEntity().getActiveItemStack().getItem() instanceof ItemFlamecatcher)){ + if(event.getEntity().isHandActive()){ - int maxUseTicks = event.getEntity().getItemInUseMaxCount(); + Item item = event.getEntity().getActiveItemStack().getItem(); - float maxUseSeconds = (float)maxUseTicks / 20.0F; + if(item instanceof ItemSpectralBow || item instanceof ItemFlamecatcher){ - if(maxUseSeconds > 1.0F){ - maxUseSeconds = 1.0F; - }else{ - maxUseSeconds = maxUseSeconds * maxUseSeconds; + int maxUseTicks = event.getEntity().getItemInUseMaxCount(); + + float maxUseSeconds = (float)maxUseTicks / (item instanceof ItemFlamecatcher ? ItemFlamecatcher.DRAW_TIME : 20); + + if(maxUseSeconds > 1.0F){ + maxUseSeconds = 1.0F; + }else{ + maxUseSeconds = maxUseSeconds * maxUseSeconds; + } + + event.setNewfov(event.getFov() * 1.0F - maxUseSeconds * 0.15F); } - - event.setNewfov(event.getFov() * 1.0F - maxUseSeconds * 0.15F); } } diff --git a/src/main/java/electroblob/wizardry/item/ItemFlamecatcher.java b/src/main/java/electroblob/wizardry/item/ItemFlamecatcher.java index b9d7e99b..42e44e1c 100644 --- a/src/main/java/electroblob/wizardry/item/ItemFlamecatcher.java +++ b/src/main/java/electroblob/wizardry/item/ItemFlamecatcher.java @@ -24,7 +24,7 @@ import javax.annotation.Nullable; public class ItemFlamecatcher extends ItemBow implements IConjuredItem { - private static final float DRAW_TIME = 10; + public static final float DRAW_TIME = 10; public ItemFlamecatcher(){ super(); @@ -188,8 +188,8 @@ public class ItemFlamecatcher extends ItemBow implements IConjuredItem { if(charge < 0) return; if(stack.getTagCompound() != null){ - int shotsLeft = stack.getTagCompound().getInteger(Flamecatcher.SHOTS_REMAINING_NBT_KEY); - stack.getTagCompound().setInteger(Flamecatcher.SHOTS_REMAINING_NBT_KEY, shotsLeft - 1); + int shotsLeft = stack.getTagCompound().getInteger(Flamecatcher.SHOTS_REMAINING_NBT_KEY) - 1; + stack.getTagCompound().setInteger(Flamecatcher.SHOTS_REMAINING_NBT_KEY, shotsLeft); if(shotsLeft == 0 && !world.isRemote){ stack.setItemDamage(getMaxDamage(stack) - getAnimationFrames()); } diff --git a/src/main/resources/assets/ebwizardry/spells/flamecatcher.json b/src/main/resources/assets/ebwizardry/spells/flamecatcher.json index e35c2093..4b03cd44 100644 --- a/src/main/resources/assets/ebwizardry/spells/flamecatcher.json +++ b/src/main/resources/assets/ebwizardry/spells/flamecatcher.json @@ -17,7 +17,7 @@ "chargeup": 20, "cooldown": 150, "base_properties": { - "item_lifetime": 600, + "item_lifetime": 900, "range": 40, "shot_count": 5, "damage": 16,