More work on end game skills

This commit is contained in:
nossr50 2023-02-18 23:44:01 -08:00
parent 12fb4a3679
commit e4470fd061
10 changed files with 57 additions and 37 deletions

View File

@ -1,29 +1,16 @@
Version 2.2.000
Updated Adventure (our text dependency) fixes some errors when using color codes in party/admin chat (thanks TheBusyBiscuit)
Added some support for negative Y values in anticipation of 1.17 world height changes (thanks t00thpick1)
(API) Many skills with RNG elements now send out a SubSkillEvent (which can be used to modify probability or cancel the results), some skills without RNG still send out this event when activated, this event is cancellable so it can be used to make a skill fail
Treasure drop rate from Shake, Fishing, Hylian, and Excavation now benefit from the Luck perk
Added a setting to chat.yml to toggle sending party or admin chat messages to console
Added 'Send_To_Console' settings to chat.yml to toggle sending party or admin chat messages to console
Added a set of "mastery" subskills meant for end game progression
Added the mastery subskill 'Mother Lode' to Mining
Added the mastery subskill 'Clean Cuts' to Woodcutting
Added the mastery subskill 'Verdant Bounty' to Herbalism
All new skills have had settings added to advanced.yml
Added /mmopower command (aliases /mmopowerlevel /powerlevel)
Added 'mcmmo.commands.mmopower' permission node
Added 'mcmmo.ability.acrobatics.mastery' permission node
Added 'mcmmo.ability.alchemy.mastery' permission node
Added 'mcmmo.ability.archery.mastery' permission node
Added 'mcmmo.ability.axes.mastery' permission node
Added 'mcmmo.ability.excavation.mastery' permission node
Added 'mcmmo.ability.fishing.mastery' permission node
Added 'mcmmo.ability.herbalism.mastery' permission node
Added 'mcmmo.ability.herbalism.verdantbounty' permission node
Added 'mcmmo.ability.mining.motherlode' permission node
Added 'mcmmo.ability.repair.mastery' permission node
Added 'mcmmo.ability.salvage.mastery' permission node
Added 'mcmmo.ability.smelting.mastery' permission node
Added 'mcmmo.ability.salvage.mastery' permission node
Added 'mcmmo.ability.swords.mastery' permission node
Added 'mcmmo.ability.taming.mastery' permission node
Added 'mcmmo.ability.unarmed.mastery' permission node
Added 'mcmmo.ability.woodcutting.cleancuts' permission node
Added 'Mining.SubSkill.MotherLode.Name' to locale
Added 'Mining.SubSkill.MotherLode.Stat' to locale
@ -31,9 +18,12 @@ Version 2.2.000
Added 'Woodcutting.SubSkill.CleanCuts.Name' to locale
Added 'Woodcutting.SubSkill.CleanCuts.Stat' to locale
Added 'Woodcutting.SubSkill.CleanCuts.Description' to locale
(Codebase) Major refactoring for how random chance was handled in the code
Added 'Herbalism.SubSkill.VerdantBounty.Name' to locale
Added 'Herbalism.SubSkill.VerdantBounty.Stat' to locale
Added 'Herbalism.SubSkill.VerdantBounty.Description' to locale
(Codebase) Major rewrite for how random chance was handled in the code
Added 'General.PowerLevel.Skill_Mastery.Enabled' to config.yml which is used to enable or disable the mastery skills (will also disable the new power level command)
Added 'General.PowerLevel.Skill_Mastery.Enabled' to config.yml which is used to enable or disable the mastery skills wholesale (will also disable the new power level command)
NOTES:
The goal of this update is to provide a small benefit to each skill and a reason to grind past the "maximum", ideally for a long while.
@ -47,12 +37,15 @@ Version 2.2.000
Mastery Skills
Mining / Mother Lode: With default settings, when players hit level 1,000 they will unlock this sub-skill, it will add a 1% chance to get triple drops while mining (this can be edited in advanced.yml), this skill maxes out at 10.0% chance at level 10,000.
This skill respects double drop settings from the config files.
Double Drops only occur if the Triple Drops fail, these two skills do not stack.
Double drops will only get checked if the Triple Drops fail for players that have Mother Lode unlocked, these two skills do not stack.
Woodcutting / Clean Cuts: With default settings, when players hit level 1,000 they will unlock this sub-skill, it will add a 1% chance to get triple drops while woodcutting or using Tree Feller (this can be edited in advanced.yml), this skill maxes out at 10.0% chance at level 10,000.
This skill respects double drop settings from the config files.
Double Drops (Harvest Lumber) will only get checked if the Triple Drops fail for players that have Clean Cuts unlocked, these two skills do not stack.
Herbalism / Verdant Bounty: With default settings, when players hit level 1,000 they will unlock this sub-skill, it will add a 1% chance to get triple drops when harvesting crops (this can be edited in advanced.yml), this skill maxes out at 10.0% chance at level 10,000.
This skill respects double drop settings from the config files.
Double Drops only occur if the Triple Drops fail, these two skills do not stack.
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.

View File

@ -35,6 +35,7 @@ public class HerbalismCommand extends SkillCommand {
private boolean canGreenThumbBlocks;
private boolean canFarmersDiet;
private boolean canDoubleDrop;
private boolean canTripleDrop;
private boolean canShroomThumb;
public HerbalismCommand() {
@ -51,6 +52,12 @@ public class HerbalismCommand extends SkillCommand {
doubleDropChanceLucky = doubleDropStrings[1];
}
if (canTripleDrop) {
String[] tripleDropStrings = ProbabilityUtil.getRNGDisplayValues(player, SubSkillType.HERBALISM_VERDANT_BOUNTY);
doubleDropChance = tripleDropStrings[0];
doubleDropChanceLucky = tripleDropStrings[1];
}
// FARMERS DIET
if (canFarmersDiet) {
farmersDietRank = RankUtils.getRank(player, SubSkillType.HERBALISM_FARMERS_DIET);

View File

@ -32,7 +32,7 @@ public class MiningCommand extends SkillCommand {
private boolean canSuperBreaker;
private boolean canDoubleDrop;
private boolean canMotherLode;
private boolean canTripleDrop;
private boolean canBlast;
private boolean canBiggerBombs;
private boolean canDemoExpert;
@ -56,7 +56,7 @@ public class MiningCommand extends SkillCommand {
}
// Mastery TRIPLE DROPS
if (canMotherLode) {
if (canTripleDrop) {
String[] masteryTripleDropStrings = ProbabilityUtil.getRNGDisplayValues(player, SubSkillType.MINING_MOTHER_LODE);
tripleDropChance = masteryTripleDropStrings[0];
tripleDropChanceLucky = masteryTripleDropStrings[1];
@ -83,7 +83,7 @@ public class MiningCommand extends SkillCommand {
canBlast = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_BLAST_MINING) && Permissions.remoteDetonation(player);
canDemoExpert = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && Permissions.demolitionsExpertise(player);
canDoubleDrop = Permissions.canUseSubSkill(player, SubSkillType.MINING_DOUBLE_DROPS);
canMotherLode = Permissions.canUseSubSkill(player, SubSkillType.MINING_MOTHER_LODE);
canTripleDrop = Permissions.canUseSubSkill(player, SubSkillType.MINING_MOTHER_LODE);
canSuperBreaker = RankUtils.hasUnlockedSubskill(player, SubSkillType.MINING_SUPER_BREAKER) && Permissions.superBreaker(player);
}
@ -112,12 +112,11 @@ public class MiningCommand extends SkillCommand {
//messages.add(LocaleLoader.getString("Mining.Effect.DropChance", doubleDropChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
}
if(canMotherLode) {
if(canTripleDrop) {
messages.add(getStatMessage(SubSkillType.MINING_MOTHER_LODE, tripleDropChance)
+ (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", tripleDropChanceLucky) : ""));
}
if (canSuperBreaker) {
messages.add(getStatMessage(SubSkillType.MINING_SUPER_BREAKER, superBreakerLength)
+ (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", superBreakerLengthEndurance) : ""));

View File

@ -38,7 +38,6 @@ public enum SubSkillType {
/* Excavation */
EXCAVATION_ARCHAEOLOGY(8),
EXCAVATION_GIGA_DRILL_BREAKER(1),
EXCAVATION_MASTERY(1),
/* Fishing */
FISHING_FISHERMANS_DIET(5),
@ -51,6 +50,7 @@ public enum SubSkillType {
/* Herbalism */
HERBALISM_DOUBLE_DROPS(1),
HERBALISM_VERDANT_BOUNTY(1),
HERBALISM_FARMERS_DIET(5),
HERBALISM_GREEN_TERRA(1),
HERBALISM_GREEN_THUMB(4),
@ -147,7 +147,7 @@ public enum SubSkillType {
/**
* !!! This relies on the immutable lists in PrimarySkillType being populated !!!
* If we add skills, those immutable lists need to be updated
* @return
* @return the parent skill of this subskill
*/
public PrimarySkillType getParentSkill() { return mcMMO.p.getSkillTools().getPrimarySkillBySubSkill(this); }

View File

@ -35,7 +35,7 @@ public class MiningManager extends SkillManager {
public static final String BUDDING_AMETHYST = "budding_amethyst";
public MiningManager(McMMOPlayer mcMMOPlayer) {
public MiningManager(@NotNull McMMOPlayer mcMMOPlayer) {
super(mcMMOPlayer, PrimarySkillType.MINING);
}

View File

@ -24,7 +24,7 @@ public class RankUtils {
*
* @param plugin plugin instance ref
* @param mcMMOPlayer target player
* @param primarySkillType
* @param primarySkillType the skill to check
* @param newLevel the new level of this skill
*/
public static void executeSkillUnlockNotifications(Plugin plugin, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, int newLevel)
@ -55,6 +55,9 @@ public class RankUtils {
}
}
/**
* Reset the interval between skill unlock notifications
*/
public static void resetUnlockDelayTimer()
{
count = 0;

View File

@ -257,6 +257,11 @@ Skills:
MaxBonusLevel:
Standard: 100
RetroMode: 1000
VerdantBounty:
ChanceMax: 15.0
MaxBonusLevel:
Standard: 1000
RetroMode: 10000
HylianLuck:
# ChanceMax: Maximum chance of Hylian Luck when on <MaxBonusLevel> or higher
@ -281,7 +286,7 @@ Skills:
MaxBonusLevel:
Standard: 1000
RetroMode: 10000
ChanceMax: 10.0
ChanceMax: 15.0
SuperBreaker:
AllowTripleDrops: true
DoubleDrops:
@ -606,9 +611,9 @@ Skills:
# Triple Drops
CleanCuts:
# ChanceMax: Maximum chance of receiving double drops (100 = 100%)
# ChanceMax: Maximum chance of receiving triple drops (100 = 100%)
# MaxBonusLevel: Level when the maximum chance of receiving double drops is reached
ChanceMax: 10.0
ChanceMax: 15.0
MaxBonusLevel:
Standard: 1000
RetroMode: 10000

View File

@ -285,8 +285,11 @@ Herbalism.SubSkill.FarmersDiet.Name=Farmer's Diet
Herbalism.SubSkill.FarmersDiet.Description=Improves hunger restored from farmed foods
Herbalism.SubSkill.FarmersDiet.Stat=Farmer's Diet: &aRank {0}
Herbalism.SubSkill.DoubleDrops.Name=Double Drops
Herbalism.SubSkill.DoubleDrops.Description=Double the normal loot
Herbalism.SubSkill.DoubleDrops.Description=Skillfully harvest double the loot
Herbalism.SubSkill.DoubleDrops.Stat=Double Drop Chance
Herbalism.SubSkill.VerdantBounty.Name=Verdant Bounty
Herbalism.SubSkill.VerdantBounty.Description=Masterfully harvest triple the loot
Herbalism.SubSkill.VerdantBounty.Stat=Triple Drop Chance
Herbalism.SubSkill.HylianLuck.Name=Hylian Luck
Herbalism.SubSkill.HylianLuck.Description=Gives a small chance of finding rare items
Herbalism.SubSkill.HylianLuck.Stat=Hylian Luck Chance
@ -311,10 +314,10 @@ Mining.SubSkill.SuperBreaker.Name=Super Breaker
Mining.SubSkill.SuperBreaker.Description=Speed+, Triple Drop Chance
Mining.SubSkill.SuperBreaker.Stat=Super Breaker Length
Mining.SubSkill.DoubleDrops.Name=Double Drops
Mining.SubSkill.DoubleDrops.Description=Double the normal loot
Mining.SubSkill.DoubleDrops.Description=Skillfully mine double the loot
Mining.SubSkill.DoubleDrops.Stat=Double Drop Chance
Mining.SubSkill.MotherLode.Name=Mother Lode
Mining.SubSkill.MotherLode.Description=Triple the normal loot
Mining.SubSkill.MotherLode.Description=Masterfully mine triple the loot
Mining.SubSkill.MotherLode.Stat=Triple Drop Chance
Mining.SubSkill.BlastMining.Name=Blast Mining
Mining.SubSkill.BlastMining.Description=Bonuses to mining with TNT

View File

@ -397,8 +397,8 @@ permissions:
mcmmo.ability.herbalism.greenthumb.all: true
mcmmo.ability.herbalism.hylianluck: true
mcmmo.ability.herbalism.shroomthumb: true
mcmmo.ability.herbalism.mastery: true
mcmmo.ability.herbalism.mastery:
mcmmo.ability.herbalism.verdantbounty: true
mcmmo.ability.herbalism.verdantbounty:
description: Allows access to end game progression for Herbalism
mcmmo.ability.herbalism.doubledrops:
description: Allows double drop chance from Herbalism

View File

@ -413,6 +413,11 @@ Herbalism:
Rank_1: 1
RetroMode:
Rank_1: 1
VerdantBounty:
Standard:
Rank_1: 100
RetroMode:
Rank_1: 1000
GreenTerra:
Standard:
Rank_1: 5
@ -688,6 +693,11 @@ Woodcutting:
Rank_1: 1
RetroMode:
Rank_1: 1
CleanCuts:
Standard:
Rank_1: 100
RetroMode:
Rank_1: 1000
KnockOnWood:
Standard:
Rank_1: 30