mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 13:16:45 +01:00
2.1.96
This commit is contained in:
parent
732e29f0a5
commit
36932e397d
@ -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.
|
||||||
|
2
pom.xml
2
pom.xml
@ -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>
|
||||||
|
@ -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);
|
||||||
|
@ -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() {
|
||||||
|
@ -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 {
|
||||||
|
@ -77,6 +77,8 @@ Feedback:
|
|||||||
SendCopyOfMessageToChat: true
|
SendCopyOfMessageToChat: true
|
||||||
Skills:
|
Skills:
|
||||||
General:
|
General:
|
||||||
|
LimitBreak:
|
||||||
|
AllowPVE: false
|
||||||
StartingLevel: 0
|
StartingLevel: 0
|
||||||
Ability:
|
Ability:
|
||||||
Length:
|
Length:
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user