diff --git a/Changelog.txt b/Changelog.txt index b771abfc4..185aaea35 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -6,14 +6,13 @@ Version 2.1.175 NOTES: Most skills have a mastery sub-skill, this mastery subskill provides a small benefit that scales to level 10,000 (or 1,000 for standard) and does not have ranks (other than the initial rank to unlock it) - Mastery skills unlock at level 1000 for RetroMode (the default setting), and 100 for Standard + Mastery skills unlock at level 1000 for RetroMode (the default setting), and 100 for Standard, you can edit this via skillranks.yml Mastery skills are meant to provide an "end-game" to skills, a reason to continue leveling a skill past its "max". This system is brand new, it is entirely possible I will completely change, remove, or add more mastery skills in the future. New Power Level Command This power level command gives you a view of all your current masteries, it also provides a summary of your power level. - Version 2.1.174 Some legacy color codes in our locale file were swapped to &-code equivalents (thanks ViaSnake) Updated hu_HU locale (thanks andris155) diff --git a/src/main/java/com/gmail/nossr50/commands/skills/PowerLevelCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/PowerLevelCommand.java index a418b4b09..d15dd364a 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/PowerLevelCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/PowerLevelCommand.java @@ -7,12 +7,14 @@ import co.aikar.commands.annotation.CommandPermission; import co.aikar.commands.annotation.Conditions; import co.aikar.commands.annotation.Default; import com.gmail.nossr50.commands.CommandManager; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @CommandPermission("mcmmo.commands.mmopower") -@CommandAlias("mmopowerlevel|powerlevel") //Kept for historical reasons +@CommandAlias("mmopower|mmopowerlevel|powerlevel") public class PowerLevelCommand extends BaseCommand { private final @NotNull mcMMO pluginRef; @@ -25,7 +27,9 @@ public class PowerLevelCommand extends BaseCommand { public void processCommand(String[] args) { BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer(); Player player = bukkitCommandIssuer.getPlayer(); + McMMOPlayer mmoPlayer = UserManager.getPlayer(player); //Should never be null at this point because its caught in an ACF validation //TODO: impl + mmoPlayer.getPlayer().sendMessage("Your power level is: "+mmoPlayer.getPowerLevel()); //This is not gonna stay, just to show that the command executes in debug } -} \ No newline at end of file +} diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java index 0673db147..07135cc9b 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java @@ -35,35 +35,35 @@ import java.util.List; public enum PrimarySkillType { ACROBATICS(AcrobaticsManager.class, Color.WHITE, - ImmutableList.of(SubSkillType.ACROBATICS_DODGE, SubSkillType.ACROBATICS_ROLL)), + ImmutableList.of(SubSkillType.ACROBATICS_MASTERY, SubSkillType.ACROBATICS_DODGE, SubSkillType.ACROBATICS_ROLL)), ALCHEMY(AlchemyManager.class, Color.FUCHSIA, - ImmutableList.of(SubSkillType.ALCHEMY_CATALYSIS, SubSkillType.ALCHEMY_CONCOCTIONS)), + ImmutableList.of(SubSkillType.ALCHEMY_MASTERY, SubSkillType.ALCHEMY_CATALYSIS, SubSkillType.ALCHEMY_CONCOCTIONS)), ARCHERY(ArcheryManager.class, Color.MAROON, - ImmutableList.of(SubSkillType.ARCHERY_DAZE, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK, SubSkillType.ARCHERY_ARROW_RETRIEVAL, SubSkillType.ARCHERY_SKILL_SHOT)), + ImmutableList.of(SubSkillType.ARCHERY_MASTERY, SubSkillType.ARCHERY_DAZE, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK, SubSkillType.ARCHERY_ARROW_RETRIEVAL, SubSkillType.ARCHERY_SKILL_SHOT)), AXES(AxesManager.class, Color.AQUA, SuperAbilityType.SKULL_SPLITTER, ToolType.AXE, - ImmutableList.of(SubSkillType.AXES_SKULL_SPLITTER, SubSkillType.AXES_AXES_LIMIT_BREAK, SubSkillType.AXES_ARMOR_IMPACT, SubSkillType.AXES_AXE_MASTERY, SubSkillType.AXES_CRITICAL_STRIKES, SubSkillType.AXES_GREATER_IMPACT)), + ImmutableList.of(SubSkillType.AXES_MASTERY, SubSkillType.AXES_SKULL_SPLITTER, SubSkillType.AXES_AXES_LIMIT_BREAK, SubSkillType.AXES_ARMOR_IMPACT, SubSkillType.AXES_AXE_MASTERY, SubSkillType.AXES_CRITICAL_STRIKES, SubSkillType.AXES_GREATER_IMPACT)), EXCAVATION(ExcavationManager.class, Color.fromRGB(139, 69, 19), SuperAbilityType.GIGA_DRILL_BREAKER, ToolType.SHOVEL, - ImmutableList.of(SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER, SubSkillType.EXCAVATION_ARCHAEOLOGY)), + ImmutableList.of(SubSkillType.EXCAVATION_MASTERY, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER, SubSkillType.EXCAVATION_ARCHAEOLOGY)), FISHING(FishingManager.class, Color.NAVY, - ImmutableList.of(SubSkillType.FISHING_FISHERMANS_DIET, SubSkillType.FISHING_TREASURE_HUNTER, SubSkillType.FISHING_ICE_FISHING, SubSkillType.FISHING_MAGIC_HUNTER, SubSkillType.FISHING_MASTER_ANGLER, SubSkillType.FISHING_SHAKE)), + ImmutableList.of(SubSkillType.FISHING_MASTERY, SubSkillType.FISHING_FISHERMANS_DIET, SubSkillType.FISHING_TREASURE_HUNTER, SubSkillType.FISHING_ICE_FISHING, SubSkillType.FISHING_MAGIC_HUNTER, SubSkillType.FISHING_MASTER_ANGLER, SubSkillType.FISHING_SHAKE)), HERBALISM(HerbalismManager.class, Color.GREEN, SuperAbilityType.GREEN_TERRA, ToolType.HOE, - ImmutableList.of(SubSkillType.HERBALISM_GREEN_TERRA, SubSkillType.HERBALISM_FARMERS_DIET, SubSkillType.HERBALISM_GREEN_THUMB, SubSkillType.HERBALISM_DOUBLE_DROPS, SubSkillType.HERBALISM_HYLIAN_LUCK, SubSkillType.HERBALISM_SHROOM_THUMB)), + ImmutableList.of(SubSkillType.HERBALISM_MASTERY, SubSkillType.HERBALISM_GREEN_TERRA, SubSkillType.HERBALISM_FARMERS_DIET, SubSkillType.HERBALISM_GREEN_THUMB, SubSkillType.HERBALISM_DOUBLE_DROPS, SubSkillType.HERBALISM_HYLIAN_LUCK, SubSkillType.HERBALISM_SHROOM_THUMB)), MINING(MiningManager.class, Color.GRAY, SuperAbilityType.SUPER_BREAKER, ToolType.PICKAXE, - ImmutableList.of(SubSkillType.MINING_SUPER_BREAKER, SubSkillType.MINING_DEMOLITIONS_EXPERTISE, SubSkillType.MINING_BIGGER_BOMBS, SubSkillType.MINING_BLAST_MINING, SubSkillType.MINING_DOUBLE_DROPS)), + ImmutableList.of(SubSkillType.MINING_MASTERY, SubSkillType.MINING_SUPER_BREAKER, SubSkillType.MINING_DEMOLITIONS_EXPERTISE, SubSkillType.MINING_BIGGER_BOMBS, SubSkillType.MINING_BLAST_MINING, SubSkillType.MINING_DOUBLE_DROPS)), REPAIR(RepairManager.class, Color.SILVER, - ImmutableList.of(SubSkillType.REPAIR_ARCANE_FORGING, SubSkillType.REPAIR_REPAIR_MASTERY, SubSkillType.REPAIR_SUPER_REPAIR)), + ImmutableList.of(SubSkillType.REPAIR_MASTERY, SubSkillType.REPAIR_ARCANE_FORGING, SubSkillType.REPAIR_REPAIR_MASTERY, SubSkillType.REPAIR_SUPER_REPAIR)), SALVAGE(SalvageManager.class, Color.ORANGE, ImmutableList.of(SubSkillType.SALVAGE_SCRAP_COLLECTOR, SubSkillType.SALVAGE_ARCANE_SALVAGE)), SMELTING(SmeltingManager.class, Color.YELLOW, ImmutableList.of(SubSkillType.SMELTING_UNDERSTANDING_THE_ART, /*SubSkillType.SMELTING_FLUX_MINING,*/ SubSkillType.SMELTING_FUEL_EFFICIENCY, SubSkillType.SMELTING_SECOND_SMELT)), SWORDS(SwordsManager.class, Color.fromRGB(178, 34, 34), SuperAbilityType.SERRATED_STRIKES, ToolType.SWORD, - ImmutableList.of(SubSkillType.SWORDS_SERRATED_STRIKES, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, SubSkillType.SWORDS_STAB, SubSkillType.SWORDS_RUPTURE, SubSkillType.SWORDS_COUNTER_ATTACK)), + ImmutableList.of(SubSkillType.SWORDS_MASTERY, SubSkillType.SWORDS_SERRATED_STRIKES, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, SubSkillType.SWORDS_STAB, SubSkillType.SWORDS_RUPTURE, SubSkillType.SWORDS_COUNTER_ATTACK)), TAMING(TamingManager.class, Color.PURPLE, - ImmutableList.of(SubSkillType.TAMING_BEAST_LORE, SubSkillType.TAMING_CALL_OF_THE_WILD, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE, SubSkillType.TAMING_FAST_FOOD_SERVICE, SubSkillType.TAMING_GORE, SubSkillType.TAMING_HOLY_HOUND, SubSkillType.TAMING_SHARPENED_CLAWS, SubSkillType.TAMING_SHOCK_PROOF, SubSkillType.TAMING_THICK_FUR, SubSkillType.TAMING_PUMMEL)), + ImmutableList.of(SubSkillType.TAMING_MASTERY, SubSkillType.TAMING_BEAST_LORE, SubSkillType.TAMING_CALL_OF_THE_WILD, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE, SubSkillType.TAMING_FAST_FOOD_SERVICE, SubSkillType.TAMING_GORE, SubSkillType.TAMING_HOLY_HOUND, SubSkillType.TAMING_SHARPENED_CLAWS, SubSkillType.TAMING_SHOCK_PROOF, SubSkillType.TAMING_THICK_FUR, SubSkillType.TAMING_PUMMEL)), UNARMED(UnarmedManager.class, Color.BLACK, SuperAbilityType.BERSERK, ToolType.FISTS, - ImmutableList.of(SubSkillType.UNARMED_BERSERK, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, SubSkillType.UNARMED_BLOCK_CRACKER, SubSkillType.UNARMED_ARROW_DEFLECT, SubSkillType.UNARMED_DISARM, SubSkillType.UNARMED_STEEL_ARM_STYLE, SubSkillType.UNARMED_IRON_GRIP)), + ImmutableList.of(SubSkillType.UNARMED_MASTERY, SubSkillType.UNARMED_BERSERK, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, SubSkillType.UNARMED_BLOCK_CRACKER, SubSkillType.UNARMED_ARROW_DEFLECT, SubSkillType.UNARMED_DISARM, SubSkillType.UNARMED_STEEL_ARM_STYLE, SubSkillType.UNARMED_IRON_GRIP)), WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, SuperAbilityType.TREE_FELLER, ToolType.AXE, - ImmutableList.of(SubSkillType.WOODCUTTING_LEAF_BLOWER, SubSkillType.WOODCUTTING_TREE_FELLER, SubSkillType.WOODCUTTING_HARVEST_LUMBER, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)); + ImmutableList.of(SubSkillType.WOODCUTTING_MASTERY, SubSkillType.WOODCUTTING_LEAF_BLOWER, SubSkillType.WOODCUTTING_TREE_FELLER, SubSkillType.WOODCUTTING_HARVEST_LUMBER, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)); private final Class managerClass; private final Color skillColor; diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java index 823f6b664..41b66a478 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java @@ -119,9 +119,7 @@ public enum SubSkillType { /* WOODCUTTING_NATURES_BOUNTY(3), WOODCUTTING_SPLINTER(3),*/ WOODCUTTING_TREE_FELLER(1), - WOODCUTTING_MASTERY(1), - - POWER_LEVEL_MASTERY(1); + WOODCUTTING_MASTERY(1); private final int numRanks; //TODO: SuperAbilityType should also contain flags for active by default? Not sure if it should work that way. diff --git a/src/main/resources/skillranks.yml b/src/main/resources/skillranks.yml index 6e68929a0..d07377fa1 100644 --- a/src/main/resources/skillranks.yml +++ b/src/main/resources/skillranks.yml @@ -6,6 +6,11 @@ # Retro Mode has 10x faster leveling and 10x higher skill requirements, if you do the math you can see its the same as Standard and only cosmetic!. ### Alchemy: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 Catalysis: Standard: Rank_1: 0 @@ -31,6 +36,11 @@ Alchemy: Rank_7: 900 Rank_8: 1000 Archery: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 ArcheryLimitBreak: Standard: Rank_1: 10 @@ -103,12 +113,22 @@ Archery: Rank_19: 950 Rank_20: 1000 Acrobatics: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 Dodge: Standard: Rank_1: 1 RetroMode: Rank_1: 1 Axes: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 AxesLimitBreak: Standard: Rank_1: 10 @@ -202,6 +222,11 @@ Axes: Rank_3: 150 Rank_4: 200 Taming: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 BeastLore: Standard: Rank_1: 1 @@ -253,6 +278,11 @@ Taming: RetroMode: Rank_1: 750 Smelting: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 FuelEfficiency: Standard: Rank_1: 10 @@ -282,6 +312,11 @@ Smelting: Rank_7: 850 Rank_8: 1000 Salvage: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 ScrapCollector: Standard: Rank_1: 1 @@ -321,6 +356,11 @@ Salvage: Rank_7: 850 Rank_8: 1000 Mining: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 DoubleDrops: Standard: Rank_1: 1 @@ -363,6 +403,11 @@ Mining: Rank_7: 850 Rank_8: 1000 Herbalism: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 DoubleDrops: Standard: Rank_1: 1 @@ -398,6 +443,11 @@ Herbalism: Rank_4: 800 Rank_5: 1000 Fishing: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 MagicHunter: Standard: Rank_1: 20 @@ -465,6 +515,11 @@ Fishing: Rank_7: 850 Rank_8: 1000 Swords: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 SwordsLimitBreak: Standard: Rank_1: 10 @@ -517,6 +572,11 @@ Swords: RetroMode: Rank_1: 50 Unarmed: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 UnarmedLimitBreak: Standard: Rank_1: 10 @@ -605,6 +665,11 @@ Unarmed: Rank_20: 1000 Woodcutting: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 TreeFeller: Standard: Rank_1: 5 @@ -640,6 +705,11 @@ Woodcutting: Rank_2: 350 Rank_3: 650 Excavation: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 GigaDrillBreaker: Standard: Rank_1: 5 @@ -665,6 +735,11 @@ Excavation: Rank_7: 850 Rank_8: 1000 Repair: + Mastery: + Standard: + Rank_1: 100 + RetroMode: + Rank_1: 1000 RepairMastery: Standard: Rank_1: 1