Accept class id or enum parameters for balance configurations.
This commit is contained in:
@@ -61,6 +61,7 @@ import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.base.ClassId;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
@@ -1113,18 +1114,18 @@ public final class Config
|
||||
public static String TITLE_FOR_PVP_AMOUNT4;
|
||||
public static String TITLE_FOR_PVP_AMOUNT5;
|
||||
public static boolean CHAT_ADMIN;
|
||||
public static Map<Integer, Float> PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<Integer, Float> PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@@ -2536,7 +2537,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2549,7 +2551,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2562,7 +2565,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2575,7 +2579,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2588,7 +2593,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2601,7 +2607,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2614,7 +2621,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2627,7 +2635,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2640,7 +2649,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2653,7 +2663,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2666,7 +2677,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2679,7 +2691,8 @@ public final class Config
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.put(Integer.parseInt(classInfo[0].trim()), Float.parseFloat(classInfo[1].trim()));
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1540,21 +1540,21 @@ public final class Formulas
|
||||
if (skill.isMagic())
|
||||
{
|
||||
// Magical Skill PvP
|
||||
pvpAttack = attacker.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DAMAGE, 1) * Config.PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId().getId(), 1f);
|
||||
pvpDefense = target.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DEFENCE, 1) * Config.PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId().getId(), 1f);
|
||||
pvpAttack = attacker.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DAMAGE, 1) * Config.PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f);
|
||||
pvpDefense = target.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DEFENCE, 1) * Config.PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Physical Skill PvP
|
||||
pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DAMAGE, 1) * Config.PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId().getId(), 1f);
|
||||
pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DEFENCE, 1) * Config.PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId().getId(), 1f);
|
||||
pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DAMAGE, 1) * Config.PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f);
|
||||
pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DEFENCE, 1) * Config.PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Autoattack PvP
|
||||
pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DAMAGE, 1) * Config.PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId().getId(), 1f);
|
||||
pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DEFENCE, 1) * Config.PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId().getId(), 1f);
|
||||
pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DAMAGE, 1) * Config.PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f);
|
||||
pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DEFENCE, 1) * Config.PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f);
|
||||
}
|
||||
|
||||
return 1 + (pvpAttack - pvpDefense);
|
||||
@@ -1586,23 +1586,23 @@ public final class Formulas
|
||||
if (skill.isMagic())
|
||||
{
|
||||
// Magical Skill PvE
|
||||
pveAttack = attacker.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId().getId(), 1f));
|
||||
pveDefense = target.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId().getId(), 1f));
|
||||
pveAttack = attacker.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||
pveDefense = target.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stats.PVE_RAID_MAGICAL_SKILL_DEFENCE, 1) : 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Physical Skill PvE
|
||||
pveAttack = attacker.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId().getId(), 1f));
|
||||
pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId().getId(), 1f));
|
||||
pveAttack = attacker.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||
pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stats.PVE_RAID_PHYSICAL_SKILL_DEFENCE, 1) : 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Autoattack PvE
|
||||
pveAttack = attacker.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId().getId(), 1f));
|
||||
pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId().getId(), 1f));
|
||||
pveAttack = attacker.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (attackerPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(attackerPlayer.getClassId(), 1f));
|
||||
pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (targetPlayer == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(targetPlayer.getClassId(), 1f));
|
||||
pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stats.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user