Addition of raidboss bonus damage effects.
This commit is contained in:
@@ -257,8 +257,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -227,8 +227,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -257,8 +257,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -227,8 +227,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -257,8 +257,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -227,8 +227,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -261,8 +261,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -231,8 +231,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -264,8 +264,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -234,8 +234,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -265,8 +265,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -235,8 +235,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -265,8 +265,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -235,8 +235,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -265,8 +265,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -235,8 +235,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -255,8 +255,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -225,8 +225,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -255,8 +255,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -225,8 +225,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -256,8 +256,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -226,8 +226,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1605,6 +1605,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1628,6 +1629,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1635,6 +1637,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1643,10 +1646,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -98,13 +98,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -259,8 +259,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -229,8 +229,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1606,6 +1606,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1629,6 +1630,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1636,6 +1638,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1644,10 +1647,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -111,13 +111,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -259,8 +259,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -229,8 +229,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1606,6 +1606,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1629,6 +1630,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1636,6 +1638,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1644,10 +1647,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -111,13 +111,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -261,8 +261,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalAttackDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalAttackDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidPhysicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidPhysicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -231,8 +231,11 @@ PvePhysicalAttackDamageBonus: Autoattack damage stat against NPCs.
|
|||||||
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
PvePhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from NPCs.
|
||||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
PvePhysicalSkillDamageBonus: Physical skill damage stat against NPCs.
|
||||||
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
PvePhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from NPCs.
|
||||||
|
PveRaidMagicalSkillDamageBonus: Magical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalAttackDefenceBonus: Autoattack defence stat when taking damage from Raidboss NPCs.
|
||||||
|
PveRaidPhysicalSkillDamageBonus: Physical skill damage stat against Raidbosses. (l2jmobius)
|
||||||
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
PveRaidPhysicalSkillDefenceBonus: Physical skill defence stat when taking damage from Raidboss NPCs.
|
||||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
PvpMagicalSkillDamageBonus: Magical skill damage stat against Players and Summons.
|
||||||
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
PvpMagicalSkillDefenceBonus: Magical skill defence stat when taking damage from Players and Summons.
|
||||||
|
|||||||
@@ -1606,6 +1606,7 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
final double pveAttack;
|
final double pveAttack;
|
||||||
final double pveDefense;
|
final double pveDefense;
|
||||||
|
final double pveRaidAttack;
|
||||||
final double pveRaidDefense;
|
final double pveRaidDefense;
|
||||||
|
|
||||||
double pvePenalty = 1;
|
double pvePenalty = 1;
|
||||||
@@ -1629,6 +1630,7 @@ public class Formulas
|
|||||||
// Magical Skill PvE
|
// Magical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1636,6 +1638,7 @@ public class Formulas
|
|||||||
// Physical Skill PvE
|
// Physical Skill PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1644,10 +1647,11 @@ public class Formulas
|
|||||||
// Autoattack PvE
|
// Autoattack PvE
|
||||||
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
pveAttack = attacker.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||||
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
pveDefense = target.getStat().getValue(Stat.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||||
|
pveRaidAttack = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DAMAGE, 1) : 1;
|
||||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stat.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.max(0.05, (1 + (pveAttack - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
return Math.max(0.05, (1 + ((pveAttack * pveRaidAttack) - (pveDefense * pveRaidDefense))) * pvePenalty); // Bonus should not be negative.
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -112,13 +112,16 @@ public enum Stat
|
|||||||
|
|
||||||
// PVE BONUS
|
// PVE BONUS
|
||||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||||
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
PVE_MAGICAL_SKILL_DEFENCE("pveMagicalDef"),
|
||||||
|
PVE_RAID_PHYSICAL_ATTACK_DAMAGE("pveRaidPhysDmg"),
|
||||||
|
PVE_RAID_PHYSICAL_SKILL_DAMAGE("pveRaidPhysSkillDmg"),
|
||||||
|
PVE_RAID_MAGICAL_SKILL_DAMAGE("pveRaidMagicalDmg"),
|
||||||
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
PVE_RAID_PHYSICAL_ATTACK_DEFENCE("pveRaidPhysDef"),
|
||||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||||
|
|
||||||
// FIXED BONUS
|
// FIXED BONUS
|
||||||
|
|||||||
@@ -257,8 +257,11 @@ public class EffectMasterHandler
|
|||||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||||
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::new);
|
||||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDefenceBonus", PvpMagicalSkillDefenceBonus::new);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.stats.Stat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
|
public class PveRaidMagicalSkillDamageBonus extends AbstractStatPercentEffect
|
||||||
|
{
|
||||||
|
public PveRaidMagicalSkillDamageBonus(StatSet params)
|
||||||
|
{
|
||||||
|
super(params, Stat.PVE_RAID_MAGICAL_SKILL_DAMAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user