mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-19 16:52:25 +00:00
fix: include base skill damage in FlyingKick, Kick, RoundKick, and Bash
GetBaseSkillDamage() fetches each skill's configured base damage via EQ::skills::GetBaseDamage() (which reads the corresponding Combat rule) into `base` at line 35, but FlyingKick, Kick, RoundKick, and Bash all return only (ac_bonus + skill_bonus), discarding `base` entirely. The rules KickBaseDamage, RoundKickBaseDamage, FlyingKickBaseDamage, and BashBaseDamage were effectively dead configuration. For Kick and RoundKick, `base` was incremented at skill levels 75 and 175 before being discarded — clear evidence the return was missing it. The working cases (DragonPunch, EagleStrike, TigerClaw, Frenzy) all correctly return `base`. This applies the same pattern to the four affected skills: return base + static_cast<int>(ac_bonus + skill_bonus). Fixes #5035
This commit is contained in:
parent
ba2ca5eada
commit
d5b7c014b3
@ -5175,7 +5175,7 @@ int Bot::GetBaseSkillDamage(EQ::skills::SkillType skill, Mob *target)
|
|||||||
ac_bonus = inst->GetItemArmorClass(true) / 25.0f;
|
ac_bonus = inst->GetItemArmorClass(true) / 25.0f;
|
||||||
if (ac_bonus > skill_bonus)
|
if (ac_bonus > skill_bonus)
|
||||||
ac_bonus = skill_bonus;
|
ac_bonus = skill_bonus;
|
||||||
return static_cast<int>(ac_bonus + skill_bonus);
|
return base + static_cast<int>(ac_bonus + skill_bonus);
|
||||||
}
|
}
|
||||||
case EQ::skills::SkillKick: {
|
case EQ::skills::SkillKick: {
|
||||||
float skill_bonus = skill_level / 10.0f;
|
float skill_bonus = skill_level / 10.0f;
|
||||||
@ -5185,7 +5185,7 @@ int Bot::GetBaseSkillDamage(EQ::skills::SkillType skill, Mob *target)
|
|||||||
ac_bonus = inst->GetItemArmorClass(true) / 25.0f;
|
ac_bonus = inst->GetItemArmorClass(true) / 25.0f;
|
||||||
if (ac_bonus > skill_bonus)
|
if (ac_bonus > skill_bonus)
|
||||||
ac_bonus = skill_bonus;
|
ac_bonus = skill_bonus;
|
||||||
return static_cast<int>(ac_bonus + skill_bonus);
|
return base + static_cast<int>(ac_bonus + skill_bonus);
|
||||||
}
|
}
|
||||||
case EQ::skills::SkillBash: {
|
case EQ::skills::SkillBash: {
|
||||||
float skill_bonus = skill_level / 10.0f;
|
float skill_bonus = skill_level / 10.0f;
|
||||||
@ -5199,7 +5199,7 @@ int Bot::GetBaseSkillDamage(EQ::skills::SkillType skill, Mob *target)
|
|||||||
ac_bonus = inst->GetItemArmorClass(true) / 25.0f;
|
ac_bonus = inst->GetItemArmorClass(true) / 25.0f;
|
||||||
if (ac_bonus > skill_bonus)
|
if (ac_bonus > skill_bonus)
|
||||||
ac_bonus = skill_bonus;
|
ac_bonus = skill_bonus;
|
||||||
return static_cast<int>(ac_bonus + skill_bonus);
|
return base + static_cast<int>(ac_bonus + skill_bonus);
|
||||||
}
|
}
|
||||||
case EQ::skills::SkillBackstab: {
|
case EQ::skills::SkillBackstab: {
|
||||||
float skill_bonus = static_cast<float>(skill_level) * 0.02f;
|
float skill_bonus = static_cast<float>(skill_level) * 0.02f;
|
||||||
|
|||||||
@ -102,10 +102,10 @@ int Mob::GetBaseSkillDamage(EQ::skills::SkillType skill, Mob *target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (RuleB(Character, ItemExtraSkillDamageCalcAsPercent) && GetSkillDmgAmt(skill) > 0) {
|
if (RuleB(Character, ItemExtraSkillDamageCalcAsPercent) && GetSkillDmgAmt(skill) > 0) {
|
||||||
return static_cast<int>(ac_bonus + skill_bonus) * std::abs(GetSkillDmgAmt(skill) / 100);
|
return (base + static_cast<int>(ac_bonus + skill_bonus)) * std::abs(GetSkillDmgAmt(skill) / 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
return static_cast<int>(ac_bonus + skill_bonus);
|
return base + static_cast<int>(ac_bonus + skill_bonus);
|
||||||
}
|
}
|
||||||
case EQ::skills::SkillKick:
|
case EQ::skills::SkillKick:
|
||||||
case EQ::skills::SkillRoundKick: {
|
case EQ::skills::SkillRoundKick: {
|
||||||
@ -128,10 +128,10 @@ int Mob::GetBaseSkillDamage(EQ::skills::SkillType skill, Mob *target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (RuleB(Character, ItemExtraSkillDamageCalcAsPercent) && GetSkillDmgAmt(skill) > 0) {
|
if (RuleB(Character, ItemExtraSkillDamageCalcAsPercent) && GetSkillDmgAmt(skill) > 0) {
|
||||||
return static_cast<int>(ac_bonus + skill_bonus) * std::abs(GetSkillDmgAmt(skill) / 100);
|
return (base + static_cast<int>(ac_bonus + skill_bonus)) * std::abs(GetSkillDmgAmt(skill) / 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
return static_cast<int>(ac_bonus + skill_bonus);
|
return base + static_cast<int>(ac_bonus + skill_bonus);
|
||||||
}
|
}
|
||||||
case EQ::skills::SkillBash: {
|
case EQ::skills::SkillBash: {
|
||||||
float skill_bonus = skill_level / 10.0f;
|
float skill_bonus = skill_level / 10.0f;
|
||||||
@ -160,10 +160,10 @@ int Mob::GetBaseSkillDamage(EQ::skills::SkillType skill, Mob *target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (RuleB(Character, ItemExtraSkillDamageCalcAsPercent) && GetSkillDmgAmt(skill) > 0) {
|
if (RuleB(Character, ItemExtraSkillDamageCalcAsPercent) && GetSkillDmgAmt(skill) > 0) {
|
||||||
return static_cast<int>(ac_bonus + skill_bonus) * std::abs(GetSkillDmgAmt(skill) / 100);
|
return (base + static_cast<int>(ac_bonus + skill_bonus)) * std::abs(GetSkillDmgAmt(skill) / 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
return static_cast<int>(ac_bonus + skill_bonus);
|
return base + static_cast<int>(ac_bonus + skill_bonus);
|
||||||
}
|
}
|
||||||
case EQ::skills::SkillBackstab: {
|
case EQ::skills::SkillBackstab: {
|
||||||
float skill_bonus = static_cast<float>(skill_level) * 0.02f;
|
float skill_bonus = static_cast<float>(skill_level) * 0.02f;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user