Resolving merge conflict.

This commit is contained in:
Glitchfinder
2012-11-21 13:47:17 -08:00
37 changed files with 913 additions and 444 deletions

View File

@ -2,13 +2,16 @@ package com.gmail.nossr50.skills.acrobatics;
import java.util.Random;
public class Acrobatics {
public static final int DODGE_MAX_BONUS_LEVEL = 800;
public static final int DODGE_XP_MODIFIER = 120;
import com.gmail.nossr50.config.AdvancedConfig;
public static final int FALL_XP_MODIFIER = 120;
public static final int ROLL_MAX_BONUS_LEVEL = 1000;
public static final int ROLL_XP_MODIFIER = 80;
public class Acrobatics {
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
public static final int DODGE_MAX_BONUS_LEVEL = advancedConfig.getDodgeMaxBonusLevel();
public static final int DODGE_XP_MODIFIER = advancedConfig.getDodgeXPModifier();
public static final int FALL_XP_MODIFIER = advancedConfig.getFallXPModifier();
public static final int ROLL_MAX_BONUS_LEVEL = advancedConfig.getRollMaxBonusLevel();
public static final int ROLL_XP_MODIFIER = advancedConfig.getRollXPModifier();
private static Random random = new Random();

View File

@ -9,20 +9,22 @@ import org.bukkit.Material;
import org.bukkit.entity.LivingEntity;
import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.util.Misc;
public class Archery {
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
private static Random random = new Random();
private static List<TrackedEntity> trackedEntities = new ArrayList<TrackedEntity>();
public static final int ARROW_TRACKING_MAX_BONUS_LEVEL = 1000;
public static final int ARROW_TRACKING_MAX_BONUS_LEVEL = advancedConfig.getRetrieveMaxBonusLevel();
public static final int BONUS_DAMAGE_INCREASE_LEVEL = advancedConfig.getSkillShotIncreaseLevel();
public static final double BONUS_DAMAGE_INCREASE_PERCENT = advancedConfig.getSkillShotIncreasePercentage();
public static final double BONUS_DAMAGE_MAX_BONUS_PERCENTAGE = advancedConfig.getSkillShotBonusMax();
public static final int BONUS_DAMAGE_INCREASE_LEVEL = 50;
public static final double BONUS_DAMAGE_INCREASE_PERCENT = 0.1D;
public static final double BONUS_DAMAGE_MAX_BONUS_PERCENTAGE = 2.0D;
public static final int DAZE_MAX_BONUS_LEVEL = 1000;
public static final int DAZE_MODIFIER = 4;
public static final int DAZE_MAX_BONUS_LEVEL = advancedConfig.getDazeMaxBonusLevel();
public static final int DAZE_MODIFIER = advancedConfig.getDazeModifier();
protected static void incrementTrackerValue(LivingEntity livingEntity) {
for (TrackedEntity trackedEntity : trackedEntities) {

View File

@ -4,17 +4,25 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.Users;
public class ArcheryManager {
AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
private Player player;
private PlayerProfile profile;
private int skillLevel;
private Permissions permissionsInstance;
private float dazeBonusMax = advancedConfig.getDazeBonusMax();
private float dazeMaxBonusLevel = advancedConfig.getDazeMaxBonusLevel();
private float retrieveBonusMax = advancedConfig.getRetrieveBonusMax();
private float retrieveMaxBonusLevel = advancedConfig.getRetrieveMaxBonusLevel();
public ArcheryManager (Player player) {
this.player = player;
this.profile = Users.getProfile(player);
@ -45,13 +53,12 @@ public class ArcheryManager {
ArrowTrackingEventHandler eventHandler = new ArrowTrackingEventHandler(this, livingEntity);
int randomChance = 1000;
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.archery")) {
randomChance = (int) (randomChance * 0.75);
}
if (Archery.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (retrieveBonusMax / retrieveMaxBonusLevel) * skillLevel;
if (chance > Archery.getRandom().nextInt(randomChance)) {
eventHandler.addToTracker();
}
}
@ -74,16 +81,17 @@ public class ArcheryManager {
}
DazeEventHandler eventHandler = new DazeEventHandler(this, event, defender);
int randomChance = 2000;
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.archery")) {
randomChance = (int) (randomChance * 0.75);
}
if (Archery.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
eventHandler.handleDazeEffect();
eventHandler.sendAbilityMessages();
final float chance = (dazeBonusMax / dazeMaxBonusLevel) * skillLevel;
if (chance > Archery.getRandom().nextInt(randomChance)) {
eventHandler.handleDazeEffect();
eventHandler.sendAbilityMessages();
}
}

View File

@ -11,6 +11,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
@ -20,6 +21,7 @@ import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.Users;
public class Axes {
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
private static Random random = new Random();
@ -33,10 +35,12 @@ public class Axes {
if(attacker == null)
return;
final int MAX_BONUS = 4;
final int MAX_BONUS = advancedConfig.getBonusDamageAxesBonusMax();
final int MAX_LEVEL = advancedConfig.getBonusDamageAxesMaxBonusLevel();
final int INCREASE_LEVEL = MAX_LEVEL / MAX_BONUS;
/* Add 1 DMG for every 50 skill levels */
int bonus = Users.getProfile(attacker).getSkillLevel(SkillType.AXES) / 50;
int bonus = Users.getProfile(attacker).getSkillLevel(SkillType.AXES) / INCREASE_LEVEL;
if (bonus > MAX_BONUS) {
bonus = MAX_BONUS;
@ -73,21 +77,24 @@ public class Axes {
}
}
final int MAX_BONUS_LEVEL = 750;
final double PVP_MODIFIER = 1.5;
final int PVE_MODIFIER = 2;
final int MAX_BONUS_LEVEL = advancedConfig.getAxesCriticalMaxBonusLevel();
final double MAX_CHANCE = advancedConfig.getAxesCriticalChance();
final double PVP_MODIFIER = advancedConfig.getAxesCriticalPVPModifier();
final int PVE_MODIFIER = advancedConfig.getAxesCriticalPVEModifier();
PlayerProfile attackerProfile = Users.getProfile(attacker);
int skillLevel = attackerProfile.getSkillLevel(SkillType.AXES);
int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);
int randomChance = 2000;
int randomChance = 100;
double chance = (MAX_CHANCE / MAX_BONUS_LEVEL) * skillCheck;
if (attacker.hasPermission("mcmmo.perks.lucky.axes")) {
randomChance = (int) (randomChance * 0.75);
}
if (random.nextInt(randomChance) <= skillCheck && !entity.isDead()){
if (chance > random.nextInt(randomChance) && !entity.isDead()){
// if (random.nextInt(randomChance) <= skillCheck && !entity.isDead()){
int damage = event.getDamage();
if (entity instanceof Player){
@ -122,7 +129,8 @@ public class Axes {
short durabilityDamage = 1; //Start with 1 durability damage
/* Every 30 Skill Levels you gain 1 durability damage */
durabilityDamage += Users.getProfile(attacker).getSkillLevel(SkillType.AXES)/50;
int impactIncreaseLevel = advancedConfig.getGreaterImpactIncreaseLevel();
durabilityDamage += Users.getProfile(attacker).getSkillLevel(SkillType.AXES)/impactIncreaseLevel;
if (!hasArmor(targetPlayer)) {
applyGreaterImpact(attacker, target, event);
@ -150,9 +158,10 @@ public class Axes {
private static void applyGreaterImpact(Player attacker, LivingEntity target, EntityDamageByEntityEvent event) {
if(attacker == null)
return;
final int GREATER_IMPACT_CHANCE = 25;
final double GREATER_IMPACT_MULTIPLIER = 1.5;
final int GREATER_IMPACT_CHANCE = advancedConfig.getGreaterImpactChance();
final double GREATER_IMPACT_MULTIPLIER = advancedConfig.getGreaterImpactModifier();
final int GREATER_IMPACT_DAMAGE = advancedConfig.getGreaterImpactBonusDamage();
if (!Permissions.getInstance().greaterImpact(attacker)) {
return;
@ -165,7 +174,7 @@ public class Axes {
}
if (random.nextInt(randomChance) <= GREATER_IMPACT_CHANCE) {
event.setDamage(event.getDamage() + 2);
event.setDamage(event.getDamage() + GREATER_IMPACT_DAMAGE);
target.setVelocity(attacker.getLocation().getDirection().normalize().multiply(GREATER_IMPACT_MULTIPLIER));
attacker.sendMessage(LocaleLoader.getString("Axes.Combat.GI.Proc"));
}

View File

@ -17,6 +17,7 @@ import org.bukkit.event.entity.ExplosionPrimeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.AbilityType;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
@ -27,9 +28,18 @@ import com.gmail.nossr50.util.Skills;
import com.gmail.nossr50.util.Users;
public class BlastMining {
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
private static Random random = new Random();
private static int blastMiningRank1 = advancedConfig.getBlastMiningRank1();
private static int blastMiningRank2 = advancedConfig.getBlastMiningRank2();
private static int blastMiningRank3 = advancedConfig.getBlastMiningRank3();
private static int blastMiningRank4 = advancedConfig.getBlastMiningRank4();
private static int blastMiningRank5 = advancedConfig.getBlastMiningRank5();
private static int blastMiningRank6 = advancedConfig.getBlastMiningRank6();
private static int blastMiningRank7 = advancedConfig.getBlastMiningRank7();
private static int blastMiningRank8 = advancedConfig.getBlastMiningRank8();
/**
* Handler for what blocks drop from the explosion.
*
@ -85,14 +95,14 @@ public class BlastMining {
if(player == null)
return;
final int RANK_1_LEVEL = 125;
final int RANK_2_LEVEL = 250;
final int RANK_3_LEVEL = 375;
final int RANK_4_LEVEL = 500;
final int RANK_5_LEVEL = 625;
final int RANK_6_LEVEL = 750;
final int RANK_7_LEVEL = 875;
final int RANK_8_LEVEL = 1000;
final int RANK_1_LEVEL = blastMiningRank1;
final int RANK_2_LEVEL = blastMiningRank2;
final int RANK_3_LEVEL = blastMiningRank3;
final int RANK_4_LEVEL = blastMiningRank4;
final int RANK_5_LEVEL = blastMiningRank5;
final int RANK_6_LEVEL = blastMiningRank6;
final int RANK_7_LEVEL = blastMiningRank7;
final int RANK_8_LEVEL = blastMiningRank8;
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING);
float yield = event.getYield();
@ -178,10 +188,10 @@ public class BlastMining {
if(player == null)
return;
final int RANK_1_LEVEL = 250;
final int RANK_2_LEVEL = 500;
final int RANK_3_LEVEL = 750;
final int RANK_4_LEVEL = 1000;
final int RANK_1_LEVEL = blastMiningRank2;
final int RANK_2_LEVEL = blastMiningRank4;
final int RANK_3_LEVEL = blastMiningRank6;
final int RANK_4_LEVEL = blastMiningRank8;
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING);
float radius = event.getRadius();
@ -219,9 +229,9 @@ public class BlastMining {
if(player == null)
return;
final int RANK_1_LEVEL = 500;
final int RANK_2_LEVEL = 750;
final int RANK_3_LEVEL = 1000;
final int RANK_1_LEVEL = blastMiningRank4;
final int RANK_2_LEVEL = blastMiningRank6;
final int RANK_3_LEVEL = blastMiningRank8;
int skill = Users.getProfile(player).getSkillLevel(SkillType.MINING);
int damage = event.getDamage();

View File

@ -19,6 +19,7 @@ import org.bukkit.material.Wool;
import org.bukkit.craftbukkit.entity.CraftSkeleton;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.TreasuresConfig;
import com.gmail.nossr50.datatypes.PlayerProfile;
@ -35,6 +36,7 @@ import com.gmail.nossr50.util.Users;
public class Fishing {
private static Random random = new Random();
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
/**
* Get the player's current fishing loot tier.
@ -147,7 +149,7 @@ public class Fishing {
Item theCatch = (Item) event.getCaught();
if (theCatch.getItemStack().getType() != Material.RAW_FISH) {
final int ENCHANTMENT_CHANCE = 10;
final int ENCHANTMENT_CHANCE = advancedConfig.getFishingEnchantmentChance();
boolean enchanted = false;
ItemStack fishingResults = theCatch.getItemStack();

View File

@ -12,6 +12,7 @@ import org.bukkit.inventory.ItemStack;
import org.getspout.spoutapi.sound.SoundEffect;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
@ -26,6 +27,7 @@ import com.gmail.nossr50.util.Users;
public class Mining {
private static Random random = new Random();
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
/**
* Handle double drops when using Silk Touch.
@ -320,17 +322,20 @@ public class Mining {
miningXP(player, block);
final int MAX_BONUS_LEVEL = 1000;
final int MAX_BONUS_LEVEL = advancedConfig.getMiningDoubleDropMaxLevel();
int MAX_CHANCE = advancedConfig.getMiningDoubleDropChance();
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING);
int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);
int randomChance = 1000;
int randomChance = 100;
int chance = (MAX_CHANCE / MAX_BONUS_LEVEL) * skillLevel;
if (player.hasPermission("mcmmo.perks.lucky.mining")) {
randomChance = (int) (randomChance * 0.75);
}
if (random.nextInt(randomChance) <= skillCheck && Permissions.getInstance().miningDoubleDrops(player)) {
if (chance > random.nextInt(randomChance) && Permissions.getInstance().miningDoubleDrops(player)) {
if (player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
silkTouchDrops(block);
}

View File

@ -14,6 +14,7 @@ import org.bukkit.material.Tree;
import org.getspout.spoutapi.sound.SoundEffect;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
@ -31,6 +32,7 @@ import com.gmail.nossr50.util.Users;
public class WoodCutting {
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
private static Random random = new Random();
/**
@ -327,7 +329,9 @@ public class WoodCutting {
* @param block The block being broken
*/
private static void woodCuttingProcCheck(Player player, Block block) {
final int MAX_SKILL_LEVEL = 1000;
final int MAX_CHANCE = advancedConfig.getMiningDoubleDropChance();
final int MAX_BONUS_LEVEL = advancedConfig.getMiningDoubleDropMaxLevel();
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.WOODCUTTING);
byte type = block.getData();
@ -340,13 +344,14 @@ public class WoodCutting {
Material mat = Material.getMaterial(block.getTypeId());
int randomChance = 1000;
int randomChance = 100;
int chance = (MAX_CHANCE / MAX_BONUS_LEVEL) * skillLevel;
if (player.hasPermission("mcmmo.perks.lucky.woodcutting")) {
randomChance = (int) (randomChance * 0.75);
}
if ((skillLevel > MAX_SKILL_LEVEL || random.nextInt(randomChance) <= skillLevel) && Permissions.getInstance().woodcuttingDoubleDrops(player)) {
if (chance > random.nextInt(randomChance) && Permissions.getInstance().woodcuttingDoubleDrops(player)) {
Config configInstance = Config.getInstance();
ItemStack item;
Location location;

View File

@ -12,6 +12,7 @@ import org.getspout.spoutapi.SpoutManager;
import org.getspout.spoutapi.player.SpoutPlayer;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
@ -27,6 +28,13 @@ public class Repair {
private static Config configInstance = Config.getInstance();
private static Permissions permInstance = Permissions.getInstance();
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
private static int repairMasteryChanceMax = advancedConfig.getRepairMasteryChanceMax();
private static int repairMasteryMaxBonusLevel = advancedConfig.getRepairMasteryMaxLevel();
private static int superRepairChanceMax = advancedConfig.getSuperRepairChanceMax();
private static int superRepairMaxBonusLevel = advancedConfig.getSuperRepairMaxLevel();
/**
* Handle the XP gain for repair events.
*
@ -198,7 +206,10 @@ public class Repair {
* @return The final amount of durability repaired to the item
*/
protected static short repairCalculate(Player player, int skillLevel, short durability, int repairAmount) {
float bonus = (float) skillLevel / 500;
// float bonus = (float) skillLevel / 500;
float bonus;
if(skillLevel >= repairMasteryMaxBonusLevel) bonus = repairMasteryChanceMax;
else bonus = (repairMasteryChanceMax / repairMasteryMaxBonusLevel) * skillLevel;
if (permInstance.repairMastery(player)) {
bonus = (repairAmount * bonus);
@ -225,21 +236,21 @@ public class Repair {
* @return true if bonus granted, false otherwise
*/
public static boolean checkPlayerProcRepair(Player player) {
final int MAX_BONUS_LEVEL = 1000;
final int MAX_CHANCE = superRepairChanceMax;
final int MAX_BONUS_LEVEL = superRepairMaxBonusLevel;
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.REPAIR);
int randomChance = 1000;
int randomChance = 100;
int chance = (MAX_CHANCE / MAX_BONUS_LEVEL) * skillLevel;
if (skillLevel >= MAX_BONUS_LEVEL) chance = MAX_CHANCE;
if (player.hasPermission("mcmmo.perks.lucky.repair")) {
randomChance = (int) (randomChance * 0.75);
if (player.hasPermission("mcmmo.perks.lucky.repair")) randomChance = (int) (randomChance * 0.75);
if (chance > random.nextInt(randomChance) && permInstance.repairBonus(player)){
player.sendMessage(LocaleLoader.getString("Repair.Skills.FeltEasy"));
return true;
}
if ((skillLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= skillLevel) && permInstance.repairBonus(player)) {
player.sendMessage(LocaleLoader.getString("Repair.Skills.FeltEasy"));
return true;
}
return false;
}

View File

@ -2,16 +2,20 @@ package com.gmail.nossr50.skills.swords;
import java.util.Random;
import com.gmail.nossr50.config.AdvancedConfig;
public class Swords {
public static final int BLEED_MAX_BONUS_LEVEL = 750;
public static final int MAX_BLEED_TICKS = 3;
public static final int BASE_BLEED_TICKS = 2;
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
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_MAX_BONUS_LEVEL = 600;
public static final int COUNTER_ATTACK_MODIFIER = 2;
public static final int COUNTER_ATTACK_MAX_BONUS_LEVEL = advancedConfig.getCounterMaxBonusLevel();
public static final int COUNTER_ATTACK_MODIFIER = advancedConfig.getCounterModifier();
public static final int SERRATED_STRIKES_MODIFIER = 4;
public static final int SERRATED_STRIKES_BLEED_TICKS = 5;
public static final int SERRATED_STRIKES_MODIFIER = advancedConfig.getSerratedStrikesModifier();
public static final int SERRATED_STRIKES_BLEED_TICKS = advancedConfig.getSerratedStrikesTicks();
private static Random random = new Random();

View File

@ -3,6 +3,7 @@ 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;
@ -41,13 +42,16 @@ public class SwordsManager {
if (Combat.shouldBeAffected(player, defender)) {
BleedEventHandler eventHandler = new BleedEventHandler(this, defender);
int randomChance = 1000;
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);
}
if (Swords.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (bleedChanceMax / bleedMaxLevel) * skillLevel;
if (chance > Swords.getRandom().nextInt(randomChance)) {
eventHandler.addBleedTicks();
eventHandler.sendAbilityMessages();
}
@ -69,14 +73,16 @@ public class SwordsManager {
if (eventHandler.isHoldingSword()) {
eventHandler.calculateSkillModifier();
int randomChance = 2000;
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);
}
if (Swords.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (counterChanceMax / counterMaxLevel) * skillLevel;
if (chance > Swords.getRandom().nextInt(randomChance)) {
eventHandler.dealDamage();
eventHandler.sendAbilityMessages();
}

View File

@ -2,24 +2,28 @@ package com.gmail.nossr50.skills.taming;
import java.util.Random;
import com.gmail.nossr50.config.AdvancedConfig;
public class Taming {
public static final int ENVIRONMENTALLY_AWARE_ACTIVATION_LEVEL = 100;
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
public static final int ENVIRONMENTALLY_AWARE_ACTIVATION_LEVEL = advancedConfig.getEnviromentallyAwareUnlock();
public static final int FAST_FOOD_SERVICE_ACTIVATION_CHANCE = 50;
public static final int FAST_FOOD_SERVICE_ACTIVATION_LEVEL = 50;
public static final int FAST_FOOD_SERVICE_ACTIVATION_CHANCE = advancedConfig.getFastFoodChance();
public static final int FAST_FOOD_SERVICE_ACTIVATION_LEVEL = advancedConfig.getFastFoodUnlock();
public static final int GORE_BLEED_TICKS = 2;
public static final int GORE_MAX_BONUS_LEVEL = 1000;
public static final int GORE_MULTIPLIER = 2;
public static final int GORE_BLEED_TICKS = advancedConfig.getGoreBleedTicks();
public static final int GORE_MAX_BONUS_LEVEL = advancedConfig.getGoreMaxBonusLevel();
public static final int GORE_MULTIPLIER = advancedConfig.getGoreModifier();
public static final int SHARPENED_CLAWS_ACTIVATION_LEVEL = 750;
public static final int SHARPENED_CLAWS_BONUS = 2;
public static final int SHARPENED_CLAWS_ACTIVATION_LEVEL = advancedConfig.getSharpenedClawsUnlock();
public static final int SHARPENED_CLAWS_BONUS = advancedConfig.getSharpenedClawsBonus();
public static final int SHOCK_PROOF_ACTIVATION_LEVEL = 500;
public static final int SHOCK_PROOF_MODIFIER = 6;
public static final int SHOCK_PROOF_ACTIVATION_LEVEL = advancedConfig.getShockProofUnlock();
public static final int SHOCK_PROOF_MODIFIER = advancedConfig.getShockProofModifier();
public static final int THICK_FUR_ACTIVATION_LEVEL = 250;
public static final int THICK_FUR_MODIFIER = 2;
public static final int THICK_FUR_ACTIVATION_LEVEL = advancedConfig.getThickFurUnlock();
public static final int THICK_FUR_MODIFIER = advancedConfig.getThickFurModifier();
private static Random random = new Random();

View File

@ -8,6 +8,7 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
@ -101,14 +102,17 @@ public class TamingManager {
}
GoreEventHandler eventHandler = new GoreEventHandler(this, event);
int randomChance = 1000;
int goreChanceMax = AdvancedConfig.getInstance().getGoreChanceMax();
int goreMaxLevel = AdvancedConfig.getInstance().getGoreMaxBonusLevel();
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.taming")) {
randomChance = (int) (randomChance * 0.75);
}
if (Taming.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (goreChanceMax / goreMaxLevel) * skillLevel;
if (chance > Taming.getRandom().nextInt(randomChance)) {
eventHandler.modifyEventDamage();
eventHandler.applyBleed();
eventHandler.sendAbilityMessage();

View File

@ -2,16 +2,23 @@ package com.gmail.nossr50.skills.unarmed;
import java.util.Random;
import com.gmail.nossr50.config.AdvancedConfig;
public class Unarmed {
public static final int BONUS_DAMAGE_MAX_BONUS_MODIFIER = 8;
public static final int BONUS_DAMAGE_INCREASE_LEVEL = 50;
public static final int DEFLECT_MAX_BONUS_LEVEL = 1000;
public static final int DISARM_MAX_BONUS_LEVEL = 1000;
public static final int IRON_GRIP_MAX_BONUS_LEVEL = 1000;
static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
public static final int BONUS_DAMAGE_MAX_BONUS_MODIFIER = advancedConfig.getIronArmBonus();
public static final int BONUS_DAMAGE_INCREASE_LEVEL = advancedConfig.getIronArmIncreaseLevel();
public static final int DEFLECT_MAX_CHANCE = advancedConfig.getDisarmChanceMax() ;
public static final int DEFLECT_MAX_BONUS_LEVEL = advancedConfig.getDisarmMaxBonusLevel();
public static final int DISARM_MAX_CHANCE = advancedConfig.getDeflectChanceMax();
public static final int DISARM_MAX_BONUS_LEVEL = advancedConfig.getDeflectMaxBonusLevel();
public static final int IRON_GRIP_MAX_CHANCE = advancedConfig.getIronGripChanceMax();
public static final int IRON_GRIP_MAX_BONUS_LEVEL = advancedConfig.getIronGripMaxBonusLevel();
private static Random random = new Random();
protected static Random getRandom() {
return random;
}
}
}

View File

@ -3,6 +3,7 @@ package com.gmail.nossr50.skills.unarmed;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.util.Permissions;
@ -42,13 +43,16 @@ public class UnarmedManager {
if (eventHandler.isHoldingItem()) {
eventHandler.calculateSkillModifier();
int randomChance = 3000;
int disarmChanceMax = AdvancedConfig.getInstance().getDisarmChanceMax();
int disarmMaxLevel = AdvancedConfig.getInstance().getDisarmMaxBonusLevel();
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.unarmed")) {
randomChance = (int) (randomChance * 0.75);
}
if (Unarmed.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (disarmChanceMax / disarmMaxLevel) * skillLevel;
if (chance > Unarmed.getRandom().nextInt(randomChance)) {
if (!hasIronGrip(defender)) {
eventHandler.sendAbilityMessage();
eventHandler.handleDisarm();
@ -76,13 +80,16 @@ public class UnarmedManager {
DeflectEventHandler eventHandler = new DeflectEventHandler(this, event);
int randomChance = 2000;
int deflectChanceMax = AdvancedConfig.getInstance().getDeflectChanceMax();
int deflectMaxLevel = AdvancedConfig.getInstance().getDeflectMaxBonusLevel();
int randomChance = 100;
if (player.hasPermission("mcmmo.perks.lucky.unarmed")) {
randomChance = (int) (randomChance * 0.75);
}
if (Unarmed.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (deflectChanceMax / deflectMaxLevel) * skillLevel;
if (chance > Unarmed.getRandom().nextInt(randomChance)) {
eventHandler.cancelEvent();
eventHandler.sendAbilityMessage();
}
@ -129,13 +136,16 @@ public class UnarmedManager {
IronGripEventHandler eventHandler = new IronGripEventHandler(this, defender);
int randomChance = 1000;
int ironGripChanceMax = AdvancedConfig.getInstance().getIronGripChanceMax();
int ironGripMaxLevel = AdvancedConfig.getInstance().getIronGripMaxBonusLevel();
int randomChance = 100;
if (defender.hasPermission("mcmmo.perks.lucky.unarmed")) {
randomChance = (int) (randomChance * 0.75);
}
if (Unarmed.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
final float chance = (ironGripChanceMax / ironGripMaxLevel) * skillLevel;
if (chance > Unarmed.getRandom().nextInt(randomChance)) {
eventHandler.sendAbilityMessages();
return true;
}