mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
Take in elem/bane dmg in BS calc
This commit is contained in:
parent
343c41bb18
commit
1e865a5246
@ -576,33 +576,30 @@ void Mob::RogueBackstab(Mob* other, bool min_damage, int ReuseTime)
|
|||||||
int32 primaryweapondamage = 0;
|
int32 primaryweapondamage = 0;
|
||||||
int32 backstab_dmg = 0;
|
int32 backstab_dmg = 0;
|
||||||
|
|
||||||
if(IsClient()){
|
if (IsClient()) {
|
||||||
const ItemInst *wpn = nullptr;
|
const ItemInst *wpn = CastToClient()->GetInv().GetItem(EQEmu::legacy::SlotPrimary);
|
||||||
wpn = CastToClient()->GetInv().GetItem(EQEmu::legacy::SlotPrimary);
|
if (wpn) {
|
||||||
if(wpn) {
|
|
||||||
primaryweapondamage = GetWeaponDamage(other, wpn);
|
primaryweapondamage = GetWeaponDamage(other, wpn);
|
||||||
backstab_dmg = wpn->GetItem()->BackstabDmg;
|
if (primaryweapondamage) {
|
||||||
for (int i = 0; i < EQEmu::legacy::ITEM_COMMON_SIZE; ++i)
|
backstab_dmg = wpn->GetItemBackstabDamage(true);
|
||||||
{
|
backstab_dmg += other->ResistElementalWeaponDmg(wpn);
|
||||||
ItemInst *aug = wpn->GetAugment(i);
|
if (wpn->GetItemBaneDamageBody(true) || wpn->GetItemBaneDamageRace(true))
|
||||||
if(aug)
|
backstab_dmg += other->CheckBaneDamage(wpn);
|
||||||
{
|
|
||||||
backstab_dmg += aug->GetItem()->BackstabDmg;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
}
|
primaryweapondamage =
|
||||||
else{
|
(GetLevel() / 7) + 1; // fallback incase it's a npc without a weapon, 2 dmg at 10, 10 dmg at 65
|
||||||
primaryweapondamage = (GetLevel()/7)+1; // fallback incase it's a npc without a weapon, 2 dmg at 10, 10 dmg at 65
|
|
||||||
backstab_dmg = primaryweapondamage;
|
backstab_dmg = primaryweapondamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(primaryweapondamage > 0){
|
// ex. bane can make this false
|
||||||
if(level > 25){
|
if (primaryweapondamage > 0) {
|
||||||
|
// this is very wrong but not worth it until we fix the full dmg
|
||||||
|
if (level > 25) {
|
||||||
max_hit = (((((2 * backstab_dmg) * GetDamageTable(EQEmu::skills::SkillBackstab) / 100) * 10 * GetSkill(EQEmu::skills::SkillBackstab) / 355) + ((level - 25) / 3) + 1) * ((100 + RuleI(Combat, BackstabBonus)) / 100));
|
max_hit = (((((2 * backstab_dmg) * GetDamageTable(EQEmu::skills::SkillBackstab) / 100) * 10 * GetSkill(EQEmu::skills::SkillBackstab) / 355) + ((level - 25) / 3) + 1) * ((100 + RuleI(Combat, BackstabBonus)) / 100));
|
||||||
hate = 20 * backstab_dmg * GetSkill(EQEmu::skills::SkillBackstab) / 355;
|
hate = 20 * backstab_dmg * GetSkill(EQEmu::skills::SkillBackstab) / 355;
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
max_hit = (((((2 * backstab_dmg) * GetDamageTable(EQEmu::skills::SkillBackstab) / 100) * 10 * GetSkill(EQEmu::skills::SkillBackstab) / 355) + 1) * ((100 + RuleI(Combat, BackstabBonus)) / 100));
|
max_hit = (((((2 * backstab_dmg) * GetDamageTable(EQEmu::skills::SkillBackstab) / 100) * 10 * GetSkill(EQEmu::skills::SkillBackstab) / 355) + 1) * ((100 + RuleI(Combat, BackstabBonus)) / 100));
|
||||||
hate = 20 * backstab_dmg * GetSkill(EQEmu::skills::SkillBackstab) / 355;
|
hate = 20 * backstab_dmg * GetSkill(EQEmu::skills::SkillBackstab) / 355;
|
||||||
}
|
}
|
||||||
@ -610,31 +607,27 @@ void Mob::RogueBackstab(Mob* other, bool min_damage, int ReuseTime)
|
|||||||
// determine minimum hits
|
// determine minimum hits
|
||||||
if (level < 51) {
|
if (level < 51) {
|
||||||
min_hit = (level*15/10);
|
min_hit = (level*15/10);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// Trumpcard: Replaced switch statement with formula calc. This will give minhit increases all the way to 65.
|
// Trumpcard: Replaced switch statement with formula calc. This will give minhit increases all the way to 65.
|
||||||
min_hit = (level * ( level*5 - 105)) / 100;
|
min_hit = (level * ( level*5 - 105)) / 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!other->CheckHitChance(this, EQEmu::skills::SkillBackstab, 0)) {
|
if (!other->CheckHitChance(this, EQEmu::skills::SkillBackstab, 0)) {
|
||||||
ndamage = 0;
|
ndamage = 0;
|
||||||
}
|
} else {
|
||||||
else{
|
if (min_damage) {
|
||||||
if(min_damage){
|
|
||||||
ndamage = min_hit;
|
ndamage = min_hit;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (max_hit < min_hit)
|
if (max_hit < min_hit)
|
||||||
max_hit = min_hit;
|
max_hit = min_hit;
|
||||||
|
|
||||||
if(RuleB(Combat, UseIntervalAC))
|
if (RuleB(Combat, UseIntervalAC))
|
||||||
ndamage = max_hit;
|
ndamage = max_hit;
|
||||||
else
|
else
|
||||||
ndamage = zone->random.Int(min_hit, max_hit);
|
ndamage = zone->random.Int(min_hit, max_hit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
ndamage = -5;
|
ndamage = -5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user