Addition of custom class balance configurations.
This commit is contained in:
		
							
								
								
									
										24
									
								
								L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Custom/ClassBalance.ini
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								L2J_Mobius_Classic_2.1_Zaken/dist/game/config/Custom/ClassBalance.ini
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
# ---------------------------------------------------------------------------
 | 
			
		||||
# Class Balance
 | 
			
		||||
# ---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# Multiply attack and defence based on player class.
 | 
			
		||||
# Example: ClassId1,Multiplier1;ClassId2,Multiplier2;...
 | 
			
		||||
 | 
			
		||||
PveMagicalSkillDamageMultipiers = 
 | 
			
		||||
PvpMagicalSkillDamageMultipiers = 
 | 
			
		||||
 | 
			
		||||
PveMagicalSkillDefenceMultipiers = 
 | 
			
		||||
PvpMagicalSkillDefenceMultipiers = 
 | 
			
		||||
 | 
			
		||||
PvePhysicalSkillDamageMultipiers = 
 | 
			
		||||
PvpPhysicalSkillDamageMultipiers = 
 | 
			
		||||
 | 
			
		||||
PvePhysicalSkillDefenceMultipiers = 
 | 
			
		||||
PvpPhysicalSkillDefenceMultipiers = 
 | 
			
		||||
 | 
			
		||||
PvePhysicalAttackDamageMultipiers = 
 | 
			
		||||
PvpPhysicalAttackDamageMultipiers = 
 | 
			
		||||
 | 
			
		||||
PvePhysicalAttackDefenceMultipiers = 
 | 
			
		||||
PvpPhysicalAttackDefenceMultipiers = 
 | 
			
		||||
@@ -43,6 +43,7 @@ import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Properties;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.concurrent.ConcurrentHashMap;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
import java.util.regex.Pattern;
 | 
			
		||||
@@ -112,6 +113,7 @@ public final class Config
 | 
			
		||||
	private static final String CUSTOM_BANKING_CONFIG_FILE = "./config/Custom/Banking.ini";
 | 
			
		||||
	private static final String CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE = "./config/Custom/ChampionMonsters.ini";
 | 
			
		||||
	private static final String CUSTOM_CHAT_MODERATION_CONFIG_FILE = "./config/Custom/ChatModeration.ini";
 | 
			
		||||
	private static final String CUSTOM_CLASS_BALANCE_CONFIG_FILE = "./config/Custom/ClassBalance.ini";
 | 
			
		||||
	private static final String CUSTOM_COMMUNITY_BOARD_CONFIG_FILE = "./config/Custom/CommunityBoard.ini";
 | 
			
		||||
	private static final String CUSTOM_CUSTOM_MAIL_MANAGER_CONFIG_FILE = "./config/Custom/CustomMailManager.ini";
 | 
			
		||||
	private static final String CUSTOM_DUALBOX_CHECK_CONFIG_FILE = "./config/Custom/DualboxCheck.ini";
 | 
			
		||||
@@ -1052,6 +1054,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 boolean MULTILANG_ENABLE;
 | 
			
		||||
	public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
 | 
			
		||||
	public static String MULTILANG_DEFAULT;
 | 
			
		||||
@@ -2379,6 +2393,166 @@ public final class Config
 | 
			
		||||
			
 | 
			
		||||
			CHAT_ADMIN = ChatModeration.getBoolean("ChatAdmin", true);
 | 
			
		||||
			
 | 
			
		||||
			// Load ClassBalance config file (if exists)
 | 
			
		||||
			final PropertiesParser ClassBalance = new PropertiesParser(CUSTOM_CLASS_BALANCE_CONFIG_FILE);
 | 
			
		||||
			
 | 
			
		||||
			final String[] pveMagicalSkillDamageMultipiers = ClassBalance.getString("PveMagicalSkillDamageMultipiers", "").trim().split(";");
 | 
			
		||||
			PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pveMagicalSkillDamageMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pveMagicalSkillDamageMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvpMagicalSkillDamageMultipiers = ClassBalance.getString("PvpMagicalSkillDamageMultipiers", "").trim().split(";");
 | 
			
		||||
			PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvpMagicalSkillDamageMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvpMagicalSkillDamageMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pveMagicalSkillDefenceMultipiers = ClassBalance.getString("PveMagicalSkillDefenceMultipiers", "").trim().split(";");
 | 
			
		||||
			PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pveMagicalSkillDefenceMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pveMagicalSkillDefenceMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvpMagicalSkillDefenceMultipiers = ClassBalance.getString("PvpMagicalSkillDefenceMultipiers", "").trim().split(";");
 | 
			
		||||
			PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvpMagicalSkillDefenceMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvpMagicalSkillDefenceMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvePhysicalSkillDamageMultipiers = ClassBalance.getString("PvePhysicalSkillDamageMultipiers", "").trim().split(";");
 | 
			
		||||
			PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvePhysicalSkillDamageMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvePhysicalSkillDamageMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvpPhysicalSkillDamageMultipiers = ClassBalance.getString("PvpPhysicalSkillDamageMultipiers", "").trim().split(";");
 | 
			
		||||
			PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvpPhysicalSkillDamageMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvpPhysicalSkillDamageMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvePhysicalSkillDefenceMultipiers = ClassBalance.getString("PvePhysicalSkillDefenceMultipiers", "").trim().split(";");
 | 
			
		||||
			PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvePhysicalSkillDefenceMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvePhysicalSkillDefenceMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvpPhysicalSkillDefenceMultipiers = ClassBalance.getString("PvpPhysicalSkillDefenceMultipiers", "").trim().split(";");
 | 
			
		||||
			PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvpPhysicalSkillDefenceMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvpPhysicalSkillDefenceMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvePhysicalAttackDamageMultipiers = ClassBalance.getString("PvePhysicalAttackDamageMultipiers", "").trim().split(";");
 | 
			
		||||
			PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvePhysicalAttackDamageMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvePhysicalAttackDamageMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvpPhysicalAttackDamageMultipiers = ClassBalance.getString("PvpPhysicalAttackDamageMultipiers", "").trim().split(";");
 | 
			
		||||
			PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvpPhysicalAttackDamageMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvpPhysicalAttackDamageMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvePhysicalAttackDefenceMultipiers = ClassBalance.getString("PvePhysicalAttackDefenceMultipiers", "").trim().split(";");
 | 
			
		||||
			PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvePhysicalAttackDefenceMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvePhysicalAttackDefenceMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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[] pvpPhysicalAttackDefenceMultipiers = ClassBalance.getString("PvpPhysicalAttackDefenceMultipiers", "").trim().split(";");
 | 
			
		||||
			PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.clear();
 | 
			
		||||
			if (pvpPhysicalAttackDefenceMultipiers.length > 0)
 | 
			
		||||
			{
 | 
			
		||||
				for (String info : pvpPhysicalAttackDefenceMultipiers)
 | 
			
		||||
				{
 | 
			
		||||
					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()));
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			// Load CommunityBoard config file (if exists)
 | 
			
		||||
			final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
 | 
			
		||||
			
 | 
			
		||||
 
 | 
			
		||||
@@ -1527,6 +1527,8 @@ public final class Formulas
 | 
			
		||||
	
 | 
			
		||||
	public static double calculatePvpPveBonus(Creature attacker, Creature target, Skill skill, boolean crit)
 | 
			
		||||
	{
 | 
			
		||||
		final PlayerInstance player = attacker.getActingPlayer();
 | 
			
		||||
		
 | 
			
		||||
		// PvP bonus
 | 
			
		||||
		if (attacker.isPlayable() && target.isPlayable())
 | 
			
		||||
		{
 | 
			
		||||
@@ -1537,21 +1539,21 @@ public final class Formulas
 | 
			
		||||
				if (skill.isMagic())
 | 
			
		||||
				{
 | 
			
		||||
					// Magical Skill PvP
 | 
			
		||||
					pvpAttack = attacker.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DAMAGE, 1);
 | 
			
		||||
					pvpDefense = target.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DEFENCE, 1);
 | 
			
		||||
					pvpAttack = attacker.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DAMAGE, 1) * Config.PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f);
 | 
			
		||||
					pvpDefense = target.getStat().getValue(Stats.PVP_MAGICAL_SKILL_DEFENCE, 1) * Config.PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f);
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
					// Physical Skill PvP
 | 
			
		||||
					pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DAMAGE, 1);
 | 
			
		||||
					pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DEFENCE, 1);
 | 
			
		||||
					pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DAMAGE, 1) * Config.PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f);
 | 
			
		||||
					pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_SKILL_DEFENCE, 1) * Config.PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				// Autoattack PvP
 | 
			
		||||
				pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DAMAGE, 1);
 | 
			
		||||
				pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DEFENCE, 1);
 | 
			
		||||
				pvpAttack = attacker.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DAMAGE, 1) * Config.PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f);
 | 
			
		||||
				pvpDefense = target.getStat().getValue(Stats.PVP_PHYSICAL_ATTACK_DEFENCE, 1) * Config.PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			return 1 + (pvpAttack - pvpDefense);
 | 
			
		||||
@@ -1565,9 +1567,9 @@ public final class Formulas
 | 
			
		||||
			final double pveRaidDefense;
 | 
			
		||||
			
 | 
			
		||||
			double pvePenalty = 1;
 | 
			
		||||
			if (!target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_DMG_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 2))
 | 
			
		||||
			if (!target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_DMG_PENALTY) && (player != null) && ((target.getLevel() - player.getLevel()) >= 2))
 | 
			
		||||
			{
 | 
			
		||||
				final int lvlDiff = target.getLevel() - attacker.getActingPlayer().getLevel() - 1;
 | 
			
		||||
				final int lvlDiff = target.getLevel() - player.getLevel() - 1;
 | 
			
		||||
				if (lvlDiff >= Config.NPC_SKILL_DMG_PENALTY.size())
 | 
			
		||||
				{
 | 
			
		||||
					pvePenalty = Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size() - 1);
 | 
			
		||||
@@ -1583,23 +1585,23 @@ public final class Formulas
 | 
			
		||||
				if (skill.isMagic())
 | 
			
		||||
				{
 | 
			
		||||
					// Magical Skill PvE
 | 
			
		||||
					pveAttack = attacker.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DAMAGE, 1);
 | 
			
		||||
					pveDefense = target.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DEFENCE, 1);
 | 
			
		||||
					pveAttack = attacker.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DAMAGE, 1) * (player == null ? 1 : Config.PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f));
 | 
			
		||||
					pveDefense = target.getStat().getValue(Stats.PVE_MAGICAL_SKILL_DEFENCE, 1) * (player == null ? 1 : Config.PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 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);
 | 
			
		||||
					pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DEFENCE, 1);
 | 
			
		||||
					pveAttack = attacker.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DAMAGE, 1) * (player == null ? 1 : Config.PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f));
 | 
			
		||||
					pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_SKILL_DEFENCE, 1) * (player == null ? 1 : Config.PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 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);
 | 
			
		||||
				pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DEFENCE, 1);
 | 
			
		||||
				pveAttack = attacker.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DAMAGE, 1) * (player == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f));
 | 
			
		||||
				pveDefense = target.getStat().getValue(Stats.PVE_PHYSICAL_ATTACK_DEFENCE, 1) * (player == null ? 1 : Config.PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS.getOrDefault(player.getClassId().getId(), 1f));
 | 
			
		||||
				pveRaidDefense = attacker.isRaid() ? attacker.getStat().getValue(Stats.PVE_RAID_PHYSICAL_ATTACK_DEFENCE, 1) : 1;
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user