mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-27 19:24:44 +02:00
Adding AdvancedConfig
This commit is contained in:
@ -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();
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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"));
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user