mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-20 17:31:30 +00:00
Fix where SE_ExtraAttackChance happens
Improved AA descriptions say this is after a successful double attack
This commit is contained in:
parent
6686346473
commit
c1ad00cbc6
@ -5290,19 +5290,30 @@ void Client::DoAttackRounds(Mob *target, int hand, bool IsFromSpell)
|
|||||||
// extra off hand non-sense, can only double with skill of 150 or above
|
// extra off hand non-sense, can only double with skill of 150 or above
|
||||||
// or you have any amount of GiveDoubleAttack
|
// or you have any amount of GiveDoubleAttack
|
||||||
if (candouble && hand == EQEmu::inventory::slotSecondary)
|
if (candouble && hand == EQEmu::inventory::slotSecondary)
|
||||||
candouble = GetSkill(EQEmu::skills::SkillDoubleAttack) > 149 || (aabonuses.GiveDoubleAttack + spellbonuses.GiveDoubleAttack + itembonuses.GiveDoubleAttack) > 0;
|
candouble =
|
||||||
|
GetSkill(EQEmu::skills::SkillDoubleAttack) > 149 ||
|
||||||
|
(aabonuses.GiveDoubleAttack + spellbonuses.GiveDoubleAttack + itembonuses.GiveDoubleAttack) > 0;
|
||||||
|
|
||||||
if (candouble) {
|
if (candouble) {
|
||||||
CheckIncreaseSkill(EQEmu::skills::SkillDoubleAttack, target, -10);
|
CheckIncreaseSkill(EQEmu::skills::SkillDoubleAttack, target, -10);
|
||||||
if (CheckDoubleAttack()) {
|
if (CheckDoubleAttack()) {
|
||||||
Attack(target, hand, false, false, IsFromSpell);
|
Attack(target, hand, false, false, IsFromSpell);
|
||||||
|
|
||||||
|
// Modern AA description: Increases your chance of ... performing one additional hit with a 2-handed weapon when double attacking by 2%.
|
||||||
|
if (hand == EQEmu::inventory::slotPrimary) {
|
||||||
|
auto extraattackchance = aabonuses.ExtraAttackChance + spellbonuses.ExtraAttackChance +
|
||||||
|
itembonuses.ExtraAttackChance;
|
||||||
|
if (extraattackchance && HasTwoHanderEquipped() && zone->random.Roll(extraattackchance))
|
||||||
|
Attack(target, hand, false, false, IsFromSpell);
|
||||||
|
}
|
||||||
|
|
||||||
// you can only triple from the main hand
|
// you can only triple from the main hand
|
||||||
if (hand == EQEmu::inventory::slotPrimary && CanThisClassTripleAttack()) {
|
if (hand == EQEmu::inventory::slotPrimary && CanThisClassTripleAttack()) {
|
||||||
CheckIncreaseSkill(EQEmu::skills::SkillTripleAttack, target, -10);
|
CheckIncreaseSkill(EQEmu::skills::SkillTripleAttack, target, -10);
|
||||||
if (CheckTripleAttack()) {
|
if (CheckTripleAttack()) {
|
||||||
Attack(target, hand, false, false, IsFromSpell);
|
Attack(target, hand, false, false, IsFromSpell);
|
||||||
auto flurrychance = aabonuses.FlurryChance + spellbonuses.FlurryChance +
|
auto flurrychance = aabonuses.FlurryChance + spellbonuses.FlurryChance +
|
||||||
itembonuses.FlurryChance;
|
itembonuses.FlurryChance;
|
||||||
if (flurrychance && zone->random.Roll(flurrychance)) {
|
if (flurrychance && zone->random.Roll(flurrychance)) {
|
||||||
Attack(target, hand, false, false, IsFromSpell);
|
Attack(target, hand, false, false, IsFromSpell);
|
||||||
if (zone->random.Roll(flurrychance))
|
if (zone->random.Roll(flurrychance))
|
||||||
@ -5313,12 +5324,6 @@ void Client::DoAttackRounds(Mob *target, int hand, bool IsFromSpell)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hand == EQEmu::inventory::slotPrimary) {
|
|
||||||
auto extraattackchance = aabonuses.ExtraAttackChance + spellbonuses.ExtraAttackChance + itembonuses.ExtraAttackChance;
|
|
||||||
if (extraattackchance && HasTwoHanderEquipped() && zone->random.Roll(extraattackchance))
|
|
||||||
Attack(target, hand, false, false, IsFromSpell);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Mob::CheckDualWield()
|
bool Mob::CheckDualWield()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user