diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java index 9448faf..a2aa6bc 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java @@ -27,17 +27,19 @@ public class BloodStaffUpdate implements IWandRodOnUpdate { int cost; if(((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("alchemical")) - cost = 900; + cost = 9; else - cost = 1000; - + cost = 10; + for(int x = 0;x < primals.length;x++) { - if(((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]) < ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack)) + int deficit = ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack) - ((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]); + if(deficit > 0) { + deficit = Math.min(deficit, 100); if(player.capabilities.isCreativeMode) ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); - else if(SoulNetworkHandler.syphonFromNetwork(itemstack, cost) > 0) + else if(SoulNetworkHandler.syphonFromNetwork(itemstack, cost * deficit) > 0) ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); else if(syphonHealth(player)) { diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java index 2a8c629..79b7183 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java @@ -23,17 +23,19 @@ public class BloodWandUpdate implements IWandRodOnUpdate { int cost; if(((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("alchemical")) - cost = 900; + cost = 9; else - cost = 1000; + cost = 10; for(int x = 0;x < primals.length;x++) { - if(((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]) < ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack)) + int deficit = ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack) - ((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]); + if(deficit > 0) { + deficit = Math.min(deficit, 100); if(player.capabilities.isCreativeMode) ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); - else if(SoulNetworkHandler.syphonFromNetwork(itemstack, cost) > 0) + else if(SoulNetworkHandler.syphonFromNetwork(itemstack, cost * deficit) > 0) ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); else if(syphonHealth(player)) { diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java index 87ab28e..f03e502 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java @@ -1,11 +1,14 @@ package fox.spiteful.forbidden.items.wands; +import am2.api.ArsMagicaApi; +import am2.api.IExtendedProperties; import fox.spiteful.forbidden.Config; import fox.spiteful.forbidden.compat.Compat; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.wands.IWandRodOnUpdate; +import thaumcraft.common.items.wands.ItemWandCasting; public class ManaStaffUpdate implements IWandRodOnUpdate { @@ -16,30 +19,31 @@ public class ManaStaffUpdate implements IWandRodOnUpdate { { if(player.ticksExisted % 40 == 0){ - //TODO: Readd ArsMagica Support try { - /* IExtendedProperties prop = ArsMagicaApi.instance.getExtendedProperties(player); + IExtendedProperties prop = ArsMagicaApi.instance.getExtendedProperties(player); float cost; if(((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("vinteum")) - cost = 50.0F; + cost = 0.5F; else - cost = 100.0F; + cost = 1.0F; if(prop == null || prop.getCurrentMana() <= 0) return; for(int x = 0;x < primals.length;x++){ - if(((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]) < ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack)) { - if(prop.getCurrentMana() > cost) - { - prop.setCurrentMana(prop.getCurrentMana() - cost); + int deficit = ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack) - ((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]); + if(deficit > 0) { + deficit = Math.min(deficit, 100); + if(prop.getCurrentMana() > cost * deficit) + { + prop.setCurrentMana(prop.getCurrentMana() - cost * deficit); ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); } } - }*/ + } } catch(Throwable e){} } diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java index c524f93..f16a5c2 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java @@ -26,19 +26,21 @@ public class ManaWandUpdate implements IWandRodOnUpdate { float cost; if(((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("vinteum")) - cost = 80.0F; + cost = 0.8F; else - cost = 140.0F; + cost = 1.4F; if(prop == null || prop.getCurrentMana() <= 0) return; for(int x = 0;x < primals.length;x++){ - if(((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]) < ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack)) { - if(prop.getCurrentMana() > cost) + int deficit = ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack) - ((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]); + if(deficit > 0) { + deficit = Math.min(deficit, 100); + if(prop.getCurrentMana() > cost * deficit) { - prop.setCurrentMana(prop.getCurrentMana() - cost); + prop.setCurrentMana(prop.getCurrentMana() - cost * deficit); ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); } } diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java index 81af495..f7c5b95 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java @@ -1,8 +1,10 @@ package fox.spiteful.forbidden.items.wands; import fox.spiteful.forbidden.Config; +import fox.spiteful.forbidden.LogHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import org.apache.logging.log4j.Level; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.wands.IWandRodOnUpdate; import thaumcraft.common.items.wands.ItemWandCasting; @@ -23,15 +25,17 @@ public class YandereWandUpdate implements IWandRodOnUpdate { int cost; if(((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("manasteel") ||((ItemWandCasting)itemstack.getItem()).getCap(itemstack).getTag().equals("elementium")) - cost = 900; + cost = 9; else - cost = 1100; + cost = 11; for(int x = 0;x < primals.length;x++) { - if(((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]) < ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack)) + int deficit = ((ItemWandCasting)itemstack.getItem()).getMaxVis(itemstack) - ((ItemWandCasting)itemstack.getItem()).getVis(itemstack, primals[x]); + if(deficit > 0) { - if(ManaItemHandler.requestManaExact(itemstack, player, cost, true)) + deficit = Math.min(deficit, 100); + if(ManaItemHandler.requestManaExact(itemstack, player, cost * deficit, true)) ((ItemWandCasting)itemstack.getItem()).addVis(itemstack, primals[x], 1, true); } }