[Quest API] Add IsRaidTarget() to Perl and Lua (#1347)

- Add $npc->IsRaidTarget() to Perl.
- Add npc:IsRaidTarget() to Lua.
This commit is contained in:
Alex 2021-05-10 02:05:46 -04:00 committed by GitHub
parent 39f5949441
commit 26d374d52a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

View File

@ -564,6 +564,12 @@ void Lua_NPC::ScaleNPC(uint8 npc_level)
self->ScaleNPC(npc_level);
}
bool Lua_NPC::IsRaidTarget()
{
Lua_Safe_Call_Bool();
return self->IsRaidTarget();
}
luabind::scope lua_register_npc() {
return luabind::class_<Lua_NPC, Lua_Mob>("NPC")
.def(luabind::constructor<>())
@ -677,7 +683,8 @@ luabind::scope lua_register_npc() {
.def("GetRawAC", (int(Lua_NPC::*)(void))&Lua_NPC::GetRawAC)
.def("GetAvoidanceRating", &Lua_NPC::GetAvoidanceRating)
.def("RecalculateSkills", (void(Lua_NPC::*)(void))&Lua_NPC::RecalculateSkills)
.def("ScaleNPC", (void(Lua_NPC::*)(uint8))&Lua_NPC::ScaleNPC);
.def("ScaleNPC", (void(Lua_NPC::*)(uint8))&Lua_NPC::ScaleNPC)
.def("IsRaidTarget", (bool(Lua_NPC::*)(void))&Lua_NPC::IsRaidTarget);
}
#endif

View File

@ -137,6 +137,7 @@ public:
void SetSimpleRoamBox(float box_size, float move_distance, int move_delay);
void RecalculateSkills();
void ScaleNPC(uint8 npc_level);
bool IsRaidTarget();
};
#endif

View File

@ -1725,6 +1725,22 @@ XS(XS_NPC_ScaleNPC) {
XSRETURN_EMPTY;
}
XS(XS_NPC_IsRaidTarget); /* prototype to pass -Wmissing-prototypes */
XS(XS_NPC_IsRaidTarget) {
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: NPC::IsRaidTarget(THIS)"); // @categories Stats and Attributes
{
NPC *THIS;
bool is_raid_target;
VALIDATE_THIS_IS_NPC;
is_raid_target = THIS->IsRaidTarget();
ST(0) = boolSV(is_raid_target);
sv_2mortal(ST(0));
}
XSRETURN(1);
}
#ifdef __cplusplus
extern "C"
#endif
@ -1842,6 +1858,7 @@ XS(boot_NPC) {
newXSproto(strcpy(buf, "SetSimpleRoamBox"), XS_NPC_SetSimpleRoamBox, file, "$$;$$");
newXSproto(strcpy(buf, "RecalculateSkills"), XS_NPC_RecalculateSkills, file, "$");
newXSproto(strcpy(buf, "ScaleNPC"), XS_NPC_ScaleNPC, file, "$$");
newXSproto(strcpy(buf, "IsRaidTarget"), XS_NPC_IsRaidTarget, file, "$");
XSRETURN_YES;
}