[Quest API] Add LDoN Methods to Perl/Lua (#2799)

# Perl
- Add `$npc->GetLDoNLockedSkill()`.
- Add `$npc->GetLDoNTrapType()`.
- Add `$npc->GetLDoNTrapSpellID()`.
- Add `$npc->IsLDoNLocked()`.
- Add `$npc->IsLDoNTrapped()`.
- Add `$npc->IsLDoNTrapDetected()`.
- Add `$npc->SetLDoNLocked(is_locked)`.
- Add `$npc->SetLDoNLockedSkill(skill_value)`.
- Add `$npc->SetLDoNTrapped(is_trapped)`.
- Add `$npc->SetLDoNTrapDetected(is_detected)`.
- Add `$npc->SetLDoNTrapSpellID(spell_id)`.
- Add `$npc->SetLDoNTrapType(trap_type)`.

# Lua
- Add `npc:GetLDoNLockedSkill()`.
- Add `npc:GetLDoNTrapType()`.
- Add `npc:GetLDoNTrapSpellID()`.
- Add `npc:IsLDoNLocked()`.
- Add `npc:IsLDoNTrapped()`.
- Add `npc:IsLDoNTrapDetected()`.
- Add `npc:SetLDoNLocked(is_locked)`.
- Add `npc:SetLDoNLockedSkill(skill_value)`.
- Add `npc:SetLDoNTrapped(is_trapped)`.
- Add `npc:SetLDoNTrapDetected(is_detected)`.
- Add `npc:SetLDoNTrapSpellID(spell_id)`.
- Add `npc:SetLDoNTrapType(trap_type)`.

# Notes
- Adds these methods to allow LDoN traps to be set by a script.
This commit is contained in:
Alex King
2023-01-29 15:29:31 -05:00
committed by GitHub
parent 369b5c2921
commit 1cde55c535
5 changed files with 184 additions and 29 deletions
+72
View File
@@ -690,6 +690,66 @@ void Perl_NPC_SetKeepsSoldItems(NPC* self, bool keeps_sold_items)
self->SetKeepsSoldItems(keeps_sold_items);
}
bool Perl_NPC_IsLDoNTrapped(NPC* self)
{
return self->IsLDoNTrapped();
}
void Perl_NPC_SetLDoNTrapped(NPC* self, bool is_trapped)
{
self->SetLDoNTrapped(is_trapped);
}
uint8 Perl_NPC_GetLDoNTrapType(NPC* self)
{
return self->GetLDoNTrapType();
}
void Perl_NPC_SetLDoNTrapType(NPC* self, uint8 trap_type)
{
self->SetLDoNTrapType(trap_type);
}
uint16 Perl_NPC_GetLDoNTrapSpellID(NPC* self)
{
return self->GetLDoNTrapSpellID();
}
void Perl_NPC_SetLDoNTrapSpellID(NPC* self, uint16 spell_id)
{
self->SetLDoNTrapSpellID(spell_id);
}
bool Perl_NPC_IsLDoNLocked(NPC* self)
{
return self->IsLDoNLocked();
}
void Perl_NPC_SetLDoNLocked(NPC* self, bool is_locked)
{
self->SetLDoNLocked(is_locked);
}
uint16 Perl_NPC_GetLDoNLockedSkill(NPC* self)
{
return self->GetLDoNLockedSkill();
}
void Perl_NPC_SetLDoNLockedSkill(NPC* self, uint16 skill_value)
{
self->SetLDoNLockedSkill(skill_value);
}
bool Perl_NPC_IsLDoNTrapDetected(NPC* self)
{
return self->IsLDoNTrapDetected();
}
void Perl_NPC_SetLDoNTrapDetected(NPC* self, bool is_detected)
{
self->SetLDoNTrapDetected(is_detected);
}
void perl_register_npc()
{
perl::interpreter perl(PERL_GET_THX);
@@ -742,6 +802,9 @@ void perl_register_npc()
package.add("GetHealScale", &Perl_NPC_GetHealScale);
package.add("GetItemIDBySlot", &Perl_NPC_GetItemIDBySlot);
package.add("GetKeepsSoldItems", &Perl_NPC_GetKeepsSoldItems);
package.add("GetLDoNLockedSkill", &Perl_NPC_GetLDoNLockedSkill);
package.add("GetLDoNTrapType", &Perl_NPC_GetLDoNTrapType);
package.add("GetLDoNTrapSpellID", &Perl_NPC_GetLDoNTrapSpellID);
package.add("GetLootList", &Perl_NPC_GetLootList);
package.add("GetLoottableID", &Perl_NPC_GetLoottableID);
package.add("GetMaxDMG", &Perl_NPC_GetMaxDMG);
@@ -777,6 +840,9 @@ void perl_register_npc()
package.add("HasItem", &Perl_NPC_HasItem);
package.add("IsAnimal", &Perl_NPC_IsAnimal);
package.add("IsGuarding", &Perl_NPC_IsGuarding);
package.add("IsLDoNLocked", &Perl_NPC_IsLDoNLocked);
package.add("IsLDoNTrapped", &Perl_NPC_IsLDoNTrapped);
package.add("IsLDoNTrapDetected", &Perl_NPC_IsLDoNTrapDetected);;
package.add("IsOnHatelist", &Perl_NPC_IsOnHatelist);
package.add("IsRaidTarget", &Perl_NPC_IsRaidTarget);
package.add("IsRareSpawn", &Perl_NPC_IsRareSpawn);
@@ -811,6 +877,12 @@ void perl_register_npc()
package.add("SendPayload", (void(*)(NPC*, int, std::string))&Perl_NPC_SendPayload);
package.add("SetCopper", &Perl_NPC_SetCopper);
package.add("SetKeepsSoldItems", &Perl_NPC_SetKeepsSoldItems);
package.add("SetLDoNLocked", &Perl_NPC_SetLDoNLocked);
package.add("SetLDoNLockedSkill", &Perl_NPC_SetLDoNLockedSkill);
package.add("SetLDoNTrapped", &Perl_NPC_SetLDoNTrapped);
package.add("SetLDoNTrapDetected", &Perl_NPC_SetLDoNTrapDetected);
package.add("SetLDoNTrapSpellID", &Perl_NPC_SetLDoNTrapSpellID);
package.add("SetLDoNTrapType", &Perl_NPC_SetLDoNTrapType);
package.add("SetGold", &Perl_NPC_SetGold);
package.add("SetGrid", &Perl_NPC_SetGrid);
package.add("SetNPCFactionID", &Perl_NPC_SetNPCFactionID);