mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 15:16:45 +01:00
Added "lucky" donor perk - abilities have 25% better chance to activate
This commit is contained in:
parent
246961887e
commit
819b6fcacb
@ -12,6 +12,7 @@ Version 1.3.10-dev
|
|||||||
+ Added ability for custom blocks to drop a range of items.
|
+ Added ability for custom blocks to drop a range of items.
|
||||||
+ Added Ability API functions
|
+ Added Ability API functions
|
||||||
+ Added 50% & 150% XP boost perks
|
+ Added 50% & 150% XP boost perks
|
||||||
|
+ Added "lucky" perk for donors
|
||||||
= Fixed "GenericLabel belonging to mcMMO..." message
|
= Fixed "GenericLabel belonging to mcMMO..." message
|
||||||
= Fixed menu exit button not working
|
= Fixed menu exit button not working
|
||||||
= Fixed Repair enchant downgrade not working
|
= Fixed Repair enchant downgrade not working
|
||||||
|
@ -32,7 +32,13 @@ public class AcrobaticsManager {
|
|||||||
|
|
||||||
RollEventHandler eventHandler = new RollEventHandler(this, event);
|
RollEventHandler eventHandler = new RollEventHandler(this, event);
|
||||||
|
|
||||||
if (Acrobatics.getRandom().nextInt(1000) <= eventHandler.skillModifier && !eventHandler.isFatal(eventHandler.modifiedDamage)) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.acrobatics")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Acrobatics.getRandom().nextInt(randomChance) <= eventHandler.skillModifier && !eventHandler.isFatal(eventHandler.modifiedDamage)) {
|
||||||
eventHandler.modifyEventDamage();
|
eventHandler.modifyEventDamage();
|
||||||
eventHandler.sendAbilityMessage();
|
eventHandler.sendAbilityMessage();
|
||||||
eventHandler.processXPGain(eventHandler.damage * Acrobatics.ROLL_XP_MODIFIER);
|
eventHandler.processXPGain(eventHandler.damage * Acrobatics.ROLL_XP_MODIFIER);
|
||||||
@ -54,7 +60,13 @@ public class AcrobaticsManager {
|
|||||||
|
|
||||||
DodgeEventHandler eventHandler = new DodgeEventHandler(this, event);
|
DodgeEventHandler eventHandler = new DodgeEventHandler(this, event);
|
||||||
|
|
||||||
if (Acrobatics.getRandom().nextInt(4000) <= eventHandler.skillModifier && !eventHandler.isFatal(eventHandler.modifiedDamage)) {
|
int randomChance = 4000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.acrobatics")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Acrobatics.getRandom().nextInt(randomChance) <= eventHandler.skillModifier && !eventHandler.isFatal(eventHandler.modifiedDamage)) {
|
||||||
eventHandler.modifyEventDamage();
|
eventHandler.modifyEventDamage();
|
||||||
eventHandler.sendAbilityMessage();
|
eventHandler.sendAbilityMessage();
|
||||||
eventHandler.processXPGain(eventHandler.damage * Acrobatics.DODGE_XP_MODIFIER);
|
eventHandler.processXPGain(eventHandler.damage * Acrobatics.DODGE_XP_MODIFIER);
|
||||||
|
@ -34,7 +34,13 @@ public class ArcheryManager {
|
|||||||
|
|
||||||
ArrowTrackingEventHandler eventHandler = new ArrowTrackingEventHandler(this, livingEntity);
|
ArrowTrackingEventHandler eventHandler = new ArrowTrackingEventHandler(this, livingEntity);
|
||||||
|
|
||||||
if (Archery.getRandom().nextInt(1000) < eventHandler.skillModifier) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.archery")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Archery.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.addToTracker();
|
eventHandler.addToTracker();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,7 +58,13 @@ public class ArcheryManager {
|
|||||||
|
|
||||||
DazeEventHandler eventHandler = new DazeEventHandler(this, event, defender);
|
DazeEventHandler eventHandler = new DazeEventHandler(this, event, defender);
|
||||||
|
|
||||||
if (Archery.getRandom().nextInt(2000) < eventHandler.skillModifier) {
|
int randomChance = 2000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.archery")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Archery.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.handleDazeEffect();
|
eventHandler.handleDazeEffect();
|
||||||
eventHandler.sendAbilityMessages();
|
eventHandler.sendAbilityMessages();
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,13 @@ public class Axes {
|
|||||||
int skillLevel = PPa.getSkillLevel(SkillType.AXES);
|
int skillLevel = PPa.getSkillLevel(SkillType.AXES);
|
||||||
int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);
|
int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);
|
||||||
|
|
||||||
if (random.nextInt(2000) <= skillCheck && !entity.isDead()){
|
int randomChance = 2000;
|
||||||
|
|
||||||
|
if (attacker.hasPermission("mcmmo.perks.lucky.axes")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextInt(randomChance) <= skillCheck && !entity.isDead()){
|
||||||
int damage = event.getDamage();
|
int damage = event.getDamage();
|
||||||
|
|
||||||
if (entity instanceof Player){
|
if (entity instanceof Player){
|
||||||
@ -139,7 +145,13 @@ public class Axes {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (random.nextInt(100) <= GREATER_IMPACT_CHANCE) {
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (attacker.hasPermission("mcmmo.perks.lucky.axes")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextInt(randomChance) <= GREATER_IMPACT_CHANCE) {
|
||||||
event.setDamage(event.getDamage() + 2);
|
event.setDamage(event.getDamage() + 2);
|
||||||
target.setVelocity(attacker.getLocation().getDirection().normalize().multiply(GREATER_IMPACT_MULTIPLIER));
|
target.setVelocity(attacker.getLocation().getDirection().normalize().multiply(GREATER_IMPACT_MULTIPLIER));
|
||||||
attacker.sendMessage(LocaleLoader.getString("Axes.Combat.GI.Proc"));
|
attacker.sendMessage(LocaleLoader.getString("Axes.Combat.GI.Proc"));
|
||||||
|
@ -91,7 +91,13 @@ public class Excavation {
|
|||||||
|
|
||||||
for (ExcavationTreasure treasure : treasures) {
|
for (ExcavationTreasure treasure : treasures) {
|
||||||
if (skillLevel >= treasure.getDropLevel()) {
|
if (skillLevel >= treasure.getDropLevel()) {
|
||||||
if (random.nextDouble() * 100 <= treasure.getDropChance()) {
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.excavation")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextDouble() * randomChance <= treasure.getDropChance()) {
|
||||||
xp += treasure.getXp();
|
xp += treasure.getXp();
|
||||||
is.add(treasure.getDrop());
|
is.add(treasure.getDrop());
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,13 @@ public class Fishing {
|
|||||||
if (Config.getInstance().getFishingDropsEnabled() && rewards.size() > 0 && Permissions.getInstance().fishingTreasures(player)) {
|
if (Config.getInstance().getFishingDropsEnabled() && rewards.size() > 0 && Permissions.getInstance().fishingTreasures(player)) {
|
||||||
FishingTreasure treasure = rewards.get(random.nextInt(rewards.size()));
|
FishingTreasure treasure = rewards.get(random.nextInt(rewards.size()));
|
||||||
|
|
||||||
if (random.nextDouble() * 100 <= treasure.getDropChance()) {
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.fishing")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextDouble() * randomChance <= treasure.getDropChance()) {
|
||||||
Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp());
|
Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp());
|
||||||
theCatch.setItemStack(treasure.getDrop());
|
theCatch.setItemStack(treasure.getDrop());
|
||||||
}
|
}
|
||||||
@ -138,8 +144,15 @@ public class Fishing {
|
|||||||
ItemStack fishingResults = theCatch.getItemStack();
|
ItemStack fishingResults = theCatch.getItemStack();
|
||||||
|
|
||||||
player.sendMessage(LocaleLoader.getString("Fishing.ItemFound"));
|
player.sendMessage(LocaleLoader.getString("Fishing.ItemFound"));
|
||||||
|
|
||||||
if (ItemChecks.isArmor(fishingResults) || ItemChecks.isTool(fishingResults)) {
|
if (ItemChecks.isArmor(fishingResults) || ItemChecks.isTool(fishingResults)) {
|
||||||
if (random.nextInt(100) <= ENCHANTMENT_CHANCE && Permissions.getInstance().fishingMagic(player)) {
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.fishing")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextInt(randomChance) <= ENCHANTMENT_CHANCE && Permissions.getInstance().fishingMagic(player)) {
|
||||||
for (Enchantment newEnchant : Enchantment.values()) {
|
for (Enchantment newEnchant : Enchantment.values()) {
|
||||||
if (newEnchant.canEnchantItem(fishingResults)) {
|
if (newEnchant.canEnchantItem(fishingResults)) {
|
||||||
Map<Enchantment, Integer> resultEnchantments = fishingResults.getEnchantments();
|
Map<Enchantment, Integer> resultEnchantments = fishingResults.getEnchantments();
|
||||||
@ -178,7 +191,13 @@ public class Fishing {
|
|||||||
* @param event The event to modify
|
* @param event The event to modify
|
||||||
*/
|
*/
|
||||||
public static void shakeMob(PlayerFishEvent event) {
|
public static void shakeMob(PlayerFishEvent event) {
|
||||||
final int DROP_NUMBER = random.nextInt(100);
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (event.getPlayer().hasPermission("mcmmo.perks.lucky.fishing")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
final int DROP_NUMBER = random.nextInt(randomChance);
|
||||||
|
|
||||||
LivingEntity le = (LivingEntity) event.getCaught();
|
LivingEntity le = (LivingEntity) event.getCaught();
|
||||||
EntityType type = le.getType();
|
EntityType type = le.getType();
|
||||||
|
@ -92,6 +92,12 @@ public class Herbalism {
|
|||||||
|
|
||||||
boolean customPlant = false;
|
boolean customPlant = false;
|
||||||
|
|
||||||
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.herbalism")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case BROWN_MUSHROOM:
|
case BROWN_MUSHROOM:
|
||||||
case RED_MUSHROOM:
|
case RED_MUSHROOM:
|
||||||
@ -107,7 +113,7 @@ public class Herbalism {
|
|||||||
if (b.getType().equals(Material.CACTUS)) {
|
if (b.getType().equals(Material.CACTUS)) {
|
||||||
mat = Material.CACTUS;
|
mat = Material.CACTUS;
|
||||||
if (!mcMMO.placeStore.isTrue(b)) {
|
if (!mcMMO.placeStore.isTrue(b)) {
|
||||||
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(1000) <= herbLevel) {
|
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= herbLevel) {
|
||||||
catciDrops++;
|
catciDrops++;
|
||||||
}
|
}
|
||||||
xp += Config.getInstance().getHerbalismXPCactus();
|
xp += Config.getInstance().getHerbalismXPCactus();
|
||||||
@ -163,7 +169,7 @@ public class Herbalism {
|
|||||||
if (b.getType().equals(Material.SUGAR_CANE_BLOCK)) {
|
if (b.getType().equals(Material.SUGAR_CANE_BLOCK)) {
|
||||||
mat = Material.SUGAR_CANE;
|
mat = Material.SUGAR_CANE;
|
||||||
if (!mcMMO.placeStore.isTrue(b)) {
|
if (!mcMMO.placeStore.isTrue(b)) {
|
||||||
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(1000) <= herbLevel) {
|
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= herbLevel) {
|
||||||
caneDrops++;
|
caneDrops++;
|
||||||
}
|
}
|
||||||
xp += Config.getInstance().getHerbalismXPSugarCane();
|
xp += Config.getInstance().getHerbalismXPSugarCane();
|
||||||
@ -208,7 +214,7 @@ public class Herbalism {
|
|||||||
is = new ItemStack(mat);
|
is = new ItemStack(mat);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(1000) <= herbLevel) {
|
if (herbLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= herbLevel) {
|
||||||
Config configInstance = Config.getInstance();
|
Config configInstance = Config.getInstance();
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@ -321,7 +327,13 @@ public class Herbalism {
|
|||||||
boolean hasSeeds = inventory.contains(Material.SEEDS);
|
boolean hasSeeds = inventory.contains(Material.SEEDS);
|
||||||
Location loc = block.getLocation();
|
Location loc = block.getLocation();
|
||||||
|
|
||||||
if (hasSeeds && PP.getAbilityMode(AbilityType.GREEN_TERRA) || hasSeeds && (herbLevel > MAX_BONUS_LEVEL || random.nextInt(1500) <= herbLevel)) {
|
int randomChance = 1500;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.herbalism")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasSeeds && PP.getAbilityMode(AbilityType.GREEN_TERRA) || hasSeeds && (herbLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= herbLevel)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
Misc.dropItem(loc, new ItemStack(Material.WHEAT));
|
Misc.dropItem(loc, new ItemStack(Material.WHEAT));
|
||||||
@ -350,7 +362,13 @@ public class Herbalism {
|
|||||||
|
|
||||||
player.setItemInHand(new ItemStack(Material.SEEDS, seeds - 1));
|
player.setItemInHand(new ItemStack(Material.SEEDS, seeds - 1));
|
||||||
|
|
||||||
if (skillLevel > MAX_BONUS_LEVEL || random.nextInt(1500) <= skillLevel) {
|
int randomChance = 1500;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.herbalism")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skillLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= skillLevel) {
|
||||||
greenTerraConvert(player, block);
|
greenTerraConvert(player, block);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -307,7 +307,13 @@ public class Mining {
|
|||||||
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING);
|
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING);
|
||||||
int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);
|
int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);
|
||||||
|
|
||||||
if (random.nextInt(1000) <= skillCheck && Permissions.getInstance().miningDoubleDrops(player)) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.mining")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextInt(randomChance) <= skillCheck && Permissions.getInstance().miningDoubleDrops(player)) {
|
||||||
if (player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
if (player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||||
silkTouchDrops(block);
|
silkTouchDrops(block);
|
||||||
}
|
}
|
||||||
|
@ -303,7 +303,13 @@ public class WoodCutting {
|
|||||||
Tree tree = (Tree) block.getState().getData();
|
Tree tree = (Tree) block.getState().getData();
|
||||||
TreeSpecies species = tree.getSpecies();
|
TreeSpecies species = tree.getSpecies();
|
||||||
|
|
||||||
if ((skillLevel > MAX_SKILL_LEVEL || random.nextInt(1000) <= skillLevel) && Permissions.getInstance().woodcuttingDoubleDrops(player)) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
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)) {
|
||||||
Config configInstance = Config.getInstance();
|
Config configInstance = Config.getInstance();
|
||||||
ItemStack item;
|
ItemStack item;
|
||||||
Location location;
|
Location location;
|
||||||
|
@ -104,11 +104,17 @@ public class Repair {
|
|||||||
for (Entry<Enchantment, Integer> enchant : enchants.entrySet()) {
|
for (Entry<Enchantment, Integer> enchant : enchants.entrySet()) {
|
||||||
Enchantment enchantment = enchant.getKey();
|
Enchantment enchantment = enchant.getKey();
|
||||||
|
|
||||||
if (random.nextInt(100) <= getEnchantChance(rank)) {
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.repair")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (random.nextInt(randomChance) <= getEnchantChance(rank)) {
|
||||||
int enchantLevel = enchant.getValue();
|
int enchantLevel = enchant.getValue();
|
||||||
|
|
||||||
if (configInstance.getArcaneForgingDowngradeEnabled() && enchantLevel > 1) {
|
if (configInstance.getArcaneForgingDowngradeEnabled() && enchantLevel > 1) {
|
||||||
if (random.nextInt(100) <= getDowngradeChance(rank)) {
|
if (random.nextInt(randomChance) <= getDowngradeChance(rank)) {
|
||||||
is.addEnchantment(enchantment, --enchantLevel);
|
is.addEnchantment(enchantment, --enchantLevel);
|
||||||
downgraded = true;
|
downgraded = true;
|
||||||
}
|
}
|
||||||
@ -223,7 +229,13 @@ public class Repair {
|
|||||||
|
|
||||||
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.REPAIR);
|
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.REPAIR);
|
||||||
|
|
||||||
if ((skillLevel > MAX_BONUS_LEVEL || random.nextInt(1000) <= skillLevel) && permInstance.repairBonus(player)) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.repair")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((skillLevel > MAX_BONUS_LEVEL || random.nextInt(randomChance) <= skillLevel) && permInstance.repairBonus(player)) {
|
||||||
player.sendMessage(LocaleLoader.getString("Repair.Skills.FeltEasy"));
|
player.sendMessage(LocaleLoader.getString("Repair.Skills.FeltEasy"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,13 @@ public class SwordsManager {
|
|||||||
if (Combat.shouldBeAffected(player, defender)) {
|
if (Combat.shouldBeAffected(player, defender)) {
|
||||||
BleedEventHandler eventHandler = new BleedEventHandler(this, defender);
|
BleedEventHandler eventHandler = new BleedEventHandler(this, defender);
|
||||||
|
|
||||||
if (Swords.getRandom().nextInt(1000) < eventHandler.skillModifier) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.swords")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Swords.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.addBleedTicks();
|
eventHandler.addBleedTicks();
|
||||||
eventHandler.sendAbilityMessages();
|
eventHandler.sendAbilityMessages();
|
||||||
}
|
}
|
||||||
@ -52,7 +58,13 @@ public class SwordsManager {
|
|||||||
if (eventHandler.isHoldingSword()) {
|
if (eventHandler.isHoldingSword()) {
|
||||||
eventHandler.calculateSkillModifier();
|
eventHandler.calculateSkillModifier();
|
||||||
|
|
||||||
if (Swords.getRandom().nextInt(2000) < eventHandler.skillModifier) {
|
int randomChance = 2000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.swords")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Swords.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.dealDamage();
|
eventHandler.dealDamage();
|
||||||
eventHandler.sendAbilityMessages();
|
eventHandler.sendAbilityMessages();
|
||||||
}
|
}
|
||||||
@ -66,7 +78,7 @@ public class SwordsManager {
|
|||||||
|
|
||||||
SerratedStrikesEventHandler eventHandler = new SerratedStrikesEventHandler(this, target, damage);
|
SerratedStrikesEventHandler eventHandler = new SerratedStrikesEventHandler(this, target, damage);
|
||||||
|
|
||||||
eventHandler.applyAbilityEffects();
|
eventHandler.applyAbilityEffects();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int getSkillLevel() {
|
protected int getSkillLevel() {
|
||||||
|
@ -41,7 +41,13 @@ public class TamingManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (skillLevel >= Taming.FAST_FOOD_SERVICE_ACTIVATION_LEVEL) {
|
if (skillLevel >= Taming.FAST_FOOD_SERVICE_ACTIVATION_LEVEL) {
|
||||||
if (Taming.getRandom().nextInt(100) < Taming.FAST_FOOD_SERVICE_ACTIVATION_CHANCE) {
|
int randomChance = 100;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.taming")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Taming.getRandom().nextInt(randomChance) < Taming.FAST_FOOD_SERVICE_ACTIVATION_CHANCE) {
|
||||||
FastFoodServiceEventHandler eventHandler = new FastFoodServiceEventHandler(wolf);
|
FastFoodServiceEventHandler eventHandler = new FastFoodServiceEventHandler(wolf);
|
||||||
|
|
||||||
eventHandler.modifyHealth(damage);
|
eventHandler.modifyHealth(damage);
|
||||||
@ -78,7 +84,13 @@ public class TamingManager {
|
|||||||
|
|
||||||
GoreEventHandler eventHandler = new GoreEventHandler(this, event);
|
GoreEventHandler eventHandler = new GoreEventHandler(this, event);
|
||||||
|
|
||||||
if (Taming.getRandom().nextInt(1000) < eventHandler.skillModifier) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.taming")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Taming.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.modifyEventDamage();
|
eventHandler.modifyEventDamage();
|
||||||
eventHandler.applyBleed();
|
eventHandler.applyBleed();
|
||||||
eventHandler.sendAbilityMessage();
|
eventHandler.sendAbilityMessage();
|
||||||
|
@ -36,7 +36,13 @@ public class UnarmedManager {
|
|||||||
if (eventHandler.isHoldingItem()) {
|
if (eventHandler.isHoldingItem()) {
|
||||||
eventHandler.calculateSkillModifier();
|
eventHandler.calculateSkillModifier();
|
||||||
|
|
||||||
if (Unarmed.getRandom().nextInt(3000) < eventHandler.skillModifier) {
|
int randomChance = 3000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.unarmed")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Unarmed.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
if (!hasIronGrip(defender)) {
|
if (!hasIronGrip(defender)) {
|
||||||
eventHandler.sendAbilityMessage();
|
eventHandler.sendAbilityMessage();
|
||||||
eventHandler.handleDisarm();
|
eventHandler.handleDisarm();
|
||||||
@ -58,7 +64,13 @@ public class UnarmedManager {
|
|||||||
|
|
||||||
DeflectEventHandler eventHandler = new DeflectEventHandler(this, event);
|
DeflectEventHandler eventHandler = new DeflectEventHandler(this, event);
|
||||||
|
|
||||||
if (Unarmed.getRandom().nextInt(2000) < eventHandler.skillModifier) {
|
int randomChance = 2000;
|
||||||
|
|
||||||
|
if (player.hasPermission("mcmmo.perks.lucky.unarmed")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Unarmed.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.cancelEvent();
|
eventHandler.cancelEvent();
|
||||||
eventHandler.sendAbilityMessage();
|
eventHandler.sendAbilityMessage();
|
||||||
}
|
}
|
||||||
@ -93,7 +105,13 @@ public class UnarmedManager {
|
|||||||
|
|
||||||
IronGripEventHandler eventHandler = new IronGripEventHandler(this, defender);
|
IronGripEventHandler eventHandler = new IronGripEventHandler(this, defender);
|
||||||
|
|
||||||
if (Unarmed.getRandom().nextInt(1000) < eventHandler.skillModifier) {
|
int randomChance = 1000;
|
||||||
|
|
||||||
|
if (defender.hasPermission("mcmmo.perks.lucky.unarmed")) {
|
||||||
|
randomChance = (int) (randomChance * 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Unarmed.getRandom().nextInt(randomChance) < eventHandler.skillModifier) {
|
||||||
eventHandler.sendAbilityMessages();
|
eventHandler.sendAbilityMessages();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -194,6 +194,58 @@ permissions:
|
|||||||
mcmmo.perks.xp.50percentboost:
|
mcmmo.perks.xp.50percentboost:
|
||||||
default: false
|
default: false
|
||||||
description: Mulitplies incoming XP by 1.5
|
description: Mulitplies incoming XP by 1.5
|
||||||
|
mcmmo.perks.lucky.*:
|
||||||
|
default: false
|
||||||
|
description: Gives all abilities & skills a 25% better chance to activate.
|
||||||
|
children:
|
||||||
|
mcmmo.perks.lucky.acrobatics: false
|
||||||
|
mcmmo.perks.lucky.archery: false
|
||||||
|
mcmmo.perks.lucky.axes: false
|
||||||
|
mcmmo.perks.lucky.excavation: false
|
||||||
|
mcmmo.perks.lucky.fishing: false
|
||||||
|
mcmmo.perks.lucky.herbalism: false
|
||||||
|
mcmmo.perks.lucky.mining: false
|
||||||
|
mcmmo.perks.lucky.repair: false
|
||||||
|
mcmmo.perks.lucky.swords: false
|
||||||
|
mcmmo.perks.lucky.taming: false
|
||||||
|
mcmmo.perks.lucky.unarmed: false
|
||||||
|
mcmmo.perks.lucky.woodcutting: false
|
||||||
|
mcmmo.perks.lucky.acrobatics:
|
||||||
|
default: false
|
||||||
|
description: Gives Acrobatics abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.archery:
|
||||||
|
default: false
|
||||||
|
description: Gives Archery abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.axes:
|
||||||
|
default: false
|
||||||
|
description: Gives Axes abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.excavation:
|
||||||
|
default: false
|
||||||
|
description: Gives Excavation abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.fishing:
|
||||||
|
default: false
|
||||||
|
description: Gives Fishing abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.herbalism:
|
||||||
|
default: false
|
||||||
|
description: Gives Herbalism abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.mining:
|
||||||
|
default: false
|
||||||
|
description: Gives Mining abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.repair:
|
||||||
|
default: false
|
||||||
|
description: Gives Repair abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.swords:
|
||||||
|
default: false
|
||||||
|
description: Gives Swords abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.taming:
|
||||||
|
default: false
|
||||||
|
description: Gives Taming abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.unarmed:
|
||||||
|
default: false
|
||||||
|
description: Gives Unarmed abilities & skills a 25% better chance to activate.
|
||||||
|
mcmmo.perks.lucky.woodcutting:
|
||||||
|
default: false
|
||||||
|
description: Gives Woodcutting abilities & skills a 25% better chance to activate.
|
||||||
mcmmo.bypass.*:
|
mcmmo.bypass.*:
|
||||||
default: false
|
default: false
|
||||||
description: Implies all bypass permissions.
|
description: Implies all bypass permissions.
|
||||||
|
Loading…
Reference in New Issue
Block a user