feat(combat): destroyables keep their attack priority

DestructibleComponent.attack_priority is loaded onto the DestroyableComponent as a signed value. The client's
LWODestroyableComponent (LoadDataFromTemplate, 0x00c9f900) starts it at 1 and keeps 1 when the column is empty, and
answers GetAttackPriority with it; the server now does the same so TacArcs can order their targets by it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-29 20:58:12 -05:00
parent 044933ebee
commit e017c11aa2
4 changed files with 12 additions and 2 deletions

View File

@@ -253,6 +253,12 @@ public:
void SetIsNPC(bool value) { m_IsNPC = value; }
bool GetIsNPC() const { return m_IsNPC; }
/**
* The DestructibleComponent's attack_priority: TacArcs that use attack priority target lower values first
*/
void SetAttackPriority(const int32_t value) { m_AttackPriority = value; }
int32_t GetAttackPriority() const { return m_AttackPriority; }
/**
* Returns the current is-dead value, this is mostly unused
* @return the current is-dead value, this is mostly unused
@@ -606,6 +612,9 @@ private:
bool m_IsNPC = false;
// The client's LWODestroyableComponent starts at 1 and keeps it when the column is empty
int32_t m_AttackPriority = 1;
/**
* Whether this entity is dead. Unused, here for serialization
*/