mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-12-17 06:18:46 +01:00
spears momentum (wip pt 2)
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.commands.skills;
|
||||
|
||||
|
||||
import static com.gmail.nossr50.datatypes.skills.SubSkillType.MACES_CRIPPLE;
|
||||
import static com.gmail.nossr50.datatypes.skills.SubSkillType.SPEARS_MOMENTUM;
|
||||
import static com.gmail.nossr50.datatypes.skills.SubSkillType.SPEARS_SPEARS_LIMIT_BREAK;
|
||||
import static com.gmail.nossr50.util.skills.SkillUtils.canUseSubskill;
|
||||
@@ -10,7 +9,6 @@ import static com.gmail.nossr50.util.text.TextComponentFactory.appendSubSkillTex
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.maces.MacesManager;
|
||||
import com.gmail.nossr50.skills.spears.SpearsManager;
|
||||
import com.gmail.nossr50.util.skills.CombatUtils;
|
||||
import com.gmail.nossr50.util.skills.RankUtils;
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.gmail.nossr50.util.player.NotificationManager;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.Registry;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -46,24 +47,19 @@ public class SpearsManager extends SkillManager {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Potentially it should overwrite the effect if we are providing a stronger one
|
||||
if (swiftnessEffectType == null || getPlayer().getPotionEffect(swiftnessEffectType) != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Permissions.canUseSubSkill(mmoPlayer.getPlayer(), SubSkillType.SPEARS_MOMENTUM)) {
|
||||
if (!canMomentumBeApplied()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int momentumRank = getRank(getPlayer(), SubSkillType.SPEARS_MOMENTUM);
|
||||
// Chance to activate on hit is influence by the CD
|
||||
double momentumOdds = (mcMMO.p.getAdvancedConfig().getMomentumChanceToApplyOnHit(momentumRank)
|
||||
* mmoPlayer.getAttackStrength());
|
||||
* Math.min(mmoPlayer.getAttackStrength(), 1.0D));
|
||||
|
||||
if (isStaticSkillRNGSuccessful(PrimarySkillType.MACES, mmoPlayer,
|
||||
momentumOdds)) {
|
||||
if (isStaticSkillRNGSuccessful(PrimarySkillType.SPEARS, mmoPlayer, momentumOdds)) {
|
||||
if (mmoPlayer.useChatNotifications()) {
|
||||
NotificationManager.sendPlayerInformation(mmoPlayer.getPlayer(),
|
||||
NotificationType.SUBSKILL_MESSAGE, "Maces.SubSkill.Momentum.Activated");
|
||||
NotificationType.SUBSKILL_MESSAGE, "Spears.SubSkill.Momentum.Activated");
|
||||
}
|
||||
|
||||
// Momentum is success, Momentum the target
|
||||
@@ -83,4 +79,38 @@ public class SpearsManager extends SkillManager {
|
||||
return 2;
|
||||
}
|
||||
|
||||
private boolean canMomentumBeApplied() {
|
||||
// TODO: Potentially it should overwrite the effect if we are providing a stronger one
|
||||
if (swiftnessEffectType == null) {
|
||||
return false;
|
||||
}
|
||||
final PotionEffect currentlyAppliedPotion = getPlayer()
|
||||
.getPotionEffect(swiftnessEffectType);
|
||||
|
||||
if (currentlyAppliedPotion != null) {
|
||||
if (isCurrentPotionEffectStronger(currentlyAppliedPotion)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Permissions.canUseSubSkill(mmoPlayer.getPlayer(), SubSkillType.SPEARS_MOMENTUM)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean isCurrentPotionEffectStronger(@NotNull PotionEffect potionEffect) {
|
||||
if (potionEffect.getAmplifier() > getMomentumStrength()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (potionEffect.getDuration() > getMomentumTickDuration(getRank(getPlayer(),
|
||||
SubSkillType.SPEARS_MOMENTUM))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -428,7 +428,7 @@ Spears:
|
||||
Rank_8: 800
|
||||
Rank_9: 900
|
||||
Rank_10: 1000
|
||||
SpearsMomentum:
|
||||
Momentum:
|
||||
Standard:
|
||||
Rank_1: 1
|
||||
Rank_2: 10
|
||||
|
||||
Reference in New Issue
Block a user