[Quest API] Add HasBotSpellEntry() to Perl/Lua. (#2563)

* [Bots] Quest API Check Spell in Bot_Spell_Entries

* Add to luabind and packages

* Change Method to be HasBotSpellEntry, change SpellID to uint16

* Ordering, and removed unused logging
This commit is contained in:
Aeadoin 2022-11-24 22:29:38 -05:00 committed by GitHub
parent 52e1bc943a
commit 45c4fe55f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 54 additions and 20 deletions

View File

@ -557,6 +557,9 @@ public:
inline InspectMessage_Struct& GetInspectMessage() { return _botInspectMessage; } inline InspectMessage_Struct& GetInspectMessage() { return _botInspectMessage; }
inline const InspectMessage_Struct& GetInspectMessage() const { return _botInspectMessage; } inline const InspectMessage_Struct& GetInspectMessage() const { return _botInspectMessage; }
// "Quest API" Methods
bool HasBotSpellEntry(uint16 spellid);
// "SET" Class Methods // "SET" Class Methods
void SetBotSpellID(uint32 newSpellID); void SetBotSpellID(uint32 newSpellID);
virtual void SetSpawnStatus(bool spawnStatus) { _spawnStatus = spawnStatus; } virtual void SetSpawnStatus(bool spawnStatus) { _spawnStatus = spawnStatus; }

View File

@ -3185,4 +3185,22 @@ void Bot::AI_Bot_Event_SpellCastFinished(bool iCastSucceeded, uint16 slot) {
} }
} }
bool Bot::HasBotSpellEntry(uint16 spellid) {
auto* spell_list = content_db.GetBotSpells(GetBotSpellID());
if (!spell_list) {
return false;
}
// Check if Spell ID is found in Bot Spell Entries
for (auto& e : spell_list->entries) {
if (spellid == e.spellid) {
return true;
}
}
return false;
}
#endif #endif

View File

@ -109,6 +109,11 @@ void Lua_Bot::SetExpansionBitmask(int expansion_bitmask, bool save) {
self->SetExpansionBitmask(expansion_bitmask, save); self->SetExpansionBitmask(expansion_bitmask, save);
} }
bool Lua_Bot::HasBotSpellEntry(uint16 spellid) {
Lua_Safe_Call_Bool();
return self->HasBotSpellEntry(spellid);
}
luabind::scope lua_register_bot() { luabind::scope lua_register_bot() {
return luabind::class_<Lua_Bot, Lua_Mob>("Bot") return luabind::class_<Lua_Bot, Lua_Mob>("Bot")
.def(luabind::constructor<>()) .def(luabind::constructor<>())
@ -127,6 +132,7 @@ luabind::scope lua_register_bot() {
.def("GetExpansionBitmask", (int(Lua_Bot::*)(void)) & Lua_Bot::GetExpansionBitmask) .def("GetExpansionBitmask", (int(Lua_Bot::*)(void)) & Lua_Bot::GetExpansionBitmask)
.def("GetOwner", (Lua_Mob(Lua_Bot::*)(void)) & Lua_Bot::GetOwner) .def("GetOwner", (Lua_Mob(Lua_Bot::*)(void)) & Lua_Bot::GetOwner)
.def("HasBotItem", (bool(Lua_Bot::*)(uint32)) & Lua_Bot::HasBotItem) .def("HasBotItem", (bool(Lua_Bot::*)(uint32)) & Lua_Bot::HasBotItem)
.def("HasBotSpellEntry", (bool(Lua_Bot::*)(uint16)) & Lua_Bot::HasBotSpellEntry)
.def("OwnerMessage", (void(Lua_Bot::*)(std::string)) & Lua_Bot::OwnerMessage) .def("OwnerMessage", (void(Lua_Bot::*)(std::string)) & Lua_Bot::OwnerMessage)
.def("RemoveBotItem", (void(Lua_Bot::*)(uint32)) & Lua_Bot::RemoveBotItem) .def("RemoveBotItem", (void(Lua_Bot::*)(uint32)) & Lua_Bot::RemoveBotItem)
.def("SetExpansionBitmask", (void(Lua_Bot::*)(int)) & Lua_Bot::SetExpansionBitmask) .def("SetExpansionBitmask", (void(Lua_Bot::*)(int)) & Lua_Bot::SetExpansionBitmask)

View File

@ -47,6 +47,7 @@ public:
void SetExpansionBitmask(int expansion_bitmask); void SetExpansionBitmask(int expansion_bitmask);
void SetExpansionBitmask(int expansion_bitmask, bool save); void SetExpansionBitmask(int expansion_bitmask, bool save);
void SignalBot(int signal_id); void SignalBot(int signal_id);
bool HasBotSpellEntry(uint16 spellid);
}; };
#endif #endif

View File

@ -106,6 +106,11 @@ void Perl_Bot_SetExpansionBitmask(Bot* self, int expansion_bitmask, bool save)
self->SetExpansionBitmask(expansion_bitmask, save); self->SetExpansionBitmask(expansion_bitmask, save);
} }
bool Perl_Bot_HasBotSpellEntry(Bot* self, uint16 spellid)
{
return self->HasBotSpellEntry(spellid);
}
void perl_register_bot() void perl_register_bot()
{ {
perl::interpreter state(PERL_GET_THX); perl::interpreter state(PERL_GET_THX);
@ -127,6 +132,7 @@ void perl_register_bot()
package.add("GetExpansionBitmask", &Perl_Bot_GetExpansionBitmask); package.add("GetExpansionBitmask", &Perl_Bot_GetExpansionBitmask);
package.add("GetOwner", &Perl_Bot_GetOwner); package.add("GetOwner", &Perl_Bot_GetOwner);
package.add("HasBotItem", &Perl_Bot_HasBotItem); package.add("HasBotItem", &Perl_Bot_HasBotItem);
package.add("HasBotSpellEntry", &Perl_Bot_HasBotSpellEntry);
package.add("OwnerMessage", &Perl_Bot_OwnerMessage); package.add("OwnerMessage", &Perl_Bot_OwnerMessage);
package.add("RemoveBotItem", &Perl_Bot_RemoveBotItem); package.add("RemoveBotItem", &Perl_Bot_RemoveBotItem);
package.add("SetExpansionBitmask", (void(*)(Bot*, int))&Perl_Bot_SetExpansionBitmask); package.add("SetExpansionBitmask", (void(*)(Bot*, int))&Perl_Bot_SetExpansionBitmask);