Item spell cast

This commit is contained in:
Yunfan Li
2024-02-08 13:18:36 +08:00
parent 01b04742b7
commit 74830ea137
4 changed files with 6 additions and 11 deletions

View File

@@ -38,6 +38,7 @@
#include "GuildMgr.h"
#include "SayAction.h"
#include <cmath>
#include <sstream>
#include <string>
std::vector<std::string> PlayerbotAI::dispel_whitelist = {
@@ -2441,10 +2442,6 @@ bool PlayerbotAI::CastSpell(uint32 spellId, Unit* target, Item* itemTarget)
if (failWithDelay)
{
SetNextCheckDelay(sPlayerbotAIConfig->reactDelay);
// if (!sPlayerbotAIConfig->logInGroupOnly || (bot->GetGroup() && HasRealPlayerMaster())) {
// LOG_DEBUG("playerbots", "Spell cast fail with delay - target name: {}, spellid: {}, bot name: {}",
// target->GetName(), spellId, bot->GetName());
// }
return false;
}
@@ -2963,7 +2960,7 @@ bool PlayerbotAI::IsInVehicle(bool canControl, bool canCast, bool canAttack, boo
void PlayerbotAI::WaitForSpellCast(Spell* spell)
{
SpellInfo const* spellInfo = spell->GetSpellInfo();
uint32 castTime = spellInfo->CalcCastTime(bot, spell);
uint32 castTime = spell->GetCastTime();
// float castTime = spell->GetCastTime();
// if (spellInfo->IsChanneled())
// {

View File

@@ -230,10 +230,8 @@ bool UseItemAction::UseItem(Item* item, ObjectGuid goGuid, Item* itemTarget, Uni
targetSelected = true;
out << " on "<< chat->FormatItem(itemForSpell->GetTemplate());
}
Spell* spell = new Spell(bot, spellInfo, TRIGGERED_NONE);
botAI->WaitForSpellCast(spell);
delete spell;
uint32 castTime = spellInfo->CalcCastTime();
botAI->SetNextCheckDelay(castTime + sPlayerbotAIConfig->reactDelay);
}
break;

View File

@@ -27,7 +27,7 @@ float CastTimeMultiplier::GetValue(Action* action)
if ((spellInfo->Targets & TARGET_FLAG_DEST_LOCATION) != 0 || (spellInfo->Targets & TARGET_FLAG_SOURCE_LOCATION) != 0)
return 1.0f;
uint32 castTime = spellInfo->CalcCastTime();
uint32 castTime = spellInfo->CalcCastTime(bot);
if (spellInfo->IsChanneled())
{

View File

@@ -52,7 +52,7 @@ float AvoidAoeStrategyMultiplier::GetValue(Action* action)
else if (spellId && pSpellInfo->Targets & TARGET_FLAG_SOURCE_LOCATION)
return 1.0f;
uint32 castTime = pSpellInfo->CalcCastTime();
uint32 castTime = pSpellInfo->CalcCastTime(bot);
if (AI_VALUE2(bool, "has area debuff", "self target") && spellId && castTime > 0)
{