Files

31 lines
1.6 KiB
Go

package methods
// ========================================================================
// Hostile-AI engagement contracts (build 4229938).
//
// These four packets flip a server-spawned agent out of the client's idle
// behaviour-tree state so it locks, fights and reacts to the player instead of
// standing still. Without them an agent spawned through SyncRaidBattleUnitAgent
// exists as a battle unit but never engages, which is what makes it look inert
// even though every combat field on the spawn itself is already correct.
//
// Field ORDER is the wire. All four shapes are copied verbatim from the
// LY-3.3 reference server, which states they were checked against the 4229938
// client Lua readers; they are also the only shapes that reference server ever
// shipped in a build where the enemy actually fought back.
//
// SyncUnitLockTarget 68009754 entityId u64, targetId u64
// SyncEnemyFightEdict 68882858 uid u64, isGive bool
// SyncEnemyDisarmState 68202623 id u64, isDisarmed bool (false = keep weapon)
// (SyncEnemyDetect 68738976 see Methods/Game/EnemyEngageMethods.cs)
//
// All four are Inline: the client reads them as flat argument lists, so no
// complex-object header is written.
// ========================================================================
// SyncUnitLockTarget(68009754) — makes the enemy target the player unit.
// SyncEnemyFightEdict(68882858) — gives the enemy the fight edict (enter combat).
//
// SyncEnemyDisarmState(68202623) — isDisarmed=false keeps the enemy's weapon visible
// and its attack behaviour available.
//