This commit is contained in:
nossr50 2019-07-08 07:57:07 -07:00
parent 732e29f0a5
commit 36932e397d
7 changed files with 40 additions and 18 deletions

View File

@ -1,8 +1,12 @@
Version 2.1.96 Version 2.1.96
Added the setting 'Skills.General.LimitBreak.AllowPVE' to advanced.yml to allow Limit Break damage bonus to apply in PVE again, defaults to false
Updated Limit Break locale strings
Fixed a few more places where 'Archaeology' was misspelled in the locale
Added the setting 'ExploitFix.PistonCheating' to experience.yml at the request of a user Added the setting 'ExploitFix.PistonCheating' to experience.yml at the request of a user
Added a missing 's' to Nether_Bricks (thanks Sikatsu) in experience.yml Added a missing 's' to Nether_Bricks (thanks Sikatsu) in experience.yml
NOTES: NOTES:
The Skill Tooltips are a bit limited right now, in the future they will be more flexible. In order to reflect that Limit Break doesn't always work in PVE (now up to server settings) I added a crappy note to its hover window tip. I'll be fixing this in the future.
You shouldn't need to update you config entry for Nether_Bricks, I believe that file updates automatically (the old config system is a bit janky, some stuff updates, some other stuff doesn't.) You shouldn't need to update you config entry for Nether_Bricks, I believe that file updates automatically (the old config system is a bit janky, some stuff updates, some other stuff doesn't.)
PistonCheating prevents blocks from being marked "natural" once they've been moved, we've never had an option for this before. PistonCheating prevents blocks from being marked "natural" once they've been moved, we've never had an option for this before.
A discord user requested it, its a strange request but I added it anyways. A discord user requested it, its a strange request but I added it anyways.

View File

@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.nossr50.mcMMO</groupId> <groupId>com.gmail.nossr50.mcMMO</groupId>
<artifactId>mcMMO</artifactId> <artifactId>mcMMO</artifactId>
<version>2.1.96-SNAPSHOT</version> <version>2.1.96</version>
<name>mcMMO</name> <name>mcMMO</name>
<url>https://github.com/mcMMO-Dev/mcMMO</url> <url>https://github.com/mcMMO-Dev/mcMMO</url>
<scm> <scm>

View File

@ -274,6 +274,14 @@ public abstract class SkillCommand implements TabExecutor {
} }
} }
protected String getLimitBreakDescriptionParameter() {
if(AdvancedConfig.getInstance().canApplyLimitBreakPVE()) {
return "(PVP/PVE)";
} else {
return "(PVP)";
}
}
protected abstract void dataCalculations(Player player, float skillValue); protected abstract void dataCalculations(Player player, float skillValue);
protected abstract void permissionsCheck(Player player); protected abstract void permissionsCheck(Player player);

View File

@ -636,6 +636,8 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
protected void loadKeys() {} protected void loadKeys() {}
/* GENERAL */ /* GENERAL */
public boolean canApplyLimitBreakPVE() { return config.getBoolean("Skills.General.LimitBreak.AllowPVE", false); }
public int getStartingLevel() { return config.getInt("Skills.General.StartingLevel", 1); } public int getStartingLevel() { return config.getInt("Skills.General.StartingLevel", 1); }
public boolean allowPlayerTips() { public boolean allowPlayerTips() {

View File

@ -1,5 +1,6 @@
package com.gmail.nossr50.util.skills; package com.gmail.nossr50.util.skills;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.experience.XPGainReason; import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType; import com.gmail.nossr50.datatypes.interactions.NotificationType;
@ -76,7 +77,7 @@ public final class CombatUtils {
if(canUseLimitBreak(player, target, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) if(canUseLimitBreak(player, target, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK))
{ {
finalDamage+=getLimitBreakDamage(player, (Player) target, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK); finalDamage+=getLimitBreakDamage(player, target, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK);
} }
applyScaledModifiers(initialDamage, finalDamage, event); applyScaledModifiers(initialDamage, finalDamage, event);
@ -120,7 +121,7 @@ public final class CombatUtils {
if(canUseLimitBreak(player, target, SubSkillType.AXES_AXES_LIMIT_BREAK)) if(canUseLimitBreak(player, target, SubSkillType.AXES_AXES_LIMIT_BREAK))
{ {
finalDamage+=getLimitBreakDamage(player, (Player) target, SubSkillType.AXES_AXES_LIMIT_BREAK); finalDamage+=getLimitBreakDamage(player, target, SubSkillType.AXES_AXES_LIMIT_BREAK);
} }
applyScaledModifiers(initialDamage, finalDamage, event); applyScaledModifiers(initialDamage, finalDamage, event);
@ -159,7 +160,7 @@ public final class CombatUtils {
if(canUseLimitBreak(player, target, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) if(canUseLimitBreak(player, target, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK))
{ {
finalDamage+=getLimitBreakDamage(player, (Player) target, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK); finalDamage+=getLimitBreakDamage(player, target, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK);
} }
} }
@ -227,7 +228,7 @@ public final class CombatUtils {
if(canUseLimitBreak(player, target, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK)) if(canUseLimitBreak(player, target, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK))
{ {
finalDamage+=getLimitBreakDamage(player, (Player) target, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK); finalDamage+=getLimitBreakDamage(player, target, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK);
} }
double distanceMultiplier = archeryManager.distanceXpBonusMultiplier(target, arrow); double distanceMultiplier = archeryManager.distanceXpBonusMultiplier(target, arrow);
@ -383,8 +384,13 @@ public final class CombatUtils {
} }
} }
public static int getLimitBreakDamage(Player player, Player defender, SubSkillType subSkillType) { public static int getLimitBreakDamage(Player player, LivingEntity defender, SubSkillType subSkillType) {
return getLimitBreakDamageAgainstQuality(player, subSkillType, getArmorQualityLevel(defender)); if(defender instanceof Player) {
Player playerDefender = (Player) defender;
return getLimitBreakDamageAgainstQuality(player, subSkillType, getArmorQualityLevel(playerDefender));
} else {
return getLimitBreakDamageAgainstQuality(player, subSkillType, 1000);
}
} }
public static int getLimitBreakDamageAgainstQuality(Player player, SubSkillType subSkillType, int armorQualityLevel) { public static int getLimitBreakDamageAgainstQuality(Player player, SubSkillType subSkillType, int armorQualityLevel) {
@ -445,11 +451,11 @@ public final class CombatUtils {
/** /**
* Checks if player has access to their weapons limit break * Checks if player has access to their weapons limit break
* @param player target player * @param player target entity
* @return true if the player has access to the limit break * @return true if the player has access to the limit break
*/ */
public static boolean canUseLimitBreak(Player player, LivingEntity target, SubSkillType subSkillType) { public static boolean canUseLimitBreak(Player player, LivingEntity target, SubSkillType subSkillType) {
if(target instanceof Player) { if(target instanceof Player || AdvancedConfig.getInstance().canApplyLimitBreakPVE()) {
return RankUtils.hasUnlockedSubskill(player, subSkillType) return RankUtils.hasUnlockedSubskill(player, subSkillType)
&& Permissions.isSubSkillEnabled(player, subSkillType); && Permissions.isSubSkillEnabled(player, subSkillType);
} else { } else {

View File

@ -77,6 +77,8 @@ Feedback:
SendCopyOfMessageToChat: true SendCopyOfMessageToChat: true
Skills: Skills:
General: General:
LimitBreak:
AllowPVE: false
StartingLevel: 0 StartingLevel: 0
Ability: Ability:
Length: Length:

View File

@ -171,8 +171,8 @@ Archery.SubSkill.ArrowRetrieval.Name=Arrow Retrieval
Archery.SubSkill.ArrowRetrieval.Description=Chance to retrieve arrows from corpses Archery.SubSkill.ArrowRetrieval.Description=Chance to retrieve arrows from corpses
Archery.SubSkill.ArrowRetrieval.Stat=Arrow Recovery Chance Archery.SubSkill.ArrowRetrieval.Stat=Arrow Recovery Chance
Archery.SubSkill.ArcheryLimitBreak.Name=Archery Limit Break Archery.SubSkill.ArcheryLimitBreak.Name=Archery Limit Break
Archery.SubSkill.ArcheryLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. (PVP Only) Archery.SubSkill.ArcheryLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. Intended for PVP, up to server settings for whether or not it will boost damage in PVE.
Archery.SubSkill.ArcheryLimitBreak.Stat=Limit Break PVP Max DMG Archery.SubSkill.ArcheryLimitBreak.Stat=Limit Break Max DMG
Archery.Listener=Archery: Archery.Listener=Archery:
Archery.SkillName=ARCHERY Archery.SkillName=ARCHERY
#AXES #AXES
@ -198,8 +198,8 @@ Axes.SubSkill.CriticalStrikes.Stat=Critical Strike Chance
Axes.SubSkill.AxeMastery.Name=Axe Mastery Axes.SubSkill.AxeMastery.Name=Axe Mastery
Axes.SubSkill.AxeMastery.Description=Adds bonus DMG Axes.SubSkill.AxeMastery.Description=Adds bonus DMG
Axes.SubSkill.AxesLimitBreak.Name=Axes Limit Break Axes.SubSkill.AxesLimitBreak.Name=Axes Limit Break
Axes.SubSkill.AxesLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. (PVP Only) Axes.SubSkill.AxesLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. Intended for PVP, up to server settings for whether or not it will boost damage in PVE.
Axes.SubSkill.AxesLimitBreak.Stat=Limit Break PVP Max DMG Axes.SubSkill.AxesLimitBreak.Stat=Limit Break Max DMG
Axes.SubSkill.ArmorImpact.Name=Armor Impact Axes.SubSkill.ArmorImpact.Name=Armor Impact
Axes.SubSkill.ArmorImpact.Description=Strike with enough force to shatter armor Axes.SubSkill.ArmorImpact.Description=Strike with enough force to shatter armor
Axes.SubSkill.GreaterImpact.Name=Greater Impact Axes.SubSkill.GreaterImpact.Name=Greater Impact
@ -219,7 +219,7 @@ Excavation.SubSkill.GigaDrillBreaker.Description=3x Drop Rate, 3x EXP, +Speed
Excavation.SubSkill.GigaDrillBreaker.Stat=Giga Drill Breaker Duration Excavation.SubSkill.GigaDrillBreaker.Stat=Giga Drill Breaker Duration
Excavation.SubSkill.Archaeology.Name=Archaeology Excavation.SubSkill.Archaeology.Name=Archaeology
Excavation.SubSkill.Archaeology.Description=Unearth the secrets of the land! High skill levels increase your odds of finding experience orbs when you find treasure! Excavation.SubSkill.Archaeology.Description=Unearth the secrets of the land! High skill levels increase your odds of finding experience orbs when you find treasure!
Excavation.SubSkill.Archaeology.Stat=Archaelogy Experience Orb Chance Excavation.SubSkill.Archaeology.Stat=Archaeology Experience Orb Chance
Excavation.SubSkill.Archaeology.Stat.Extra=Archaeology Experience Orb Amount Excavation.SubSkill.Archaeology.Stat.Extra=Archaeology Experience Orb Amount
Excavation.Listener=Excavation: Excavation.Listener=Excavation:
Excavation.SkillName=EXCAVATION Excavation.SkillName=EXCAVATION
@ -423,8 +423,8 @@ Swords.SubSkill.Stab.Name=Stab
Swords.SubSkill.Stab.Description=Adds bonus damage to your attacks. Swords.SubSkill.Stab.Description=Adds bonus damage to your attacks.
Swords.SubSkill.Stab.Stat=Stab Damage Swords.SubSkill.Stab.Stat=Stab Damage
Swords.SubSkill.SwordsLimitBreak.Name=Swords Limit Break Swords.SubSkill.SwordsLimitBreak.Name=Swords Limit Break
Swords.SubSkill.SwordsLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. (PVP Only) Swords.SubSkill.SwordsLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. Intended for PVP, up to server settings for whether or not it will boost damage in PVE.
Swords.SubSkill.SwordsLimitBreak.Stat=Limit Break PVP Max DMG Swords.SubSkill.SwordsLimitBreak.Stat=Limit Break Max DMG
Swords.SubSkill.Rupture.Stat=Rupture Chance Swords.SubSkill.Rupture.Stat=Rupture Chance
Swords.SubSkill.Rupture.Stat.Extra=Rupture: [[GREEN]]{0} ticks [{1} DMG vs Player] [{2} DMG vs Mobs] Swords.SubSkill.Rupture.Stat.Extra=Rupture: [[GREEN]]{0} ticks [{1} DMG vs Player] [{2} DMG vs Mobs]
Swords.Effect.4=Serrated Strikes Rupture+ Swords.Effect.4=Serrated Strikes Rupture+
@ -502,8 +502,8 @@ Unarmed.SubSkill.Disarm.Name=Disarm
Unarmed.SubSkill.Disarm.Description=Drops the foes item held in hand Unarmed.SubSkill.Disarm.Description=Drops the foes item held in hand
Unarmed.SubSkill.Disarm.Stat=Disarm Chance Unarmed.SubSkill.Disarm.Stat=Disarm Chance
Unarmed.SubSkill.UnarmedLimitBreak.Name=Unarmed Limit Break Unarmed.SubSkill.UnarmedLimitBreak.Name=Unarmed Limit Break
Unarmed.SubSkill.UnarmedLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. (PVP Only) Unarmed.SubSkill.UnarmedLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. Intended for PVP, up to server settings for whether or not it will boost damage in PVE.
Unarmed.SubSkill.UnarmedLimitBreak.Stat=Limit Break PVP Max DMG Unarmed.SubSkill.UnarmedLimitBreak.Stat=Limit Break Max DMG
Unarmed.SubSkill.IronArmStyle.Name=Iron Arm Style Unarmed.SubSkill.IronArmStyle.Name=Iron Arm Style
Unarmed.SubSkill.IronArmStyle.Description=Hardens your arm over time Unarmed.SubSkill.IronArmStyle.Description=Hardens your arm over time
Unarmed.SubSkill.ArrowDeflect.Name=Arrow Deflect Unarmed.SubSkill.ArrowDeflect.Name=Arrow Deflect