mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-09 04:03:53 +00:00
[Feat] Alt Sinister Strike Formula (#3921)
I have been informed that this was proven to be false, but the AA is pretty useless without some adjustment. Adding this as a rule to allow server owners to adjust as needed. Update Sinister Strikes tapatalk.com/groups/monklybusiness43508/leksikon-s-half-assed-guide-to-monkly-aas-oow-incl-t510-s20.html?sid=a9c7745f287f3e89301c960c20f33248 Sinister Strikes: 19 Delay weapon -- Gives a 5 damage bonus to all hits 20 Delay weapon -- Gives a 6 damage bonus to all hits 24 Delay weapon -- Gives a 7 damage bonus to all hits Given Quarm hammer with maxed non-GoD AAs: 0.7 HPS offhand = 4.9 DPS increase.
This commit is contained in:
parent
97dbf85a4c
commit
f12c87a04a
@ -256,6 +256,7 @@ RULE_INT(Skills, SenseHeadingStartValue, 200, "Start value of sense heading skil
|
||||
RULE_BOOL(Skills, SelfLanguageLearning, true, "Enabling self-learning of languages")
|
||||
RULE_BOOL(Skills, RequireTomeHandin, false, "Disable click-to-learn and force hand in to Guild Master")
|
||||
RULE_INT(Skills, TradeSkillClamp, 0, "Legacy tradeskills would clamp at 252 regardless of item modifiers and skill combination. DEFAULT: 0 will bypass clamp. Legacy value 252")
|
||||
RULE_BOOL(Skills, UseAltSinisterStrikeFormula, false, "Enabling will utilize a formula derived from 2004 monkey business post which makes the AA actually worth something.")
|
||||
RULE_CATEGORY_END()
|
||||
|
||||
RULE_CATEGORY(Pets)
|
||||
|
||||
@ -3217,57 +3217,73 @@ uint8 Mob::GetWeaponDamageBonus(const EQ::ItemData *weapon, bool offhand)
|
||||
// We assume that the level check is done before calling this function and sinister strikes is checked before
|
||||
// calling for offhand DB
|
||||
auto level = GetLevel();
|
||||
if (!weapon)
|
||||
|
||||
if (!weapon) {
|
||||
return 1 + ((level - 28) / 3); // how does weaponless scale?
|
||||
}
|
||||
|
||||
auto delay = weapon->Delay;
|
||||
if (weapon->IsType1HWeapon() || weapon->ItemType == EQ::item::ItemTypeMartial) {
|
||||
// we assume sinister strikes is checked before calling here
|
||||
if (!offhand) {
|
||||
if (delay <= 39)
|
||||
if (delay <= 39) {
|
||||
return 1 + ((level - 28) / 3);
|
||||
else if (delay < 43)
|
||||
} else if (delay < 43) {
|
||||
return 2 + ((level - 28) / 3) + ((delay - 40) / 3);
|
||||
else if (delay < 45)
|
||||
} else if (delay < 45) {
|
||||
return 3 + ((level - 28) / 3) + ((delay - 40) / 3);
|
||||
else if (delay >= 45)
|
||||
} else if (delay >= 45) {
|
||||
return 4 + ((level - 28) / 3) + ((delay - 40) / 3);
|
||||
}
|
||||
} else {
|
||||
if (RuleB(Skills, UseAltSinisterStrikeFormula)) {
|
||||
if (delay <= 19) {
|
||||
return 5 + ((level - 40) / 3) * (delay / 30);
|
||||
} else if (delay <= 23) {
|
||||
return 6 + ((level - 40) / 3) * (delay / 30);
|
||||
} else if (delay >= 24) {
|
||||
return 7 + ((level - 40) / 3) * (delay / 30);
|
||||
}
|
||||
} else {
|
||||
return 1 + ((level - 40) / 3) * (delay / 30); // YOOO shit's useless waste of AAs
|
||||
}
|
||||
}
|
||||
else {
|
||||
return 1 + ((level - 40) / 3) * (delay / 30); // YOOO shit's useless waste of AAs
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// 2h damage bonus
|
||||
int64 damage_bonus = 1 + (level - 28) / 3;
|
||||
if (delay <= 27)
|
||||
|
||||
if (delay <= 27) {
|
||||
return damage_bonus + 1;
|
||||
}
|
||||
|
||||
// Client isn't reflecting what the dev quoted, this matches better
|
||||
if (level > 29) {
|
||||
int level_bonus = (level - 30) / 5 + 1;
|
||||
if (level > 50) {
|
||||
level_bonus++;
|
||||
int level_bonus2 = level - 50;
|
||||
if (level > 67)
|
||||
if (level > 67) {
|
||||
level_bonus2 += 5;
|
||||
else if (level > 59)
|
||||
} else if (level > 59) {
|
||||
level_bonus2 += 4;
|
||||
else if (level > 58)
|
||||
} else if (level > 58) {
|
||||
level_bonus2 += 3;
|
||||
else if (level > 56)
|
||||
} else if (level > 56) {
|
||||
level_bonus2 += 2;
|
||||
else if (level > 54)
|
||||
} else if (level > 54) {
|
||||
level_bonus2++;
|
||||
}
|
||||
level_bonus += level_bonus2 * delay / 40;
|
||||
}
|
||||
damage_bonus += level_bonus;
|
||||
}
|
||||
if (delay >= 40) {
|
||||
int delay_bonus = (delay - 40) / 3 + 1;
|
||||
if (delay >= 45)
|
||||
if (delay >= 45) {
|
||||
delay_bonus += 2;
|
||||
else if (delay >= 43)
|
||||
} else if (delay >= 43) {
|
||||
delay_bonus++;
|
||||
}
|
||||
damage_bonus += delay_bonus;
|
||||
}
|
||||
return damage_bonus;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user