Added new subskill to Swords, Stab

This commit is contained in:
nossr50 2019-03-27 12:11:11 -07:00
parent 018c6fc96b
commit e0341f7ae7
9 changed files with 54 additions and 4 deletions

View File

@ -7,6 +7,21 @@ Key:
! Change
- Removal
Version 2.1.26
Changed how Iron Arm damage is calculated (Rank 1 now effectively gives twice the damage bonus it used to, with a net result of 3 extra RAW damage before reductions)
Added a new subskill named Stab to Swords to help with lategame PVP combat
New permission node 'mcmmo.ability.swords.stab'
NOTE: Combat skills will be completely configurable in the upcoming 2.2 update, be patient <3
Notes:
These changes are meant to be minor tweaks to PVP, a dedicated PVP update where I do a lot more research and testing will happen after 2.3
Stab is unlocked at level 75/750, and ranks up again at level 100/1000
Stab permanently adds small amounts of extra damage when attacking players with a sword.
Stab is meant to make up for Swords lackluster damage against fully geared opponents.
Iron Arm got buffed because Unarmed was dealing lackluster damage compared to other skills.
Version 2.1.25
Shake now has an upper limit of damage (10) - Will be configurable in 2.2 which is coming in the near future
Rank 1 of Catalysis & Concoctions are now available at level 0 by default (update skillranks.yml or delete it to regen a new one)
@ -17,7 +32,7 @@ Version 2.1.24
Version 2.1.23
Fixed a bug with Double Drops for Mining (Update your configs instructions below)
Fixed a 7 year old bug where damage in mcMMO from Skills was potentially getting reduced by damage reduction TWICE
Fixed a 7 year old bug where damage in mcMMO from SkillBs was potentially getting reduced by damage reduction TWICE
Fixed a bug where killing entities with Rupture would not properly credit you as the killer
Fixed a bug where Serrated Strikes was applying Rupture twice
Players will now be ejected from Minecarts if they cast their fishing rod (anti-afk)

View File

@ -58,7 +58,7 @@ public enum PrimarySkillType {
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_RUPTURE, SubSkillType.SWORDS_COUNTER_ATTACK)),
ImmutableList.of(SubSkillType.SWORDS_SERRATED_STRIKES, 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)),
UNARMED(UnarmedManager.class, Color.BLACK, SuperAbilityType.BERSERK, ToolType.FISTS,

View File

@ -71,6 +71,7 @@ public enum SubSkillType {
SWORDS_COUNTER_ATTACK(1),
SWORDS_RUPTURE(4),
SWORDS_SERRATED_STRIKES(1),
SWORDS_STAB(2),
/* Taming */
TAMING_BEAST_LORE(1),

View File

@ -4,10 +4,8 @@ import com.gmail.nossr50.config.AdvancedConfig;
public class Swords {
public static int bleedMaxTicks = AdvancedConfig.getInstance().getRuptureMaxTicks();
public static int bleedBaseTicks = AdvancedConfig.getInstance().getRuptureBaseTicks();
public static double counterAttackModifier = AdvancedConfig.getInstance().getCounterModifier();
public static double serratedStrikesModifier = AdvancedConfig.getInstance().getSerratedStrikesModifier();
public static int serratedStrikesBleedTicks = AdvancedConfig.getInstance().getSerratedStrikesTicks();
}

View File

@ -33,6 +33,10 @@ public class SwordsManager extends SkillManager {
return mcMMOPlayer.getToolPreparationMode(ToolType.SWORD) && Permissions.serratedStrikes(getPlayer());
}
public boolean canUseStab() {
return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SWORDS_STAB) && RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.SWORDS_STAB);
}
public boolean canUseRupture() {
return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SWORDS_RUPTURE) && RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.SWORDS_RUPTURE);
}
@ -80,6 +84,22 @@ public class SwordsManager extends SkillManager {
}
}
public double stabCheck(LivingEntity target)
{
if(!(target instanceof Player))
return 0;
int rank = RankUtils.getRank(getPlayer(), SubSkillType.SWORDS_STAB);
if(rank > 0)
{
double stabDamage = 1.0D + (rank * 1.5);
return stabDamage;
}
return 0;
}
public int getToolTier(ItemStack itemStack)
{
if(ItemUtils.isDiamondTool(itemStack))

View File

@ -61,6 +61,12 @@ public final class CombatUtils {
}
}
//Add Stab Damage
if(swordsManager.canUseStab())
{
event.setDamage(swordsManager.stabCheck(target) + initialDamage);
}
if (swordsManager.canUseSerratedStrike()) {
swordsManager.serratedStrikes(target, initialDamage, modifiers);
}

View File

@ -404,6 +404,8 @@ Swords.SubSkill.SerratedStrikes.Description=Deal partial damage in an AOE with a
Swords.SubSkill.SerratedStrikes.Stat=Serrated Strikes Length
Swords.SubSkill.Rupture.Name=Rupture
Swords.SubSkill.Rupture.Description=Apply a powerful bleed DoT
Swords.SubSkill.Stab.Name=Stab
Swords.SubSkill.Stab.Description=Adds {0} extra damage when attacking players.
Swords.SubSkill.Rupture.Stat=Rupture Chance
Swords.SubSkill.Rupture.Stat.Extra=Rupture: [[GREEN]]{0} ticks [{1} DMG vs Player] [{2} DMG vs Mobs]
Swords.Effect.4=Serrated Strikes Rupture+

View File

@ -561,6 +561,7 @@ permissions:
description: Allows access to all Swords abilities
children:
mcmmo.ability.swords.rupture: true
mcmmo.ability.swords.stab: true
mcmmo.ability.swords.counterattack: true
mcmmo.ability.swords.serratedstrikes: true
mcmmo.ability.swords.rupture:

View File

@ -381,6 +381,13 @@ Fishing:
Rank_7: 850
Rank_8: 1000
Swords:
Stab:
Standard:
Rank_1: 75
Rank_2: 100
RetroMode:
Rank_1: 750
Rank_2: 1000
CounterAttack:
Standard:
Rank_1: 20