mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-02 12:22:27 +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, SelfLanguageLearning, true, "Enabling self-learning of languages")
|
||||||
RULE_BOOL(Skills, RequireTomeHandin, false, "Disable click-to-learn and force hand in to Guild Master")
|
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_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_END()
|
||||||
|
|
||||||
RULE_CATEGORY(Pets)
|
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
|
// We assume that the level check is done before calling this function and sinister strikes is checked before
|
||||||
// calling for offhand DB
|
// calling for offhand DB
|
||||||
auto level = GetLevel();
|
auto level = GetLevel();
|
||||||
if (!weapon)
|
|
||||||
|
if (!weapon) {
|
||||||
return 1 + ((level - 28) / 3); // how does weaponless scale?
|
return 1 + ((level - 28) / 3); // how does weaponless scale?
|
||||||
|
}
|
||||||
|
|
||||||
auto delay = weapon->Delay;
|
auto delay = weapon->Delay;
|
||||||
if (weapon->IsType1HWeapon() || weapon->ItemType == EQ::item::ItemTypeMartial) {
|
if (weapon->IsType1HWeapon() || weapon->ItemType == EQ::item::ItemTypeMartial) {
|
||||||
// we assume sinister strikes is checked before calling here
|
// we assume sinister strikes is checked before calling here
|
||||||
if (!offhand) {
|
if (!offhand) {
|
||||||
if (delay <= 39)
|
if (delay <= 39) {
|
||||||
return 1 + ((level - 28) / 3);
|
return 1 + ((level - 28) / 3);
|
||||||
else if (delay < 43)
|
} else if (delay < 43) {
|
||||||
return 2 + ((level - 28) / 3) + ((delay - 40) / 3);
|
return 2 + ((level - 28) / 3) + ((delay - 40) / 3);
|
||||||
else if (delay < 45)
|
} else if (delay < 45) {
|
||||||
return 3 + ((level - 28) / 3) + ((delay - 40) / 3);
|
return 3 + ((level - 28) / 3) + ((delay - 40) / 3);
|
||||||
else if (delay >= 45)
|
} else if (delay >= 45) {
|
||||||
return 4 + ((level - 28) / 3) + ((delay - 40) / 3);
|
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 {
|
} else {
|
||||||
return 1 + ((level - 40) / 3) * (delay / 30); // YOOO shit's useless waste of AAs
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// 2h damage bonus
|
// 2h damage bonus
|
||||||
int64 damage_bonus = 1 + (level - 28) / 3;
|
int64 damage_bonus = 1 + (level - 28) / 3;
|
||||||
if (delay <= 27)
|
|
||||||
|
if (delay <= 27) {
|
||||||
return damage_bonus + 1;
|
return damage_bonus + 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Client isn't reflecting what the dev quoted, this matches better
|
// Client isn't reflecting what the dev quoted, this matches better
|
||||||
if (level > 29) {
|
if (level > 29) {
|
||||||
int level_bonus = (level - 30) / 5 + 1;
|
int level_bonus = (level - 30) / 5 + 1;
|
||||||
if (level > 50) {
|
if (level > 50) {
|
||||||
level_bonus++;
|
level_bonus++;
|
||||||
int level_bonus2 = level - 50;
|
int level_bonus2 = level - 50;
|
||||||
if (level > 67)
|
if (level > 67) {
|
||||||
level_bonus2 += 5;
|
level_bonus2 += 5;
|
||||||
else if (level > 59)
|
} else if (level > 59) {
|
||||||
level_bonus2 += 4;
|
level_bonus2 += 4;
|
||||||
else if (level > 58)
|
} else if (level > 58) {
|
||||||
level_bonus2 += 3;
|
level_bonus2 += 3;
|
||||||
else if (level > 56)
|
} else if (level > 56) {
|
||||||
level_bonus2 += 2;
|
level_bonus2 += 2;
|
||||||
else if (level > 54)
|
} else if (level > 54) {
|
||||||
level_bonus2++;
|
level_bonus2++;
|
||||||
|
}
|
||||||
level_bonus += level_bonus2 * delay / 40;
|
level_bonus += level_bonus2 * delay / 40;
|
||||||
}
|
}
|
||||||
damage_bonus += level_bonus;
|
damage_bonus += level_bonus;
|
||||||
}
|
}
|
||||||
if (delay >= 40) {
|
if (delay >= 40) {
|
||||||
int delay_bonus = (delay - 40) / 3 + 1;
|
int delay_bonus = (delay - 40) / 3 + 1;
|
||||||
if (delay >= 45)
|
if (delay >= 45) {
|
||||||
delay_bonus += 2;
|
delay_bonus += 2;
|
||||||
else if (delay >= 43)
|
} else if (delay >= 43) {
|
||||||
delay_bonus++;
|
delay_bonus++;
|
||||||
|
}
|
||||||
damage_bonus += delay_bonus;
|
damage_bonus += delay_bonus;
|
||||||
}
|
}
|
||||||
return damage_bonus;
|
return damage_bonus;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user