[Quest API] Add Archetype Methods to Perl/Lua (#4181)

* [Quest API] Add Archetype Methods to Perl/Lua

- Add `$mob->GetArchetypeName()`.
- Add `$mob->IsIntelligenceCasterClass()`.
- Add `$mob->IsPureMeleeClass()`.
- Add `$mob->IsWisdomCasterClass()`.

- Add `mob:GetArchetypeName()`.
- Add `mob:IsIntelligenceCasterClass()`.
- Add `mob:IsPureMeleeClass()`.
- Add `mob:IsWisdomCasterClass()`.

- Allows operators to use mob archetypes to perform different operations.
- Add a namespace for archetypes instead of constants.
- Utilize `IsIntelligenceCasterClass()`, `IsPureMeleeClass()`, and `IsWisdomCasterClass()` where necessary.
-

* Update mob.cpp
This commit is contained in:
Alex King
2024-03-23 15:37:35 -04:00
committed by GitHub
parent d2372de982
commit abdec39cdd
13 changed files with 465 additions and 384 deletions
+24
View File
@@ -3448,6 +3448,26 @@ void Perl_Mob_RestoreMana(Mob* self)
self->RestoreMana();
}
std::string Perl_Mob_GetArchetypeName(Mob* self)
{
return self->GetArchetypeName();
}
bool Perl_Mob_IsIntelligenceCasterClass(Mob* self)
{
return self->IsIntelligenceCasterClass();
}
bool Perl_Mob_IsPureMeleeClass(Mob* self)
{
return self->IsPureMeleeClass();
}
bool Perl_Mob_IsWisdomCasterClass(Mob* self)
{
return self->IsWisdomCasterClass();
}
void perl_register_mob()
{
perl::interpreter perl(PERL_GET_THX);
@@ -3620,6 +3640,7 @@ void perl_register_mob()
package.add("GetAggroRange", &Perl_Mob_GetAggroRange);
package.add("GetAllowBeneficial", &Perl_Mob_GetAllowBeneficial);
package.add("GetAppearance", &Perl_Mob_GetAppearance);
package.add("GetArchetypeName", &Perl_Mob_GetArchetypeName);
package.add("GetArmorTint", &Perl_Mob_GetArmorTint);
package.add("GetAssistRange", &Perl_Mob_GetAssistRange);
package.add("GetBaseGender", &Perl_Mob_GetBaseGender);
@@ -3843,6 +3864,7 @@ void perl_register_mob()
package.add("IsFindable", &Perl_Mob_IsFindable);
package.add("IsHorse", &Perl_Mob_IsHorse);
package.add("IsImmuneToSpell", &Perl_Mob_IsImmuneToSpell);
package.add("IsIntelligenceCasterClass", &Perl_Mob_IsIntelligenceCasterClass);
package.add("IsInvisible", (bool(*)(Mob*))&Perl_Mob_IsInvisible);
package.add("IsInvisible", (bool(*)(Mob*, Mob*))&Perl_Mob_IsInvisible);
package.add("IsMeleeDisabled", &Perl_Mob_IsMeleeDisabled);
@@ -3861,6 +3883,7 @@ void perl_register_mob()
package.add("IsPetOwnerClient", &Perl_Mob_IsPetOwnerClient);
package.add("IsPetOwnerNPC", &Perl_Mob_IsPetOwnerNPC);
package.add("IsPlayerCorpse", &Perl_Mob_IsPlayerCorpse);
package.add("IsPureMeleeClass", &Perl_Mob_IsPureMeleeClass);
package.add("IsRoamer", &Perl_Mob_IsRoamer);
package.add("IsRooted", &Perl_Mob_IsRooted);
package.add("IsRunning", &Perl_Mob_IsRunning);
@@ -3873,6 +3896,7 @@ void perl_register_mob()
package.add("IsTrackable", &Perl_Mob_IsTrackable);
package.add("IsTrap", &Perl_Mob_IsTrap);
package.add("IsWarriorClass", &Perl_Mob_IsWarriorClass);
package.add("IsWisdomCasterClass", &Perl_Mob_IsWisdomCasterClass);
package.add("Kill", &Perl_Mob_Kill);
package.add("MakePet", (void(*)(Mob*, uint16, const char*))&Perl_Mob_MakePet);
package.add("MakePet", (void(*)(Mob*, uint16, const char*, const char*))&Perl_Mob_MakePet);