Addition of blow skill damage and heal balance configurations.
This commit is contained in:
@@ -1126,6 +1126,11 @@ public final class Config
|
||||
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 Map<ClassId, Float> PVE_BLOW_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DAMAGE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@@ -2696,6 +2701,76 @@ public final class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] pveBlowSkillDamageMultipliers = ClassBalance.getString("PveBlowSkillDamageMultipliers", "").trim().split(";");
|
||||
PVE_BLOW_SKILL_DAMAGE_MULTIPLIERS.clear();
|
||||
if (pveBlowSkillDamageMultipliers.length > 0)
|
||||
{
|
||||
for (String info : pveBlowSkillDamageMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_BLOW_SKILL_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] pvpBlowSkillDamageMultipliers = ClassBalance.getString("PvpBlowSkillDamageMultipliers", "").trim().split(";");
|
||||
PVP_BLOW_SKILL_DAMAGE_MULTIPLIERS.clear();
|
||||
if (pvpBlowSkillDamageMultipliers.length > 0)
|
||||
{
|
||||
for (String info : pvpBlowSkillDamageMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_BLOW_SKILL_DAMAGE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] pveBlowSkillDefenceMultipliers = ClassBalance.getString("PveBlowSkillDefenceMultipliers", "").trim().split(";");
|
||||
PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS.clear();
|
||||
if (pveBlowSkillDefenceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : pveBlowSkillDefenceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] pvpBlowSkillDefenceMultipliers = ClassBalance.getString("PvpBlowSkillDefenceMultipliers", "").trim().split(";");
|
||||
PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS.clear();
|
||||
if (pvpBlowSkillDefenceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : pvpBlowSkillDefenceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] playerHealingSkillMultipliers = ClassBalance.getString("PlayerHealingSkillMultipliers", "").trim().split(";");
|
||||
PLAYER_HEALING_SKILL_MULTIPLIERS.clear();
|
||||
if (playerHealingSkillMultipliers.length > 0)
|
||||
{
|
||||
for (String info : playerHealingSkillMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split(",");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
PLAYER_HEALING_SKILL_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@@ -120,11 +120,21 @@ public final class Formulas
|
||||
// power *= 1 - (Math.min(target.getLevel() - attacker.getLevel(), 9) / 10);
|
||||
// }
|
||||
|
||||
double balanceMod = 1;
|
||||
if (attacker.isPlayable())
|
||||
{
|
||||
balanceMod = target.isPlayable() ? Config.PVP_BLOW_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attacker.getActingPlayer().getClassId(), 1f) : Config.PVE_BLOW_SKILL_DAMAGE_MULTIPLIERS.getOrDefault(attacker.getActingPlayer().getClassId(), 1f);
|
||||
}
|
||||
if (target.isPlayable())
|
||||
{
|
||||
defence *= attacker.isPlayable() ? Config.PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(target.getActingPlayer().getClassId(), 1f) : Config.PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS.getOrDefault(target.getActingPlayer().getClassId(), 1f);
|
||||
}
|
||||
|
||||
// ........................_____________________________Initial Damage____________________________...___________Position Additional Damage___________..._CriticalAdd_
|
||||
// ATTACK CALCULATION 77 * [(skillpower+patk) * 0.666 * cdbonus * cdPosBonusHalf * cdVulnHalf * ss + isBack0.2Side0.05 * (skillpower+patk*ss) * random + 6 * cd_patk] / pdef
|
||||
// ````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^
|
||||
final double baseMod = (77 * (((power + attacker.getPAtk()) * 0.666) + (isPosition * (power + attacker.getPAtk()) * randomMod) + (6 * cdPatk))) / defence;
|
||||
final double damage = baseMod * ssmod * cdMult * weaponTraitMod * generalTraitMod * weaknessMod * attributeMod * randomMod * pvpPveMod;
|
||||
final double damage = baseMod * ssmod * cdMult * weaponTraitMod * generalTraitMod * weaknessMod * attributeMod * randomMod * pvpPveMod * balanceMod;
|
||||
|
||||
return damage;
|
||||
}
|
||||
|
Reference in New Issue
Block a user