mirror of
https://github.com/EQEmu/Server.git
synced 2026-08-28 20:07:56 +00:00
Some bot-related changes (Master Wu's Technique, Tiger Claw timer)
This commit is contained in:
+17
-13
@@ -379,31 +379,35 @@ void Client::OPCombatAbility(const CombatAbility_Struct *ca_atk)
|
||||
ReuseTime = MonkSpecialAttack(GetTarget(), ca_atk->m_skill) - 1 - skill_reduction;
|
||||
|
||||
// Live AA - Technique of Master Wu
|
||||
int wuchance =
|
||||
itembonuses.DoubleSpecialAttack + spellbonuses.DoubleSpecialAttack + aabonuses.DoubleSpecialAttack;
|
||||
int wuchance = itembonuses.DoubleSpecialAttack + spellbonuses.DoubleSpecialAttack + aabonuses.DoubleSpecialAttack;
|
||||
|
||||
if (wuchance) {
|
||||
const int MonkSPA[5] = {EQEmu::skills::SkillFlyingKick, EQEmu::skills::SkillDragonPunch,
|
||||
EQEmu::skills::SkillEagleStrike, EQEmu::skills::SkillTigerClaw,
|
||||
EQEmu::skills::SkillRoundKick};
|
||||
const int MonkSPA[5] = {
|
||||
EQEmu::skills::SkillFlyingKick,
|
||||
EQEmu::skills::SkillDragonPunch,
|
||||
EQEmu::skills::SkillEagleStrike,
|
||||
EQEmu::skills::SkillTigerClaw,
|
||||
EQEmu::skills::SkillRoundKick
|
||||
};
|
||||
int extra = 0;
|
||||
// always 1/4 of the double attack chance, 25% at rank 5 (100/4)
|
||||
while (wuchance > 0) {
|
||||
if (zone->random.Roll(wuchance))
|
||||
extra++;
|
||||
else
|
||||
if (zone->random.Roll(wuchance)) {
|
||||
++extra;
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
wuchance /= 4;
|
||||
}
|
||||
// They didn't add a string ID for this.
|
||||
std::string msg = StringFormat(
|
||||
"The spirit of Master Wu fills you! You gain %d additional attack(s).", extra);
|
||||
std::string msg = StringFormat("The spirit of Master Wu fills you! You gain %d additional attack(s).", extra);
|
||||
// live uses 400 here -- not sure if it's the best for all clients though
|
||||
SendColoredText(400, msg);
|
||||
auto classic = RuleB(Combat, ClassicMasterWu);
|
||||
while (extra) {
|
||||
MonkSpecialAttack(GetTarget(),
|
||||
classic ? MonkSPA[zone->random.Int(0, 4)] : ca_atk->m_skill);
|
||||
extra--;
|
||||
MonkSpecialAttack(GetTarget(), (classic ? MonkSPA[zone->random.Int(0, 4)] : ca_atk->m_skill));
|
||||
--extra;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user