From fe59a3c377ff594faeaf6d07ec6ffe2370a76524 Mon Sep 17 00:00:00 2001 From: WinDanesz <31292708+WinDanesz@users.noreply.github.com> Date: Sun, 31 Aug 2025 23:00:01 +0200 Subject: [PATCH] feat: Add configurable condenser amount multiplier - Add condenserAmountMultiplier setting with default value 1.0 --- src/main/java/electroblob/wizardry/Settings.java | 10 ++++++++++ src/main/java/electroblob/wizardry/item/ItemWand.java | 4 +++- .../wizardry/tileentity/TileEntityArcaneWorkbench.java | 4 +++- src/main/resources/assets/ebwizardry/lang/en_us.lang | 3 +++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/electroblob/wizardry/Settings.java b/src/main/java/electroblob/wizardry/Settings.java index 8e78d0ee..58707b82 100644 --- a/src/main/java/electroblob/wizardry/Settings.java +++ b/src/main/java/electroblob/wizardry/Settings.java @@ -370,6 +370,9 @@ public final class Settings { public Integer apprenticeUpgradeLimit = 5; public Integer advancedUpgradeLimit = 7; public Integer masterUpgradeLimit = 9; + + /** [Synchronised] Multiplier for condenser upgrade mana regeneration amount */ + public double condenserAmountMultiplier = 1.0; /** * [Synchronised] The maximum number of blocks a bookshelf can be from an arcane workbench or lectern to be @@ -964,6 +967,13 @@ public final class Settings { masterUpgradeLimit = property.getInt(); propOrder.add(property.getName()); + property = config.get(DIFFICULTY_CATEGORY, "condenserAmountMultiplier", 1.0, + "Multiplier for condenser upgrade mana regeneration amount. Higher values make condensers more effective."); + property.setLanguageKey("config." + Wizardry.MODID + ".condenser_amount_multiplier"); + property.setRequiresWorldRestart(true); + condenserAmountMultiplier = property.getDouble(); + propOrder.add(property.getName()); + // These two aren't sliders because using a slider makes it difficult to fine-tune the numbers; the nature of a diff --git a/src/main/java/electroblob/wizardry/item/ItemWand.java b/src/main/java/electroblob/wizardry/item/ItemWand.java index b95bdff1..59743223 100644 --- a/src/main/java/electroblob/wizardry/item/ItemWand.java +++ b/src/main/java/electroblob/wizardry/item/ItemWand.java @@ -241,7 +241,9 @@ public class ItemWand extends Item implements IWorkbenchItem, ISpellCastingItem, // Decrements wand damage (increases mana) every 1.5 seconds if it has a condenser upgrade if(!world.isRemote && !this.isManaFull(stack) && world.getTotalWorldTime() % Constants.CONDENSER_TICK_INTERVAL == 0){ // If the upgrade level is 0, this does nothing anyway. - this.rechargeMana(stack, WandHelper.getUpgradeLevel(stack, WizardryItems.condenser_upgrade)); + int baseAmount = WandHelper.getUpgradeLevel(stack, WizardryItems.condenser_upgrade); + int amount = (int)(baseAmount * Wizardry.settings.condenserAmountMultiplier); + this.rechargeMana(stack, amount); } } diff --git a/src/main/java/electroblob/wizardry/tileentity/TileEntityArcaneWorkbench.java b/src/main/java/electroblob/wizardry/tileentity/TileEntityArcaneWorkbench.java index 841728d2..c9d31def 100644 --- a/src/main/java/electroblob/wizardry/tileentity/TileEntityArcaneWorkbench.java +++ b/src/main/java/electroblob/wizardry/tileentity/TileEntityArcaneWorkbench.java @@ -67,7 +67,9 @@ public class TileEntityArcaneWorkbench extends TileEntity implements IInventory, if(stack.getItem() instanceof IManaStoringItem && !this.world.isRemote && !((IManaStoringItem)stack.getItem()).isManaFull(stack) && this.world.getTotalWorldTime() % electroblob.wizardry.constants.Constants.CONDENSER_TICK_INTERVAL == 0){ // If the upgrade level is 0, this does nothing anyway. - ((IManaStoringItem)stack.getItem()).rechargeMana(stack, WandHelper.getUpgradeLevel(stack, WizardryItems.condenser_upgrade)); + int baseAmount = WandHelper.getUpgradeLevel(stack, WizardryItems.condenser_upgrade); + int amount = (int)(baseAmount * Wizardry.settings.condenserAmountMultiplier); + ((IManaStoringItem)stack.getItem()).rechargeMana(stack, amount); } // The server doesn't care what these are, and there's no need for them to be synced or saved. diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index b389cd77..165eadf1 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -1650,6 +1650,9 @@ config.ebwizardry.advanced_upgrade_limit.tooltip=Maximum number of upgrades an a config.ebwizardry.master_upgrade_limit=Master Upgrade Limit config.ebwizardry.master_upgrade_limit.tooltip=Maximum number of upgrades a master wand can have. + +config.ebwizardry.condenser_amount_multiplier=Condenser Amount Multiplier +config.ebwizardry.condenser_amount_multiplier.tooltip=Multiplier for condenser upgrade mana regeneration amount. Higher values make condensers more effective. config.ebwizardry.player_damage_scaling=Player Damage Scaling Factor config.ebwizardry.player_damage_scaling.tooltip=Global damage scaling factor for the damage dealt by players casting spells, relative to 1. config.ebwizardry.npc_damage_scaling=NPC Damage Scaling Factor