diff --git a/src/main/java/electroblob/wizardry/Settings.java b/src/main/java/electroblob/wizardry/Settings.java index 6f85bad5..8e78d0ee 100644 --- a/src/main/java/electroblob/wizardry/Settings.java +++ b/src/main/java/electroblob/wizardry/Settings.java @@ -359,6 +359,18 @@ public final class Settings { public double forfeitChance = 0.2; /** [Synchronised] Progression requirements for upgrading a wand to each tier. */ public int[] progressionRequirements = {1500, 3500, 6000}; + + // Integer wrappers for tier values + public Integer noviceMaxCharge = 700; + public Integer apprenticeMaxCharge = 1000; + public Integer advancedMaxCharge = 1500; + public Integer masterMaxCharge = 2500; + + public Integer noviceUpgradeLimit = 3; + public Integer apprenticeUpgradeLimit = 5; + public Integer advancedUpgradeLimit = 7; + public Integer masterUpgradeLimit = 9; + /** * [Synchronised] The maximum number of blocks a bookshelf can be from an arcane workbench or lectern to be * able to link to it. @@ -888,6 +900,72 @@ public final class Settings { progressionRequirements = property.getIntList(); propOrder.add(property.getName()); + property = config.get(DIFFICULTY_CATEGORY, "tierMaxCharges", new int[]{700, 1000, 1500, 2500}, + "Maximum mana each tier can store (novice, apprentice, advanced, master respectively)."); + property.setLanguageKey("config." + Wizardry.MODID + ".tier_max_charges"); + property.setRequiresWorldRestart(true); + //tierMaxCharges = property.getIntList(); + propOrder.add(property.getName()); + + // Individual tier configuration + property = config.get(DIFFICULTY_CATEGORY, "noviceMaxCharge", 700, + "Maximum mana a novice wand can store."); + property.setLanguageKey("config." + Wizardry.MODID + ".novice_max_charge"); + property.setRequiresWorldRestart(true); + noviceMaxCharge = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "apprenticeMaxCharge", 1000, + "Maximum mana an apprentice wand can store."); + property.setLanguageKey("config." + Wizardry.MODID + ".apprentice_max_charge"); + property.setRequiresWorldRestart(true); + apprenticeMaxCharge = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "advancedMaxCharge", 1500, + "Maximum mana an advanced wand can store."); + property.setLanguageKey("config." + Wizardry.MODID + ".advanced_max_charge"); + property.setRequiresWorldRestart(true); + advancedMaxCharge = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "masterMaxCharge", 2500, + "Maximum mana a master wand can store."); + property.setLanguageKey("config." + Wizardry.MODID + ".master_max_charge"); + property.setRequiresWorldRestart(true); + masterMaxCharge = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "noviceUpgradeLimit", 3, + "Maximum number of upgrades a novice wand can have."); + property.setLanguageKey("config." + Wizardry.MODID + ".novice_upgrade_limit"); + property.setRequiresWorldRestart(true); + noviceUpgradeLimit = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "apprenticeUpgradeLimit", 5, + "Maximum number of upgrades an apprentice wand can have."); + property.setLanguageKey("config." + Wizardry.MODID + ".apprentice_upgrade_limit"); + property.setRequiresWorldRestart(true); + apprenticeUpgradeLimit = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "advancedUpgradeLimit", 7, + "Maximum number of upgrades an advanced wand can have."); + property.setLanguageKey("config." + Wizardry.MODID + ".advanced_upgrade_limit"); + property.setRequiresWorldRestart(true); + advancedUpgradeLimit = property.getInt(); + propOrder.add(property.getName()); + + property = config.get(DIFFICULTY_CATEGORY, "masterUpgradeLimit", 9, + "Maximum number of upgrades a master wand can have."); + property.setLanguageKey("config." + Wizardry.MODID + ".master_upgrade_limit"); + property.setRequiresWorldRestart(true); + masterUpgradeLimit = property.getInt(); + 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 // scaling factor means that 0.5 is as big a change as 2.0, so whilst a slider is fine for increasing the // damage, it doesn't give fine enough control for values less than 1. @@ -1241,7 +1319,7 @@ public final class Settings { shrineRegenerationEnabled = property.getBoolean(); propOrder.add(property.getName()); - property = config.get(WORLDGEN_CATEGORY, "shrineRegenerationTime", 1, "Time in minutes for a conquered shrine to regenerate. Minimum 1 minute, maximum 1440 minutes (24 hours).", 1, 1440); + property = config.get(WORLDGEN_CATEGORY, "shrineRegenerationTime", 20, "Time in minutes for a conquered shrine to regenerate. Minimum 1 minute, maximum 1440 minutes (24 hours).", 1, 1440); property.setLanguageKey("config." + Wizardry.MODID + ".shrine_regeneration_time"); Wizardry.proxy.setToNumberSliderEntry(property); shrineRegenerationTime = property.getInt(); diff --git a/src/main/java/electroblob/wizardry/constants/Tier.java b/src/main/java/electroblob/wizardry/constants/Tier.java index c0c9051e..336eb2dc 100644 --- a/src/main/java/electroblob/wizardry/constants/Tier.java +++ b/src/main/java/electroblob/wizardry/constants/Tier.java @@ -10,10 +10,10 @@ import java.util.Random; public enum Tier { - NOVICE(700, 3, 12, new Style().setColor(TextFormatting.WHITE), "novice"), - APPRENTICE(1000, 5, 5, new Style().setColor(TextFormatting.AQUA), "apprentice"), - ADVANCED(1500, 7, 2, new Style().setColor(TextFormatting.DARK_BLUE), "advanced"), - MASTER(2500, 9, 1, new Style().setColor(TextFormatting.DARK_PURPLE), "master"); + NOVICE(Wizardry.settings.noviceMaxCharge, Wizardry.settings.noviceUpgradeLimit, 12, new Style().setColor(TextFormatting.WHITE), "novice"), + APPRENTICE(Wizardry.settings.apprenticeMaxCharge, Wizardry.settings.apprenticeUpgradeLimit, 5, new Style().setColor(TextFormatting.AQUA), "apprentice"), + ADVANCED(Wizardry.settings.advancedMaxCharge, Wizardry.settings.advancedUpgradeLimit, 2, new Style().setColor(TextFormatting.DARK_BLUE), "advanced"), + MASTER(Wizardry.settings.masterMaxCharge, Wizardry.settings.masterUpgradeLimit, 1, new Style().setColor(TextFormatting.DARK_PURPLE), "master"); /** Maximum mana a wand of this tier can store. */ public final int maxCharge; diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index a359baad..b389cd77 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -1620,6 +1620,36 @@ config.ebwizardry.forfeit_chance=Forfeit Chance config.ebwizardry.forfeit_chance.tooltip=The chance to 'misread' an undiscovered spell and trigger a forfeit instead. Setting this to 0 effectively disables the forfeit mechanic. Has no effect if discovery mode is disabled. config.ebwizardry.progression_requirements=Progression Requirements config.ebwizardry.progression_requirements.tooltip=The progression required to upgrade a wand to each tier (apprentice, advanced and master respectively). + +config.ebwizardry.tier_max_charges=Tier Maximum Charges +config.ebwizardry.tier_max_charges.tooltip=Maximum mana each tier can store (novice, apprentice, advanced, master respectively). + +config.ebwizardry.tier_upgrade_limits=Tier Upgrade Limits +config.ebwizardry.tier_upgrade_limits.tooltip=Maximum number of upgrades each tier can have (novice, apprentice, advanced, master respectively). + +config.ebwizardry.novice_max_charge=Novice Maximum Charge +config.ebwizardry.novice_max_charge.tooltip=Maximum mana a novice wand can store. + +config.ebwizardry.apprentice_max_charge=Apprentice Maximum Charge +config.ebwizardry.apprentice_max_charge.tooltip=Maximum mana an apprentice wand can store. + +config.ebwizardry.advanced_max_charge=Advanced Maximum Charge +config.ebwizardry.advanced_max_charge.tooltip=Maximum mana an advanced wand can store. + +config.ebwizardry.master_max_charge=Master Maximum Charge +config.ebwizardry.master_max_charge.tooltip=Maximum mana a master wand can store. + +config.ebwizardry.novice_upgrade_limit=Novice Upgrade Limit +config.ebwizardry.novice_upgrade_limit.tooltip=Maximum number of upgrades a novice wand can have. + +config.ebwizardry.apprentice_upgrade_limit=Apprentice Upgrade Limit +config.ebwizardry.apprentice_upgrade_limit.tooltip=Maximum number of upgrades an apprentice wand can have. + +config.ebwizardry.advanced_upgrade_limit=Advanced Upgrade Limit +config.ebwizardry.advanced_upgrade_limit.tooltip=Maximum number of upgrades an advanced wand can have. + +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.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