Bleed doesn't suck anymore.

This commit is contained in:
nossr50
2019-01-21 15:14:01 -08:00
parent 848cee18a9
commit 11c8374f6c
18 changed files with 137 additions and 60 deletions

View File

@ -3,8 +3,8 @@ package com.gmail.nossr50.skills.swords;
import com.gmail.nossr50.config.AdvancedConfig;
public class Swords {
public static int bleedMaxTicks = AdvancedConfig.getInstance().getBleedMaxTicks();
public static int bleedBaseTicks = AdvancedConfig.getInstance().getBleedBaseTicks();
public static int bleedMaxTicks = AdvancedConfig.getInstance().getRuptureMaxTicks();
public static int bleedBaseTicks = AdvancedConfig.getInstance().getRuptureBaseTicks();
public static double counterAttackModifier = AdvancedConfig.getInstance().getCounterModifier();

View File

@ -13,6 +13,7 @@ import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.player.NotificationManager;
import com.gmail.nossr50.util.player.UserManager;
import com.gmail.nossr50.util.skills.CombatUtils;
import com.gmail.nossr50.util.skills.RankUtils;
import com.gmail.nossr50.util.skills.SkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.entity.Entity;
@ -32,7 +33,7 @@ public class SwordsManager extends SkillManager {
}
public boolean canUseBleed() {
return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SWORDS_BLEED);
return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SWORDS_RUPTURE);
}
public boolean canUseCounterAttack(Entity target) {
@ -49,13 +50,13 @@ public class SwordsManager extends SkillManager {
* @param target The defending entity
*/
public void bleedCheck(LivingEntity target) {
if (SkillUtils.isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.SWORDS_BLEED, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
if (SkillUtils.isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.SWORDS_RUPTURE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
if (getSkillLevel() >= AdvancedConfig.getInstance().getMaxBonusLevel(SubSkillType.SWORDS_BLEED)) {
BleedTimerTask.add(target, Swords.bleedMaxTicks);
if (getSkillLevel() >= AdvancedConfig.getInstance().getMaxBonusLevel(SubSkillType.SWORDS_RUPTURE)) {
BleedTimerTask.add(target, getBleedTicks(), RankUtils.getRank(getPlayer(), SubSkillType.SWORDS_RUPTURE));
}
else {
BleedTimerTask.add(target, Swords.bleedBaseTicks);
BleedTimerTask.add(target, getBleedTicks(), RankUtils.getRank(getPlayer(), SubSkillType.SWORDS_RUPTURE));
}
if (mcMMOPlayer.useChatNotifications()) {
@ -72,6 +73,16 @@ public class SwordsManager extends SkillManager {
}
}
public int getBleedTicks()
{
int bleedTicks = 2 * RankUtils.getRank(getPlayer(), SubSkillType.SWORDS_RUPTURE);
if(bleedTicks > Swords.bleedMaxTicks)
bleedTicks = Swords.bleedMaxTicks;
return bleedTicks;
}
/**
* Handle the effects of the Counter Attack ability
*
@ -98,6 +109,6 @@ public class SwordsManager extends SkillManager {
*/
public void serratedStrikes(LivingEntity target, double damage, Map<DamageModifier, Double> modifiers) {
CombatUtils.applyAbilityAoE(getPlayer(), target, damage / Swords.serratedStrikesModifier, modifiers, skill);
BleedTimerTask.add(target, Swords.serratedStrikesBleedTicks);
BleedTimerTask.add(target, Swords.serratedStrikesBleedTicks, RankUtils.getRank(getPlayer(), SubSkillType.SWORDS_RUPTURE));
}
}

View File

@ -13,7 +13,7 @@ public class Taming {
public static int fastFoodServiceUnlockLevel = RankUtils.getUnlockLevel(SubSkillType.TAMING_FAST_FOOD_SERVICE);
public static double fastFoodServiceActivationChance = AdvancedConfig.getInstance().getFastFoodChance();
public static int goreBleedTicks = AdvancedConfig.getInstance().getGoreBleedTicks();
public static int goreBleedTicks = AdvancedConfig.getInstance().getGoreRuptureTicks();
public static double goreModifier = AdvancedConfig.getInstance().getGoreModifier();
public static int sharpenedClawsUnlockLevel = RankUtils.getUnlockLevel(SubSkillType.TAMING_SHARPENED_CLAWS);

View File

@ -111,7 +111,7 @@ public class TamingManager extends SkillManager {
return 0;
}
BleedTimerTask.add(target, Taming.goreBleedTicks);
BleedTimerTask.add(target, Taming.goreBleedTicks, 1);
if (target instanceof Player) {
NotificationManager.sendPlayerInformation((Player)target, NotificationType.SUBSKILL_MESSAGE, "Combat.StruckByGore");