Browse Source

Max ticks for abilities

NuclearW 13 years ago
parent
commit
0bb5f9f297

+ 10 - 0
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 getAbilityCooldownSkullSplitter() { return config.getInt("Abilities.Cooldowns.Skull_Splitter", 240); }
     public int getAbilityCooldownBlastMining() { return config.getInt("Abilities.Cooldowns.Blast_Mining", 60); }
     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 */
     /* Thresholds */
     public int getTreeFellerThreshold() { return config.getInt("Abilities.Limits.Tree_Feller_Threshold", 500); }
     public int getTreeFellerThreshold() { return config.getInt("Abilities.Limits.Tree_Feller_Threshold", 500); }
 
 

+ 16 - 1
src/main/java/com/gmail/nossr50/datatypes/AbilityType.java

@@ -12,6 +12,7 @@ import com.gmail.nossr50.util.Permissions;
 public enum AbilityType {
 public enum AbilityType {
     BERSERK(
     BERSERK(
             Config.getInstance().getAbilityCooldownBerserk(),
             Config.getInstance().getAbilityCooldownBerserk(),
+            Config.getInstance().getAbilityMaxTicksBerserk(),
             "Unarmed.Skills.Berserk.On",
             "Unarmed.Skills.Berserk.On",
             "Unarmed.Skills.Berserk.Off",
             "Unarmed.Skills.Berserk.Off",
             "Unarmed.Skills.Berserk.Other.On",
             "Unarmed.Skills.Berserk.Other.On",
@@ -20,6 +21,7 @@ public enum AbilityType {
 
 
     SUPER_BREAKER(
     SUPER_BREAKER(
             Config.getInstance().getAbilityCooldownSuperBreaker(),
             Config.getInstance().getAbilityCooldownSuperBreaker(),
+            Config.getInstance().getAbilityMaxTicksSuperBreaker(),
             "Mining.Skills.SuperBreaker.On",
             "Mining.Skills.SuperBreaker.On",
             "Mining.Skills.SuperBreaker.Off",
             "Mining.Skills.SuperBreaker.Off",
             "Mining.Skills.SuperBreaker.Other.On",
             "Mining.Skills.SuperBreaker.Other.On",
@@ -28,6 +30,7 @@ public enum AbilityType {
 
 
     GIGA_DRILL_BREAKER(
     GIGA_DRILL_BREAKER(
             Config.getInstance().getAbilityCooldownGigaDrillBreaker(),
             Config.getInstance().getAbilityCooldownGigaDrillBreaker(),
+            Config.getInstance().getAbilityMaxTicksGigaDrillBreaker(),
             "Excavation.Skills.GigaDrillBreaker.On",
             "Excavation.Skills.GigaDrillBreaker.On",
             "Excavation.Skills.GigaDrillBreaker.Off",
             "Excavation.Skills.GigaDrillBreaker.Off",
             "Excavation.Skills.GigaDrillBreaker.Other.On",
             "Excavation.Skills.GigaDrillBreaker.Other.On",
@@ -36,6 +39,7 @@ public enum AbilityType {
 
 
     GREEN_TERRA(
     GREEN_TERRA(
             Config.getInstance().getAbilityCooldownGreenTerra(),
             Config.getInstance().getAbilityCooldownGreenTerra(),
+            Config.getInstance().getAbilityMaxTicksGreenTerra(),
             "Herbalism.Skills.GTe.On",
             "Herbalism.Skills.GTe.On",
             "Herbalism.Skills.GTe.Off",
             "Herbalism.Skills.GTe.Off",
             "Herbalism.Skills.GTe.Other.On",
             "Herbalism.Skills.GTe.Other.On",
@@ -44,6 +48,7 @@ public enum AbilityType {
 
 
     SKULL_SPLIITER(
     SKULL_SPLIITER(
             Config.getInstance().getAbilityCooldownSkullSplitter(),
             Config.getInstance().getAbilityCooldownSkullSplitter(),
+            Config.getInstance().getAbilityMaxTicksSkullSplitter(),
             "Axes.Skills.SS.On",
             "Axes.Skills.SS.On",
             "Axes.Skills.SS.Off",
             "Axes.Skills.SS.Off",
             "Axes.Skills.SS.Other.On",
             "Axes.Skills.SS.Other.On",
@@ -52,6 +57,7 @@ public enum AbilityType {
 
 
     TREE_FELLER(
     TREE_FELLER(
             Config.getInstance().getAbilityCooldownTreeFeller(),
             Config.getInstance().getAbilityCooldownTreeFeller(),
+            Config.getInstance().getAbilityMaxTicksTreeFeller(),
             "Woodcutting.Skills.TreeFeller.On",
             "Woodcutting.Skills.TreeFeller.On",
             "Woodcutting.Skills.TreeFeller.Off",
             "Woodcutting.Skills.TreeFeller.Off",
             "Woodcutting.Skills.TreeFeller.Other.On",
             "Woodcutting.Skills.TreeFeller.Other.On",
@@ -60,6 +66,7 @@ public enum AbilityType {
 
 
     SERRATED_STRIKES(
     SERRATED_STRIKES(
             Config.getInstance().getAbilityCooldownSerratedStrikes(),
             Config.getInstance().getAbilityCooldownSerratedStrikes(),
+            Config.getInstance().getAbilityMaxTicksSerratedStrikes(),
             "Swords.Skills.SS.On",
             "Swords.Skills.SS.On",
             "Swords.Skills.SS.Off",
             "Swords.Skills.SS.Off",
             "Swords.Skills.SS.Other.On",
             "Swords.Skills.SS.Other.On",
@@ -68,6 +75,7 @@ public enum AbilityType {
 
 
     BLAST_MINING(
     BLAST_MINING(
             Config.getInstance().getAbilityCooldownBlastMining(),
             Config.getInstance().getAbilityCooldownBlastMining(),
+            Config.getInstance().getAbilityMaxTicksBlastMining(),
             null,
             null,
             null,
             null,
             "Mining.Blast.Other.On",
             "Mining.Blast.Other.On",
@@ -75,6 +83,7 @@ public enum AbilityType {
             null),
             null),
 
 
     LEAF_BLOWER(
     LEAF_BLOWER(
+            0,
             0,
             0,
             null,
             null,
             null,
             null,
@@ -83,14 +92,16 @@ public enum AbilityType {
             null);
             null);
 
 
     private int cooldown;
     private int cooldown;
+    private int maxTicks;
     private String abilityOn;
     private String abilityOn;
     private String abilityOff;
     private String abilityOff;
     private String abilityPlayer;
     private String abilityPlayer;
     private String abilityRefresh;
     private String abilityRefresh;
     private String abilityPlayerOff;
     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.cooldown = cooldown;
+        this.maxTicks = maxTicks;
         this.abilityOn = abilityOn;
         this.abilityOn = abilityOn;
         this.abilityOff = abilityOff;
         this.abilityOff = abilityOff;
         this.abilityPlayer = abilityPlayer;
         this.abilityPlayer = abilityPlayer;
@@ -122,6 +133,10 @@ public enum AbilityType {
         return LocaleLoader.getString(this.abilityRefresh);
         return LocaleLoader.getString(this.abilityRefresh);
     }
     }
 
 
+    public int getMaxTicks() {
+        return this.maxTicks;
+    }
+
     /**
     /**
      * Get the permissions for this ability.
      * Get the permissions for this ability.
      *
      *

+ 3 - 0
src/main/java/com/gmail/nossr50/util/Skills.java

@@ -389,6 +389,9 @@ public class Skills {
             }
             }
 
 
             int ticks = 2 + (PP.getSkillLevel(type) / 50);
             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())) {
             if (!PP.getAbilityMode(ability) && cooldownOver(PP.getSkillDATS(ability), ability.getCooldown())) {
                 player.sendMessage(ability.getAbilityOn());
                 player.sendMessage(ability.getAbilityOn());

+ 10 - 1
src/main/resources/config.yml

@@ -110,8 +110,17 @@ Abilities:
         Serrated_Strikes: 240
         Serrated_Strikes: 240
         Tree_Feller: 240
         Tree_Feller: 240
         Super_Breaker: 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:
     Limits:
-       Tree_Feller_Threshold: 500
+        Tree_Feller_Threshold: 500
     Tools:
     Tools:
         Durability_Loss_Enabled: true
         Durability_Loss_Enabled: true
         Durability_Loss: 2
         Durability_Loss: 2