feat(LuaEngine/UnitMethods): add GetThreat, ClearThreat, ResetAllThreat methods (#234)

This commit is contained in:
iThorgrim
2025-02-01 22:09:44 +01:00
committed by GitHub
parent 8ebf1f4cda
commit 0fda6f8d25
2 changed files with 39 additions and 0 deletions

View File

@@ -321,6 +321,7 @@ ElunaRegister<Unit> UnitMethods[] =
// {"GetVehicle", &LuaUnit::GetVehicle}, // :GetVehicle() - UNDOCUMENTED - Gets the Vehicle kit of the vehicle the unit is on // {"GetVehicle", &LuaUnit::GetVehicle}, // :GetVehicle() - UNDOCUMENTED - Gets the Vehicle kit of the vehicle the unit is on
{ "GetMovementType", &LuaUnit::GetMovementType }, { "GetMovementType", &LuaUnit::GetMovementType },
{ "GetAttackers", &LuaUnit::GetAttackers }, { "GetAttackers", &LuaUnit::GetAttackers },
{ "GetThreat", &LuaUnit::GetThreat },
// Setters // Setters
{ "SetFaction", &LuaUnit::SetFaction }, { "SetFaction", &LuaUnit::SetFaction },
@@ -454,6 +455,8 @@ ElunaRegister<Unit> UnitMethods[] =
{ "DealHeal", &LuaUnit::DealHeal }, { "DealHeal", &LuaUnit::DealHeal },
{ "AddThreat", &LuaUnit::AddThreat }, { "AddThreat", &LuaUnit::AddThreat },
{ "ModifyThreatPct", &LuaUnit::ModifyThreatPct }, { "ModifyThreatPct", &LuaUnit::ModifyThreatPct },
{ "ClearThreat", &LuaUnit::ClearThreat },
{ "ResetAllThreat", &LuaUnit::ResetAllThreat },
{ NULL, NULL } { NULL, NULL }
}; };

View File

@@ -2714,5 +2714,41 @@ namespace LuaUnit
Eluna::Push(L, summon); Eluna::Push(L, summon);
return 1; return 1;
}*/ }*/
/**
* Clear the threat of a [Unit] in the threat list.
*
* @param [Unit] target
*/
int ClearThreat(lua_State* L, Unit* unit)
{
Unit* target = Eluna::CHECKOBJ<Unit>(L, 2);
unit->GetThreatMgr().ClearThreat(target);
return 0;
}
/**
* Resets the [Unit]'s threat list, setting all threat targets' threat to 0.
*/
int ResetAllThreat(lua_State* /*L*/, Unit* unit)
{
unit->GetThreatMgr().ResetAllThreat();
return 0;
}
/**
* Returns the threat of a [Unit].
*
* @param [Unit] target
* @return float threat
*/
int GetThreat(lua_State* L, Unit* unit)
{
Unit* target = Eluna::CHECKOBJ<Unit>(L, 2);
Eluna::Push(L, unit->GetThreatMgr().GetThreat(target));
return 1;
}
}; };
#endif #endif