Addition of raidboss bonus damage effects.
This commit is contained in:
parent
8c77306a5c
commit
9682338343
@ -257,8 +257,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -257,8 +257,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -257,8 +257,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -261,8 +261,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -264,8 +264,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -265,8 +265,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -265,8 +265,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -265,8 +265,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -255,8 +255,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -255,8 +255,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -256,8 +256,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1628,6 +1629,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1635,6 +1637,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1643,10 +1646,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -98,13 +98,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -259,8 +259,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1629,6 +1630,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1636,6 +1638,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1644,10 +1647,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -111,13 +111,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -259,8 +259,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1629,6 +1630,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1636,6 +1638,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1644,10 +1647,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -111,13 +111,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -261,8 +261,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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.
|
||||
PvePhysicalSkillDamageBonus: Physical skill damage stat against 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.
|
||||
PveRaidPhysicalAttackDamageBonus: Autoattack damage stat against Raidbosses. (l2jmobius)
|
||||
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.
|
||||
PvpMagicalSkillDamageBonus: Magical skill damage stat against 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 pveDefense;
|
||||
final double pveRaidAttack;
|
||||
final double pveRaidDefense;
|
||||
|
||||
double pvePenalty = 1;
|
||||
@ -1629,6 +1630,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -1636,6 +1638,7 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1644,10 +1647,11 @@ public class Formulas
|
||||
// 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));
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -112,13 +112,16 @@ public enum Stat
|
||||
|
||||
// PVE BONUS
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE("pvePhysDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillsDmg"),
|
||||
PVE_PHYSICAL_SKILL_DAMAGE("pvePhysSkillDmg"),
|
||||
PVE_MAGICAL_SKILL_DAMAGE("pveMagicalDmg"),
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE("pvePhysDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillsDef"),
|
||||
PVE_PHYSICAL_SKILL_DEFENCE("pvePhysSkillDef"),
|
||||
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_SKILL_DEFENCE("pveRaidPhysSkillsDef"),
|
||||
PVE_RAID_PHYSICAL_SKILL_DEFENCE("pveRaidPhysSkillDef"),
|
||||
PVE_RAID_MAGICAL_SKILL_DEFENCE("pveRaidMagicalDef"),
|
||||
|
||||
// FIXED BONUS
|
||||
|
@ -257,8 +257,11 @@ public class EffectMasterHandler
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDamageBonus", PvePhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvePhysicalSkillDefenceBonus", PvePhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDamageBonus", PveRaidMagicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidMagicalSkillDefenceBonus", PveRaidMagicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDamageBonus", PveRaidPhysicalAttackDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalAttackDefenceBonus", PveRaidPhysicalAttackDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDamageBonus", PveRaidPhysicalSkillDamageBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PveRaidPhysicalSkillDefenceBonus", PveRaidPhysicalSkillDefenceBonus::new);
|
||||
EffectHandler.getInstance().registerHandler("PvpMagicalSkillDamageBonus", PvpMagicalSkillDamageBonus::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
Loading…
Reference in New Issue
Block a user