From 0bb5f9f297ddea5627c036e22fb82f6682c445a9 Mon Sep 17 00:00:00 2001 From: NuclearW Date: Mon, 21 May 2012 09:16:58 -0400 Subject: [PATCH] Max ticks for abilities --- .../java/com/gmail/nossr50/config/Config.java | 10 ++++++++++ .../gmail/nossr50/datatypes/AbilityType.java | 17 ++++++++++++++++- .../java/com/gmail/nossr50/util/Skills.java | 3 +++ src/main/resources/config.yml | 11 ++++++++++- 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/config/Config.java b/src/main/java/com/gmail/nossr50/config/Config.java index 4e1676e66..a758f0274 100644 --- a/src/main/java/com/gmail/nossr50/config/Config.java +++ b/src/main/java/com/gmail/nossr50/config/Config.java @@ -113,6 +113,16 @@ public class Config extends ConfigLoader { public int getAbilityCooldownSkullSplitter() { return config.getInt("Abilities.Cooldowns.Skull_Splitter", 240); } public int getAbilityCooldownBlastMining() { return config.getInt("Abilities.Cooldowns.Blast_Mining", 60); } + /* Max ticks */ + public int getAbilityMaxTicksGreenTerra() { return config.getInt("Abilities.Max_Ticks.Green_Terra", 0); } + public int getAbilityMaxTicksSuperBreaker() { return config.getInt("Abilities.Max_Ticks.Super_Breaker", 0); } + public int getAbilityMaxTicksGigaDrillBreaker() { return config.getInt("Abilities.Max_Ticks.Giga_Drill_Breaker", 0); } + public int getAbilityMaxTicksTreeFeller() { return config.getInt("Abilities.Max_Ticks.Tree_Feller", 0); } + public int getAbilityMaxTicksBerserk() { return config.getInt("Abilities.Max_Ticks.Berserk", 0); } + public int getAbilityMaxTicksSerratedStrikes() { return config.getInt("Abilities.Max_Ticks.Serrated_Strikes", 0); } + public int getAbilityMaxTicksSkullSplitter() { return config.getInt("Abilities.Max_Ticks.Skull_Splitter", 0); } + public int getAbilityMaxTicksBlastMining() { return config.getInt("Abilities.Max_Ticks.Blast_Mining", 0); } + /* Thresholds */ public int getTreeFellerThreshold() { return config.getInt("Abilities.Limits.Tree_Feller_Threshold", 500); } diff --git a/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java b/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java index 2fe3f088c..e3a7e8125 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java @@ -12,6 +12,7 @@ import com.gmail.nossr50.util.Permissions; public enum AbilityType { BERSERK( Config.getInstance().getAbilityCooldownBerserk(), + Config.getInstance().getAbilityMaxTicksBerserk(), "Unarmed.Skills.Berserk.On", "Unarmed.Skills.Berserk.Off", "Unarmed.Skills.Berserk.Other.On", @@ -20,6 +21,7 @@ public enum AbilityType { SUPER_BREAKER( Config.getInstance().getAbilityCooldownSuperBreaker(), + Config.getInstance().getAbilityMaxTicksSuperBreaker(), "Mining.Skills.SuperBreaker.On", "Mining.Skills.SuperBreaker.Off", "Mining.Skills.SuperBreaker.Other.On", @@ -28,6 +30,7 @@ public enum AbilityType { GIGA_DRILL_BREAKER( Config.getInstance().getAbilityCooldownGigaDrillBreaker(), + Config.getInstance().getAbilityMaxTicksGigaDrillBreaker(), "Excavation.Skills.GigaDrillBreaker.On", "Excavation.Skills.GigaDrillBreaker.Off", "Excavation.Skills.GigaDrillBreaker.Other.On", @@ -36,6 +39,7 @@ public enum AbilityType { GREEN_TERRA( Config.getInstance().getAbilityCooldownGreenTerra(), + Config.getInstance().getAbilityMaxTicksGreenTerra(), "Herbalism.Skills.GTe.On", "Herbalism.Skills.GTe.Off", "Herbalism.Skills.GTe.Other.On", @@ -44,6 +48,7 @@ public enum AbilityType { SKULL_SPLIITER( Config.getInstance().getAbilityCooldownSkullSplitter(), + Config.getInstance().getAbilityMaxTicksSkullSplitter(), "Axes.Skills.SS.On", "Axes.Skills.SS.Off", "Axes.Skills.SS.Other.On", @@ -52,6 +57,7 @@ public enum AbilityType { TREE_FELLER( Config.getInstance().getAbilityCooldownTreeFeller(), + Config.getInstance().getAbilityMaxTicksTreeFeller(), "Woodcutting.Skills.TreeFeller.On", "Woodcutting.Skills.TreeFeller.Off", "Woodcutting.Skills.TreeFeller.Other.On", @@ -60,6 +66,7 @@ public enum AbilityType { SERRATED_STRIKES( Config.getInstance().getAbilityCooldownSerratedStrikes(), + Config.getInstance().getAbilityMaxTicksSerratedStrikes(), "Swords.Skills.SS.On", "Swords.Skills.SS.Off", "Swords.Skills.SS.Other.On", @@ -68,6 +75,7 @@ public enum AbilityType { BLAST_MINING( Config.getInstance().getAbilityCooldownBlastMining(), + Config.getInstance().getAbilityMaxTicksBlastMining(), null, null, "Mining.Blast.Other.On", @@ -75,6 +83,7 @@ public enum AbilityType { null), LEAF_BLOWER( + 0, 0, null, null, @@ -83,14 +92,16 @@ public enum AbilityType { null); private int cooldown; + private int maxTicks; private String abilityOn; private String abilityOff; private String abilityPlayer; private String abilityRefresh; private String abilityPlayerOff; - private AbilityType(int cooldown, String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) { + private AbilityType(int cooldown, int maxTicks, String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) { this.cooldown = cooldown; + this.maxTicks = maxTicks; this.abilityOn = abilityOn; this.abilityOff = abilityOff; this.abilityPlayer = abilityPlayer; @@ -122,6 +133,10 @@ public enum AbilityType { return LocaleLoader.getString(this.abilityRefresh); } + public int getMaxTicks() { + return this.maxTicks; + } + /** * Get the permissions for this ability. * diff --git a/src/main/java/com/gmail/nossr50/util/Skills.java b/src/main/java/com/gmail/nossr50/util/Skills.java index a990ca48a..65c95d630 100644 --- a/src/main/java/com/gmail/nossr50/util/Skills.java +++ b/src/main/java/com/gmail/nossr50/util/Skills.java @@ -389,6 +389,9 @@ public class Skills { } int ticks = 2 + (PP.getSkillLevel(type) / 50); + if (ability.getMaxTicks() != 0 && ticks > ability.getMaxTicks()) { + ticks = ability.getMaxTicks(); + } if (!PP.getAbilityMode(ability) && cooldownOver(PP.getSkillDATS(ability), ability.getCooldown())) { player.sendMessage(ability.getAbilityOn()); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f6ad56a5f..8fa0263a4 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -110,8 +110,17 @@ Abilities: Serrated_Strikes: 240 Tree_Feller: 240 Super_Breaker: 240 + Max_Ticks: + Blast_Mining: 0 + Giga_Drill_Breaker: 0 + Berserk: 0 + Green_Terra: 0 + Skull_Splitter: 0 + Serrated_Strikes: 0 + Tree_Feller: 0 + Super_Breaker: 0 Limits: - Tree_Feller_Threshold: 500 + Tree_Feller_Threshold: 500 Tools: Durability_Loss_Enabled: true Durability_Loss: 2