Minor code cleanup.

Thanks to nasseka.
This commit is contained in:
MobiusDevelopment
2022-02-01 00:19:29 +00:00
parent 29e0e749e3
commit a15695b7fa
600 changed files with 1013 additions and 1013 deletions

View File

@@ -71,7 +71,7 @@ public class Cp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); amount = Math.min((effected.getMaxCp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Hp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); amount = Math.min((effected.getMaxHp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Mp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); amount = Math.min((effected.getMaxMp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -171,7 +171,7 @@ public class Q00032_AnObviousLie extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1, true))
{ {
qs.setCond(4); qs.setCond(4);
} }

View File

@@ -294,7 +294,7 @@ public class Q00038_DragonFangs extends Quest
case LIZARDMAN_SENTINEL: case LIZARDMAN_SENTINEL:
{ {
final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc); final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, FEATHER.getId(), 1, FEATHER.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, FEATHER.getId(), 1, FEATHER.getCount(), 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -330,7 +330,7 @@ public class Q00177_SplitDestiny extends Quest
{ {
if (CommonUtil.contains(GIANTS_HAND_MONSTERS, npc.getId())) if (CommonUtil.contains(GIANTS_HAND_MONSTERS, npc.getId()))
{ {
if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1, true))
{ {
qs.setCond(3, true); qs.setCond(3, true);
} }
@@ -350,7 +350,7 @@ public class Q00177_SplitDestiny extends Quest
{ {
if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId())) if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId()))
{ {
if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1, true))
{ {
qs.setCond(6, true); qs.setCond(6, true);
} }

View File

@@ -146,7 +146,7 @@ public class Q00278_HomeSecurity extends Quest
case 18905: // Farm Ravager (Crazy) case 18905: // Farm Ravager (Crazy)
{ {
final int itemCount = (getRandom(1000) < 486) ? getRandom(6) + 1 : getRandom(5) + 1; final int itemCount = (getRandom(1000) < 486) ? getRandom(6) + 1 : getRandom(5) + 1;
if (giveItemRandomly(qs.getPlayer(), npc, SEL_MAHUM_MANE, itemCount, SEL_MAHUM_MANE_COUNT, 1.0, true)) if (giveItemRandomly(qs.getPlayer(), npc, SEL_MAHUM_MANE, itemCount, SEL_MAHUM_MANE_COUNT, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -192,11 +192,11 @@ public class Q00371_ShrieksOfGhosts extends Quest
final int random = getRandom(1000); final int random = getRandom(1000);
if (random < info.getFirstChance()) if (random < info.getFirstChance())
{ {
giveItemRandomly(killer, npc, ANCIENT_ASH_URN, 1, 0, 1.0, true); giveItemRandomly(killer, npc, ANCIENT_ASH_URN, 1, 0, 1, true);
} }
else if (random < info.getSecondChance()) else if (random < info.getSecondChance())
{ {
giveItemRandomly(killer, npc, ANCIENT_PORCELAIN, 1, 0, 1.0, true); giveItemRandomly(killer, npc, ANCIENT_PORCELAIN, 1, 0, 1, true);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }

View File

@@ -108,7 +108,7 @@ public class Q00377_ExplorationOfTheGiantsCavePart2 extends Quest
final int npcId = npc.getId(); final int npcId = npc.getId();
if (MOBS1.containsKey(npcId)) if (MOBS1.containsKey(npcId))
{ {
giveItemRandomly(qs.getPlayer(), npc, TITAN_ANCIENT_BOOK, (getRandom(1000) < MOBS1.get(npcId)) ? 3 : 2, 0, 1.0, true); giveItemRandomly(qs.getPlayer(), npc, TITAN_ANCIENT_BOOK, (getRandom(1000) < MOBS1.get(npcId)) ? 3 : 2, 0, 1, true);
} }
else else
{ {

View File

@@ -166,7 +166,7 @@ public class Q00483_IntendedTactic extends Quest
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }
if ((qs != null) && qs.isCond(2) && (CommonUtil.contains(BOSSES, npc.getId())) && giveItemRandomly(killer, npc, TRUTTHFUL_ONES_BLOOD, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(2) && (CommonUtil.contains(BOSSES, npc.getId())) && giveItemRandomly(killer, npc, TRUTTHFUL_ONES_BLOOD, 1, 10, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -255,7 +255,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1, true);
} }
break; break;
} }
@@ -263,7 +263,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1, true);
} }
break; break;
} }
@@ -271,7 +271,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1, true);
} }
break; break;
} }

View File

@@ -135,7 +135,7 @@ public class Q00642_APowerfulPrimevalCreature extends Quest
} }
else else
{ {
giveItemRandomly(qs.getPlayer(), npc, DINOSAUR_EGG, 1, 0, 1.0, true); giveItemRandomly(qs.getPlayer(), npc, DINOSAUR_EGG, 1, 0, 1, true);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }

View File

@@ -204,7 +204,7 @@ public class Q10292_SevenSignsGirlOfDoubt extends Quest
if (CommonUtil.contains(MOBS, npc.getId())) if (CommonUtil.contains(MOBS, npc.getId()))
{ {
final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1, true))
{ {
qs.setCond(4, true); qs.setCond(4, true);
} }

View File

@@ -188,7 +188,7 @@ public class Q10740_NeverForget extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getQuestState(killer, false); final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1) && giveItemRandomly(killer, npc, UNNAMED_RELICS, 1, 20, 1.0, true)) if ((qs != null) && qs.isCond(1) && giveItemRandomly(killer, npc, UNNAMED_RELICS, 1, 20, 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -161,7 +161,7 @@ public class Q10741_ADraughtForTheCold extends Quest
} }
case KIKU: case KIKU:
{ {
giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1.0, true); giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1, true);
break; break;
} }
} }

View File

@@ -172,7 +172,7 @@ public class Q10743_StrangeFungus extends Quest
} }
case EVOLVED_GROWLER: case EVOLVED_GROWLER:
{ {
if (giveItemRandomly(killer, npc, PECULIAR_MUSHROOM_SPORE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PECULIAR_MUSHROOM_SPORE, 1, 10, 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -148,11 +148,11 @@ public class Q10744_StrongerThanSteel extends Quest
{ {
if (npc.getId() == TREANT) if (npc.getId() == TREANT)
{ {
giveItemRandomly(killer, npc, TREANT_LEAF, 1, 20, 1.0, true); giveItemRandomly(killer, npc, TREANT_LEAF, 1, 20, 1, true);
} }
else if (npc.getId() == LEAFIE) else if (npc.getId() == LEAFIE)
{ {
giveItemRandomly(killer, npc, LEAFIE_LEAF, 1, 15, 1.0, true); giveItemRandomly(killer, npc, LEAFIE_LEAF, 1, 15, 1, true);
} }
if ((getQuestItemsCount(killer, TREANT_LEAF) >= 20) && (getQuestItemsCount(killer, LEAFIE_LEAF) >= 15)) if ((getQuestItemsCount(killer, TREANT_LEAF) >= 20) && (getQuestItemsCount(killer, LEAFIE_LEAF) >= 15))

View File

@@ -1419,7 +1419,7 @@ public class Formulas
} }
case SHIELD_DEFENSE_PERFECT_BLOCK: case SHIELD_DEFENSE_PERFECT_BLOCK:
{ {
return 1.; return 1;
} }
} }

View File

@@ -53,7 +53,7 @@ public class MAttackFinalizer implements IStatFunction
} }
// Calculate modifiers Magic Attack // Calculate modifiers Magic Attack
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072); baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072);
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_MATK : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_MATK : Double.MAX_VALUE);
} }

View File

@@ -40,8 +40,8 @@ public class MAttackSpeedFinalizer implements IStatFunction
baseValue *= Config.CHAMPION_SPD_ATK; baseValue *= Config.CHAMPION_SPD_ATK;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1.; final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1;
baseValue *= witBonus * chaBonus; baseValue *= witBonus * chaBonus;
return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_MATK_SPEED : Double.MAX_VALUE); return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_MATK_SPEED : Double.MAX_VALUE);
} }

View File

@@ -42,7 +42,7 @@ public class MCritRateFinalizer implements IStatFunction
baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS); baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS);
} }
final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1.; final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * witBonus * 10), 0, creature.isPlayable() ? creature.getStat().getValue(Stat.MAX_MAGIC_CRITICAL_RATE, Config.MAX_MCRIT_RATE) : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * witBonus * 10), 0, creature.isPlayable() ? creature.getStat().getValue(Stat.MAX_MAGIC_CRITICAL_RATE, Config.MAX_MCRIT_RATE) : Double.MAX_VALUE);
} }

View File

@@ -86,7 +86,7 @@ public class MDefenseFinalizer implements IStatFunction
baseValue *= Config.RAID_MDEFENCE_MULTIPLIER; baseValue *= Config.RAID_MDEFENCE_MULTIPLIER;
} }
final double bonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1.; final double bonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1;
baseValue *= bonus * creature.getLevelMod(); baseValue *= bonus * creature.getLevelMod();
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);
} }

View File

@@ -40,8 +40,8 @@ public class MaxCpFinalizer implements IStatFunction
{ {
baseValue = player.getTemplate().getBaseCpMax(player.getLevel()); baseValue = player.getTemplate().getBaseCpMax(player.getLevel());
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1.; final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1;
baseValue *= conBonus * chaBonus; baseValue *= conBonus * chaBonus;
return Stat.defaultValue(creature, stat, baseValue); return Stat.defaultValue(creature, stat, baseValue);
} }

View File

@@ -54,8 +54,8 @@ public class MaxHpFinalizer implements IStatFunction
} }
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1.; final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1;
baseValue *= conBonus * chaBonus; baseValue *= conBonus * chaBonus;
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);

View File

@@ -52,8 +52,8 @@ public class MaxMpFinalizer implements IStatFunction
} }
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double menBonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1.; final double menBonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1;
baseValue *= menBonus * chaBonus; baseValue *= menBonus * chaBonus;
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);

View File

@@ -51,7 +51,7 @@ public class PAttackFinalizer implements IStatFunction
{ {
baseValue *= Config.RAID_PATTACK_MULTIPLIER; baseValue *= Config.RAID_PATTACK_MULTIPLIER;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= BaseStat.STR.calcBonus(creature) * creature.getLevelMod() * chaBonus; baseValue *= BaseStat.STR.calcBonus(creature) * creature.getLevelMod() * chaBonus;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_PATK : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_PATK : Double.MAX_VALUE);
} }

View File

@@ -38,8 +38,8 @@ public class PAttackSpeedFinalizer implements IStatFunction
{ {
baseValue *= Config.CHAMPION_SPD_ATK; baseValue *= Config.CHAMPION_SPD_ATK;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1.; final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1;
baseValue *= dexBonus * chaBonus; baseValue *= dexBonus * chaBonus;
return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_PATK_SPEED : Double.MAX_VALUE); return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_PATK_SPEED : Double.MAX_VALUE);
} }

View File

@@ -41,7 +41,7 @@ public class PCriticalRateFinalizer implements IStatFunction
// Enchanted legs bonus // Enchanted legs bonus
baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS); baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS);
} }
final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1.; final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * dexBonus * 10), 0, creature.isPlayable() ? Config.MAX_PCRIT_RATE : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * dexBonus * 10), 0, creature.isPlayable() ? Config.MAX_PCRIT_RATE : Double.MAX_VALUE);
} }

View File

@@ -34,6 +34,6 @@ public class VampiricChanceFinalizer implements IStatFunction
final double amount = creature.getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * 100; final double amount = creature.getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * 100;
final double vampiricSum = creature.getStat().getVampiricSum(); final double vampiricSum = creature.getStat().getVampiricSum();
return amount > 0 ? Stat.defaultValue(creature, stat, Math.min(1.0, vampiricSum / amount / 100)) : 0; return amount > 0 ? Stat.defaultValue(creature, stat, Math.min(1, vampiricSum / amount / 100)) : 0;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Cp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); amount = Math.min((effected.getMaxCp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Hp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); amount = Math.min((effected.getMaxHp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Mp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); amount = Math.min((effected.getMaxMp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -171,7 +171,7 @@ public class Q00032_AnObviousLie extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1, true))
{ {
qs.setCond(4); qs.setCond(4);
} }

View File

@@ -294,7 +294,7 @@ public class Q00038_DragonFangs extends Quest
case LIZARDMAN_SENTINEL: case LIZARDMAN_SENTINEL:
{ {
final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc); final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, FEATHER.getId(), 1, FEATHER.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, FEATHER.getId(), 1, FEATHER.getCount(), 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -330,7 +330,7 @@ public class Q00177_SplitDestiny extends Quest
{ {
if (CommonUtil.contains(GIANTS_HAND_MONSTERS, npc.getId())) if (CommonUtil.contains(GIANTS_HAND_MONSTERS, npc.getId()))
{ {
if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1, true))
{ {
qs.setCond(3, true); qs.setCond(3, true);
} }
@@ -350,7 +350,7 @@ public class Q00177_SplitDestiny extends Quest
{ {
if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId())) if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId()))
{ {
if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1, true))
{ {
qs.setCond(6, true); qs.setCond(6, true);
} }

View File

@@ -146,7 +146,7 @@ public class Q00278_HomeSecurity extends Quest
case 18905: // Farm Ravager (Crazy) case 18905: // Farm Ravager (Crazy)
{ {
final int itemCount = (getRandom(1000) < 486) ? getRandom(6) + 1 : getRandom(5) + 1; final int itemCount = (getRandom(1000) < 486) ? getRandom(6) + 1 : getRandom(5) + 1;
if (giveItemRandomly(qs.getPlayer(), npc, SEL_MAHUM_MANE, itemCount, SEL_MAHUM_MANE_COUNT, 1.0, true)) if (giveItemRandomly(qs.getPlayer(), npc, SEL_MAHUM_MANE, itemCount, SEL_MAHUM_MANE_COUNT, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -192,11 +192,11 @@ public class Q00371_ShrieksOfGhosts extends Quest
final int random = getRandom(1000); final int random = getRandom(1000);
if (random < info.getFirstChance()) if (random < info.getFirstChance())
{ {
giveItemRandomly(killer, npc, ANCIENT_ASH_URN, 1, 0, 1.0, true); giveItemRandomly(killer, npc, ANCIENT_ASH_URN, 1, 0, 1, true);
} }
else if (random < info.getSecondChance()) else if (random < info.getSecondChance())
{ {
giveItemRandomly(killer, npc, ANCIENT_PORCELAIN, 1, 0, 1.0, true); giveItemRandomly(killer, npc, ANCIENT_PORCELAIN, 1, 0, 1, true);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }

View File

@@ -108,7 +108,7 @@ public class Q00377_ExplorationOfTheGiantsCavePart2 extends Quest
final int npcId = npc.getId(); final int npcId = npc.getId();
if (MOBS1.containsKey(npcId)) if (MOBS1.containsKey(npcId))
{ {
giveItemRandomly(qs.getPlayer(), npc, TITAN_ANCIENT_BOOK, (getRandom(1000) < MOBS1.get(npcId)) ? 3 : 2, 0, 1.0, true); giveItemRandomly(qs.getPlayer(), npc, TITAN_ANCIENT_BOOK, (getRandom(1000) < MOBS1.get(npcId)) ? 3 : 2, 0, 1, true);
} }
else else
{ {

View File

@@ -166,7 +166,7 @@ public class Q00483_IntendedTactic extends Quest
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }
if ((qs != null) && qs.isCond(2) && (CommonUtil.contains(BOSSES, npc.getId())) && giveItemRandomly(killer, npc, TRUTTHFUL_ONES_BLOOD, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(2) && (CommonUtil.contains(BOSSES, npc.getId())) && giveItemRandomly(killer, npc, TRUTTHFUL_ONES_BLOOD, 1, 10, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -255,7 +255,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1, true);
} }
break; break;
} }
@@ -263,7 +263,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1, true);
} }
break; break;
} }
@@ -271,7 +271,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1, true);
} }
break; break;
} }

View File

@@ -135,7 +135,7 @@ public class Q00642_APowerfulPrimevalCreature extends Quest
} }
else else
{ {
giveItemRandomly(qs.getPlayer(), npc, DINOSAUR_EGG, 1, 0, 1.0, true); giveItemRandomly(qs.getPlayer(), npc, DINOSAUR_EGG, 1, 0, 1, true);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }

View File

@@ -162,7 +162,7 @@ public class Q00826_InSearchOfTheSecretWeapon extends Quest
for (Player member : members) for (Player member : members)
{ {
final QuestState qs = getQuestState(member, false); final QuestState qs = getQuestState(member, false);
if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1.0, true)) if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -187,7 +187,7 @@ public class Q00827_EinhasadsOrder extends Quest
for (Player member : members) for (Player member : members)
{ {
final QuestState qs = getQuestState(member, false); final QuestState qs = getQuestState(member, false);
if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1.0, true)) if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -153,7 +153,7 @@ public class Q00831_SayhasScheme extends Quest
for (Player member : members) for (Player member : members)
{ {
final QuestState qs = getQuestState(member, false); final QuestState qs = getQuestState(member, false);
if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -146,7 +146,7 @@ public class Q00835_PitiableMelisa extends Quest
public void actionForEachPlayer(Player player, Npc npc, boolean isSummon) public void actionForEachPlayer(Player player, Npc npc, boolean isSummon)
{ {
final QuestState qs = getQuestState(player, false); final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1, true))
{ {
qs.setCond(3, true); qs.setCond(3, true);
} }

View File

@@ -204,7 +204,7 @@ public class Q10292_SevenSignsGirlOfDoubt extends Quest
if (CommonUtil.contains(MOBS, npc.getId())) if (CommonUtil.contains(MOBS, npc.getId()))
{ {
final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1, true))
{ {
qs.setCond(4, true); qs.setCond(4, true);
} }

View File

@@ -188,7 +188,7 @@ public class Q10740_NeverForget extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getQuestState(killer, false); final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1) && giveItemRandomly(killer, npc, UNNAMED_RELICS, 1, 20, 1.0, true)) if ((qs != null) && qs.isCond(1) && giveItemRandomly(killer, npc, UNNAMED_RELICS, 1, 20, 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -161,7 +161,7 @@ public class Q10741_ADraughtForTheCold extends Quest
} }
case KIKU: case KIKU:
{ {
giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1.0, true); giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1, true);
break; break;
} }
} }

View File

@@ -172,7 +172,7 @@ public class Q10743_StrangeFungus extends Quest
} }
case EVOLVED_GROWLER: case EVOLVED_GROWLER:
{ {
if (giveItemRandomly(killer, npc, PECULIAR_MUSHROOM_SPORE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PECULIAR_MUSHROOM_SPORE, 1, 10, 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -148,11 +148,11 @@ public class Q10744_StrongerThanSteel extends Quest
{ {
if (npc.getId() == TREANT) if (npc.getId() == TREANT)
{ {
giveItemRandomly(killer, npc, TREANT_LEAF, 1, 20, 1.0, true); giveItemRandomly(killer, npc, TREANT_LEAF, 1, 20, 1, true);
} }
else if (npc.getId() == LEAFIE) else if (npc.getId() == LEAFIE)
{ {
giveItemRandomly(killer, npc, LEAFIE_LEAF, 1, 15, 1.0, true); giveItemRandomly(killer, npc, LEAFIE_LEAF, 1, 15, 1, true);
} }
if ((getQuestItemsCount(killer, TREANT_LEAF) >= 20) && (getQuestItemsCount(killer, LEAFIE_LEAF) >= 15)) if ((getQuestItemsCount(killer, TREANT_LEAF) >= 20) && (getQuestItemsCount(killer, LEAFIE_LEAF) >= 15))

View File

@@ -1419,7 +1419,7 @@ public class Formulas
} }
case SHIELD_DEFENSE_PERFECT_BLOCK: case SHIELD_DEFENSE_PERFECT_BLOCK:
{ {
return 1.; return 1;
} }
} }

View File

@@ -53,7 +53,7 @@ public class MAttackFinalizer implements IStatFunction
} }
// Calculate modifiers Magic Attack // Calculate modifiers Magic Attack
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072); baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072);
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_MATK : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_MATK : Double.MAX_VALUE);
} }

View File

@@ -40,8 +40,8 @@ public class MAttackSpeedFinalizer implements IStatFunction
baseValue *= Config.CHAMPION_SPD_ATK; baseValue *= Config.CHAMPION_SPD_ATK;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1.; final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1;
baseValue *= witBonus * chaBonus; baseValue *= witBonus * chaBonus;
return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_MATK_SPEED : Double.MAX_VALUE); return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_MATK_SPEED : Double.MAX_VALUE);
} }

View File

@@ -42,7 +42,7 @@ public class MCritRateFinalizer implements IStatFunction
baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS); baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS);
} }
final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1.; final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * witBonus * 10), 0, creature.isPlayable() ? creature.getStat().getValue(Stat.MAX_MAGIC_CRITICAL_RATE, Config.MAX_MCRIT_RATE) : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * witBonus * 10), 0, creature.isPlayable() ? creature.getStat().getValue(Stat.MAX_MAGIC_CRITICAL_RATE, Config.MAX_MCRIT_RATE) : Double.MAX_VALUE);
} }

View File

@@ -86,7 +86,7 @@ public class MDefenseFinalizer implements IStatFunction
baseValue *= Config.RAID_MDEFENCE_MULTIPLIER; baseValue *= Config.RAID_MDEFENCE_MULTIPLIER;
} }
final double bonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1.; final double bonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1;
baseValue *= bonus * creature.getLevelMod(); baseValue *= bonus * creature.getLevelMod();
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);
} }

View File

@@ -40,8 +40,8 @@ public class MaxCpFinalizer implements IStatFunction
{ {
baseValue = player.getTemplate().getBaseCpMax(player.getLevel()); baseValue = player.getTemplate().getBaseCpMax(player.getLevel());
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1.; final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1;
baseValue *= conBonus * chaBonus; baseValue *= conBonus * chaBonus;
return Stat.defaultValue(creature, stat, baseValue); return Stat.defaultValue(creature, stat, baseValue);
} }

View File

@@ -54,8 +54,8 @@ public class MaxHpFinalizer implements IStatFunction
} }
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1.; final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1;
baseValue *= conBonus * chaBonus; baseValue *= conBonus * chaBonus;
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);

View File

@@ -52,8 +52,8 @@ public class MaxMpFinalizer implements IStatFunction
} }
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double menBonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1.; final double menBonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1;
baseValue *= menBonus * chaBonus; baseValue *= menBonus * chaBonus;
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);

View File

@@ -51,7 +51,7 @@ public class PAttackFinalizer implements IStatFunction
{ {
baseValue *= Config.RAID_PATTACK_MULTIPLIER; baseValue *= Config.RAID_PATTACK_MULTIPLIER;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= BaseStat.STR.calcBonus(creature) * creature.getLevelMod() * chaBonus; baseValue *= BaseStat.STR.calcBonus(creature) * creature.getLevelMod() * chaBonus;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_PATK : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_PATK : Double.MAX_VALUE);
} }

View File

@@ -38,8 +38,8 @@ public class PAttackSpeedFinalizer implements IStatFunction
{ {
baseValue *= Config.CHAMPION_SPD_ATK; baseValue *= Config.CHAMPION_SPD_ATK;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1.; final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1;
baseValue *= dexBonus * chaBonus; baseValue *= dexBonus * chaBonus;
return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_PATK_SPEED : Double.MAX_VALUE); return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_PATK_SPEED : Double.MAX_VALUE);
} }

View File

@@ -41,7 +41,7 @@ public class PCriticalRateFinalizer implements IStatFunction
// Enchanted legs bonus // Enchanted legs bonus
baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS); baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS);
} }
final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1.; final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * dexBonus * 10), 0, creature.isPlayable() ? Config.MAX_PCRIT_RATE : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * dexBonus * 10), 0, creature.isPlayable() ? Config.MAX_PCRIT_RATE : Double.MAX_VALUE);
} }

View File

@@ -34,6 +34,6 @@ public class VampiricChanceFinalizer implements IStatFunction
final double amount = creature.getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * 100; final double amount = creature.getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * 100;
final double vampiricSum = creature.getStat().getVampiricSum(); final double vampiricSum = creature.getStat().getVampiricSum();
return amount > 0 ? Stat.defaultValue(creature, stat, Math.min(1.0, vampiricSum / amount / 100)) : 0; return amount > 0 ? Stat.defaultValue(creature, stat, Math.min(1, vampiricSum / amount / 100)) : 0;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Cp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); amount = Math.min((effected.getMaxCp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Hp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); amount = Math.min((effected.getMaxHp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Mp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); amount = Math.min((effected.getMaxMp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -171,7 +171,7 @@ public class Q00032_AnObviousLie extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1, true))
{ {
qs.setCond(4); qs.setCond(4);
} }

View File

@@ -321,7 +321,7 @@ public class Q00177_SplitDestiny extends Quest
} }
case 2: case 2:
{ {
if ((npc.getId() == VAMPIRICE_BERISE) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1.0, true)) if ((npc.getId() == VAMPIRICE_BERISE) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1, true))
{ {
qs.setCond(3, true); qs.setCond(3, true);
} }
@@ -338,7 +338,7 @@ public class Q00177_SplitDestiny extends Quest
} }
case 5: case 5:
{ {
if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId()) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1.0, true)) if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId()) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1, true))
{ {
qs.setCond(6, true); qs.setCond(6, true);
} }

View File

@@ -146,7 +146,7 @@ public class Q00278_HomeSecurity extends Quest
case 18905: // Farm Ravager (Crazy) case 18905: // Farm Ravager (Crazy)
{ {
final int itemCount = (getRandom(1000) < 486) ? getRandom(6) + 1 : getRandom(5) + 1; final int itemCount = (getRandom(1000) < 486) ? getRandom(6) + 1 : getRandom(5) + 1;
if (giveItemRandomly(qs.getPlayer(), npc, SEL_MAHUM_MANE, itemCount, SEL_MAHUM_MANE_COUNT, 1.0, true)) if (giveItemRandomly(qs.getPlayer(), npc, SEL_MAHUM_MANE, itemCount, SEL_MAHUM_MANE_COUNT, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -193,11 +193,11 @@ public class Q00371_ShrieksOfGhosts extends Quest
final int random = getRandom(1000); final int random = getRandom(1000);
if (random < info.getFirstChance()) if (random < info.getFirstChance())
{ {
giveItemRandomly(killer, npc, ANCIENT_ASH_URN, 1, 0, 1.0, true); giveItemRandomly(killer, npc, ANCIENT_ASH_URN, 1, 0, 1, true);
} }
else if (random < info.getSecondChance()) else if (random < info.getSecondChance())
{ {
giveItemRandomly(killer, npc, ANCIENT_PORCELAIN, 1, 0, 1.0, true); giveItemRandomly(killer, npc, ANCIENT_PORCELAIN, 1, 0, 1, true);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }

View File

@@ -166,7 +166,7 @@ public class Q00483_IntendedTactic extends Quest
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }
if ((qs != null) && qs.isCond(2) && (CommonUtil.contains(BOSSES, npc.getId())) && giveItemRandomly(killer, npc, TRUTTHFUL_ONES_BLOOD, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(2) && (CommonUtil.contains(BOSSES, npc.getId())) && giveItemRandomly(killer, npc, TRUTTHFUL_ONES_BLOOD, 1, 10, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -255,7 +255,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1, true);
} }
break; break;
} }
@@ -263,7 +263,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1, true);
} }
break; break;
} }
@@ -271,7 +271,7 @@ public class Q00501_ProofOfClanAlliance extends Quest
{ {
if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6)) if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
{ {
giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1.0, true); giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1, true);
} }
break; break;
} }

View File

@@ -135,7 +135,7 @@ public class Q00642_APowerfulPrimevalCreature extends Quest
} }
else else
{ {
giveItemRandomly(qs.getPlayer(), npc, DINOSAUR_EGG, 1, 0, 1.0, true); giveItemRandomly(qs.getPlayer(), npc, DINOSAUR_EGG, 1, 0, 1, true);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }

View File

@@ -162,7 +162,7 @@ public class Q00826_InSearchOfTheSecretWeapon extends Quest
for (Player member : members) for (Player member : members)
{ {
final QuestState qs = getQuestState(member, false); final QuestState qs = getQuestState(member, false);
if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1.0, true)) if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, ASHEN_CERTIFICATE, 1, 8, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -187,7 +187,7 @@ public class Q00827_EinhasadsOrder extends Quest
for (Player member : members) for (Player member : members)
{ {
final QuestState qs = getQuestState(member, false); final QuestState qs = getQuestState(member, false);
if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1.0, true)) if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, REVOLUTIONARIES_MARK_PIECE, 1, 30, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -153,7 +153,7 @@ public class Q00831_SayhasScheme extends Quest
for (Player member : members) for (Player member : members)
{ {
final QuestState qs = getQuestState(member, false); final QuestState qs = getQuestState(member, false);
if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(1) && member.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(member, npc, DESTROYED_MARK_FRAGMENT, 1, 10, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -146,7 +146,7 @@ public class Q00835_PitiableMelisa extends Quest
public void actionForEachPlayer(Player player, Npc npc, boolean isSummon) public void actionForEachPlayer(Player player, Npc npc, boolean isSummon)
{ {
final QuestState qs = getQuestState(player, false); final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1.0, true)) if ((qs != null) && qs.isCond(2) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && giveItemRandomly(player, npc, ICE_CRYSTAL_SHARD, 1, 10, 1, true))
{ {
qs.setCond(3, true); qs.setCond(3, true);
} }

View File

@@ -148,7 +148,7 @@ public class Q00926_30DaySearchOperation extends Quest
case LOST_SOUL_DIMENSION: case LOST_SOUL_DIMENSION:
case ROAMING_VENGEANCE: case ROAMING_VENGEANCE:
{ {
if (giveItemRandomly(killer, npc, SPIRIT_FRAGMENTS, 1, 100, 1.0, true)) if (giveItemRandomly(killer, npc, SPIRIT_FRAGMENTS, 1, 100, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -192,7 +192,7 @@ public class Q00928_100DaySubjugationOperation extends Quest
case LOST_DIMENSION_EVIL: case LOST_DIMENSION_EVIL:
case ROAMING_VENGEANCE: case ROAMING_VENGEANCE:
{ {
if (giveItemRandomly(killer, npc, ATTACKERS_SOUL, 1, 100, 1.0, true)) if (giveItemRandomly(killer, npc, ATTACKERS_SOUL, 1, 100, 1, true))
{ {
qs.setCond(2, true); qs.setCond(2, true);
} }

View File

@@ -196,7 +196,7 @@ public class Q10292_SevenSignsGirlOfDoubt extends Quest
if (CommonUtil.contains(MOBS, npc.getId())) if (CommonUtil.contains(MOBS, npc.getId()))
{ {
final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1, true))
{ {
qs.setCond(4, true); qs.setCond(4, true);
} }

View File

@@ -188,7 +188,7 @@ public class Q10740_NeverForget extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getQuestState(killer, false); final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1) && giveItemRandomly(killer, npc, UNNAMED_RELICS, 1, 20, 1.0, true)) if ((qs != null) && qs.isCond(1) && giveItemRandomly(killer, npc, UNNAMED_RELICS, 1, 20, 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -161,7 +161,7 @@ public class Q10741_ADraughtForTheCold extends Quest
} }
case KIKU: case KIKU:
{ {
giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1.0, true); giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1, true);
break; break;
} }
} }

View File

@@ -172,7 +172,7 @@ public class Q10743_StrangeFungus extends Quest
} }
case EVOLVED_GROWLER: case EVOLVED_GROWLER:
{ {
if (giveItemRandomly(killer, npc, PECULIAR_MUSHROOM_SPORE, 1, 10, 1.0, true)) if (giveItemRandomly(killer, npc, PECULIAR_MUSHROOM_SPORE, 1, 10, 1, true))
{ {
qs.setCond(2); qs.setCond(2);
} }

View File

@@ -148,11 +148,11 @@ public class Q10744_StrongerThanSteel extends Quest
{ {
if (npc.getId() == TREANT) if (npc.getId() == TREANT)
{ {
giveItemRandomly(killer, npc, TREANT_LEAF, 1, 20, 1.0, true); giveItemRandomly(killer, npc, TREANT_LEAF, 1, 20, 1, true);
} }
else if (npc.getId() == LEAFIE) else if (npc.getId() == LEAFIE)
{ {
giveItemRandomly(killer, npc, LEAFIE_LEAF, 1, 15, 1.0, true); giveItemRandomly(killer, npc, LEAFIE_LEAF, 1, 15, 1, true);
} }
if ((getQuestItemsCount(killer, TREANT_LEAF) >= 20) && (getQuestItemsCount(killer, LEAFIE_LEAF) >= 15)) if ((getQuestItemsCount(killer, TREANT_LEAF) >= 20) && (getQuestItemsCount(killer, LEAFIE_LEAF) >= 15))

View File

@@ -1419,7 +1419,7 @@ public class Formulas
} }
case SHIELD_DEFENSE_PERFECT_BLOCK: case SHIELD_DEFENSE_PERFECT_BLOCK:
{ {
return 1.; return 1;
} }
} }

View File

@@ -53,7 +53,7 @@ public class MAttackFinalizer implements IStatFunction
} }
// Calculate modifiers Magic Attack // Calculate modifiers Magic Attack
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072); baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072);
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_MATK : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_MATK : Double.MAX_VALUE);
} }

View File

@@ -40,8 +40,8 @@ public class MAttackSpeedFinalizer implements IStatFunction
baseValue *= Config.CHAMPION_SPD_ATK; baseValue *= Config.CHAMPION_SPD_ATK;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1.; final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1;
baseValue *= witBonus * chaBonus; baseValue *= witBonus * chaBonus;
return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_MATK_SPEED : Double.MAX_VALUE); return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_MATK_SPEED : Double.MAX_VALUE);
} }

View File

@@ -42,7 +42,7 @@ public class MCritRateFinalizer implements IStatFunction
baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS); baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS);
} }
final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1.; final double witBonus = creature.getWIT() > 0 ? BaseStat.WIT.calcBonus(creature) : 1;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * witBonus * 10), 0, creature.isPlayable() ? creature.getStat().getValue(Stat.MAX_MAGIC_CRITICAL_RATE, Config.MAX_MCRIT_RATE) : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * witBonus * 10), 0, creature.isPlayable() ? creature.getStat().getValue(Stat.MAX_MAGIC_CRITICAL_RATE, Config.MAX_MCRIT_RATE) : Double.MAX_VALUE);
} }

View File

@@ -86,7 +86,7 @@ public class MDefenseFinalizer implements IStatFunction
baseValue *= Config.RAID_MDEFENCE_MULTIPLIER; baseValue *= Config.RAID_MDEFENCE_MULTIPLIER;
} }
final double bonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1.; final double bonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1;
baseValue *= bonus * creature.getLevelMod(); baseValue *= bonus * creature.getLevelMod();
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);
} }

View File

@@ -40,8 +40,8 @@ public class MaxCpFinalizer implements IStatFunction
{ {
baseValue = player.getTemplate().getBaseCpMax(player.getLevel()); baseValue = player.getTemplate().getBaseCpMax(player.getLevel());
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1.; final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1;
baseValue *= conBonus * chaBonus; baseValue *= conBonus * chaBonus;
return Stat.defaultValue(creature, stat, baseValue); return Stat.defaultValue(creature, stat, baseValue);
} }

View File

@@ -54,8 +54,8 @@ public class MaxHpFinalizer implements IStatFunction
} }
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1.; final double conBonus = creature.getCON() > 0 ? BaseStat.CON.calcBonus(creature) : 1;
baseValue *= conBonus * chaBonus; baseValue *= conBonus * chaBonus;
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);

View File

@@ -52,8 +52,8 @@ public class MaxMpFinalizer implements IStatFunction
} }
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double menBonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1.; final double menBonus = creature.getMEN() > 0 ? BaseStat.MEN.calcBonus(creature) : 1;
baseValue *= menBonus * chaBonus; baseValue *= menBonus * chaBonus;
return defaultValue(creature, stat, baseValue); return defaultValue(creature, stat, baseValue);

View File

@@ -51,7 +51,7 @@ public class PAttackFinalizer implements IStatFunction
{ {
baseValue *= Config.RAID_PATTACK_MULTIPLIER; baseValue *= Config.RAID_PATTACK_MULTIPLIER;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= BaseStat.STR.calcBonus(creature) * creature.getLevelMod() * chaBonus; baseValue *= BaseStat.STR.calcBonus(creature) * creature.getLevelMod() * chaBonus;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_PATK : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue), 0, creature.isPlayable() ? Config.MAX_PATK : Double.MAX_VALUE);
} }

View File

@@ -38,8 +38,8 @@ public class PAttackSpeedFinalizer implements IStatFunction
{ {
baseValue *= Config.CHAMPION_SPD_ATK; baseValue *= Config.CHAMPION_SPD_ATK;
} }
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.; final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1.; final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1;
baseValue *= dexBonus * chaBonus; baseValue *= dexBonus * chaBonus;
return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_PATK_SPEED : Double.MAX_VALUE); return validateValue(creature, defaultValue(creature, stat, baseValue), 1, creature.isPlayable() ? Config.MAX_PATK_SPEED : Double.MAX_VALUE);
} }

View File

@@ -41,7 +41,7 @@ public class PCriticalRateFinalizer implements IStatFunction
// Enchanted legs bonus // Enchanted legs bonus
baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS); baseValue += calcEnchantBodyPart(creature, ItemTemplate.SLOT_LEGS);
} }
final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1.; final double dexBonus = creature.getDEX() > 0 ? BaseStat.DEX.calcBonus(creature) : 1;
return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * dexBonus * 10), 0, creature.isPlayable() ? Config.MAX_PCRIT_RATE : Double.MAX_VALUE); return validateValue(creature, Stat.defaultValue(creature, stat, baseValue * dexBonus * 10), 0, creature.isPlayable() ? Config.MAX_PCRIT_RATE : Double.MAX_VALUE);
} }

View File

@@ -34,6 +34,6 @@ public class VampiricChanceFinalizer implements IStatFunction
final double amount = creature.getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * 100; final double amount = creature.getStat().getValue(Stat.ABSORB_DAMAGE_PERCENT, 0) * 100;
final double vampiricSum = creature.getStat().getVampiricSum(); final double vampiricSum = creature.getStat().getVampiricSum();
return amount > 0 ? Stat.defaultValue(creature, stat, Math.min(1.0, vampiricSum / amount / 100)) : 0; return amount > 0 ? Stat.defaultValue(creature, stat, Math.min(1, vampiricSum / amount / 100)) : 0;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Cp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); amount = Math.min((effected.getMaxCp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Hp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); amount = Math.min((effected.getMaxHp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -71,7 +71,7 @@ public class Mp extends AbstractEffect
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); amount = Math.min((effected.getMaxMp() * basicAmount) / 100, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -171,7 +171,7 @@ public class Q00032_AnObviousLie extends Quest
public String onKill(Npc npc, Player killer, boolean isSummon) public String onKill(Npc npc, Player killer, boolean isSummon)
{ {
final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc); final QuestState qs = getRandomPartyMemberState(killer, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1.0, true)) if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, MEDICINAL_HERB.getId(), 1, MEDICINAL_HERB.getCount(), 1, true))
{ {
qs.setCond(4); qs.setCond(4);
} }

View File

@@ -321,7 +321,7 @@ public class Q00177_SplitDestiny extends Quest
} }
case 2: case 2:
{ {
if ((npc.getId() == VAMPIRICE_BERISE) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1.0, true)) if ((npc.getId() == VAMPIRICE_BERISE) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1, true))
{ {
qs.setCond(3, true); qs.setCond(3, true);
} }
@@ -338,7 +338,7 @@ public class Q00177_SplitDestiny extends Quest
} }
case 5: case 5:
{ {
if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId()) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1.0, true)) if (CommonUtil.contains(GIANTS_FOOT_MONSTERS, npc.getId()) && giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1, true))
{ {
qs.setCond(6, true); qs.setCond(6, true);
} }

Some files were not shown because too many files have changed in this diff Show More