Fixed a bug which caused advanced.yml not to respect every MaxChance node

This commit is contained in:
TfT_02
2013-01-02 01:27:50 +01:00
parent 3aee334fbd
commit 4f8337c11a
11 changed files with 61 additions and 43 deletions

View File

@ -7,10 +7,12 @@ import com.gmail.nossr50.config.AdvancedConfig;
public class Swords {
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
public static final int BLEED_CHANCE_MAX = AdvancedConfig.getInstance().getBleedChanceMax();
public static final int BLEED_MAX_BONUS_LEVEL = advancedConfig.getBleedMaxBonusLevel();
public static final int MAX_BLEED_TICKS = advancedConfig.getBleedMaxTicks();
public static final int BASE_BLEED_TICKS = advancedConfig.getBleedBaseTicks();
public static final int COUNTER_ATTACK_CHANCE_MAX = advancedConfig.getCounterChanceMax();
public static final int COUNTER_ATTACK_MAX_BONUS_LEVEL = advancedConfig.getCounterMaxBonusLevel();
public static final int COUNTER_ATTACK_MODIFIER = advancedConfig.getCounterModifier();

View File

@ -3,7 +3,6 @@ package com.gmail.nossr50.skills.swords;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.util.Combat;
@ -42,15 +41,15 @@ public class SwordsManager {
if (Combat.shouldBeAffected(player, defender)) {
BleedEventHandler eventHandler = new BleedEventHandler(this, defender);
int bleedChanceMax = AdvancedConfig.getInstance().getBleedChanceMax();
int bleedMaxLevel = AdvancedConfig.getInstance().getBleedMaxBonusLevel();
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.swords")) {
randomChance = (int) (randomChance * 0.75);
}
final float chance = (float) (((double) bleedChanceMax / (double) bleedMaxLevel) * skillLevel);
float chance = (float) (((double) Swords.BLEED_CHANCE_MAX / (double) Swords.BLEED_MAX_BONUS_LEVEL) * skillLevel);
if (chance > Swords.BLEED_CHANCE_MAX) chance = Swords.BLEED_CHANCE_MAX;
if (chance > Swords.getRandom().nextInt(randomChance)) {
eventHandler.addBleedTicks();
eventHandler.sendAbilityMessages();
@ -73,15 +72,16 @@ public class SwordsManager {
if (eventHandler.isHoldingSword()) {
eventHandler.calculateSkillModifier();
int counterChanceMax = AdvancedConfig.getInstance().getCounterChanceMax();
int counterMaxLevel = AdvancedConfig.getInstance().getCounterMaxBonusLevel();
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.swords")) {
randomChance = (int) (randomChance * 0.75);
}
final float chance = (float) (((double) counterChanceMax / (double) counterMaxLevel) * skillLevel);
float chance = (float) (((double) Swords.COUNTER_ATTACK_CHANCE_MAX / (double) Swords.COUNTER_ATTACK_MAX_BONUS_LEVEL) * skillLevel);
if (chance > Swords.COUNTER_ATTACK_CHANCE_MAX) chance = Swords.COUNTER_ATTACK_CHANCE_MAX;
if (chance > Swords.getRandom().nextInt(randomChance)) {
eventHandler.dealDamage();
eventHandler.sendAbilityMessages();