Addition of raidboss bonus damage effects.

This commit is contained in:
MobiusDevelopment 2020-04-25 11:14:05 +00:00
parent 8c77306a5c
commit 9682338343
105 changed files with 1650 additions and 60 deletions

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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