Addition of raidboss bonus damage effects.
This commit is contained in:
		| @@ -257,8 +257,11 @@ public class EffectMasterHandler | ||||
| 		EffectHandler.getInstance().registerHandler("PvePhysicalAttackDefenceBonus", PvePhysicalAttackDefenceBonus::new); | ||||
| 		EffectHandler.getInstance().registerHandler("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
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment