acdream/src/AcDream.Runtime/Gameplay
Erik 6b8e29cde6 feat(runtime): FA6 — RuntimeFriendlyTargetQuery, the friendly-target counterpart
RuntimeHostileTargetQuery only classifies hostile monsters (via
CombatTargetPolicy.IsHostileMonster) — the FA6 two-bot fellowship/allegiance
headless gate needs the OTHER bot's server guid as a FRIENDLY target instead.
RuntimeFriendlyTargetQuery.FindClosestOtherPlayer mirrors the hostile query's
shape exactly (same hidden/no-draw filtering, same landblock-absolute
distance metric), substituting the retail PWD-bitfield IsPlayer bit (0x8,
via the existing EntityCollisionFlagsExt.FromPwdBitfield decoder) for hostile
classification. TryGetName resolves the streamed WeenieHeader name for
reporting/logging.

4 new conformance tests mirror RuntimeHostileTargetQueryTests's fixture
pattern: cross-landblock distance, hidden/no-draw/self/non-player rejection,
null-without-player-or-target, and unresolved-guid name lookup.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 09:39:42 +02:00
..
CharacterOptionsBlobSource.cs feat(runtime,net): Campaign OP slice OP1 — full character-option table, dirty model, real 0x01A1 blob builder 2026-08-10 23:31:34 +02:00
CharacterOptionTable.cs feat(runtime,net): Campaign OP slice OP1 — full character-option table, dirty model, real 0x01A1 blob builder 2026-08-10 23:31:34 +02:00
InteractionState.cs refactor(runtime): own canonical action state 2026-07-26 10:44:09 +02:00
LocalPlayerOutboundController.cs refactor(runtime): own local movement and outbound cadence 2026-07-26 12:33:53 +02:00
PlayerMovementController.cs fix(runtime): same-value LocalEntityId re-assertion is a no-op; file #365 headless hydration regression 2026-08-10 08:48:37 +02:00
PlayerPhysicsQuantumCapture.cs fix(physics): port retail slope landing stop 2026-07-31 09:10:53 +02:00
RuntimeActionState.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
RuntimeAllegianceState.cs fix(net,runtime): FA2 fix-round MUST-FIX -- allegiance clears at reset, 0x027C stops seeding 2026-08-12 02:17:04 +02:00
RuntimeCharacterState.cs feat(ui): Campaign OP slice OP4 — the Character tab 2026-08-11 04:31:34 +02:00
RuntimeCombatAttackState.cs refactor(runtime): own combat and magic intent 2026-07-26 11:56:40 +02:00
RuntimeCombatModeState.cs refactor(runtime): own combat and magic intent 2026-07-26 11:56:40 +02:00
RuntimeCombatTargetState.cs refactor(runtime): own combat and magic intent 2026-07-26 11:56:40 +02:00
RuntimeCommunicationState.cs fix(ui,runtime): OP4 review fixes — live re-seed, enable-gating, Combat panel re-point, universal timestamps 2026-08-11 05:30:26 +02:00
RuntimeFellowshipState.cs feat(runtime): FA4 -- fellowship roster enumeration + Social selection source 2026-08-12 04:40:19 +02:00
RuntimeFriendlyTargetQuery.cs feat(runtime): FA6 — RuntimeFriendlyTargetQuery, the friendly-target counterpart 2026-08-12 09:39:42 +02:00
RuntimeGameplayOwnership.cs feat(runtime): FA2 -- RuntimeFellowshipState + RuntimeAllegianceState sibling J-owners 2026-08-12 01:31:54 +02:00
RuntimeHostileTargetQuery.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
RuntimeInteractionTransactionState.cs fix(vendor): evidence-based pass — max-first stack ceiling; the local player resolves never-animated MoveTo targets 2026-08-08 17:17:04 +02:00
RuntimeInventoryState.cs feat(vendor): Slice 6 buy arc — shop items are real objects, vendor selection is THE selection, and Buy works (0x005F) 2026-08-07 20:28:26 +02:00
RuntimeLocalPlayerFirstEntryState.cs fix(runtime): name why a placement is parked and fail closed when it cannot resolve 2026-08-03 13:55:16 +02:00
RuntimeLocalPlayerFrameController.cs fix(headless): #365 — collision-admission-open window drove the first-entry conductor into a permanent seal refusal 2026-08-10 11:34:36 +02:00
RuntimeLocalPlayerIdentityState.cs refactor(runtime): compose canonical game runtime root 2026-07-26 18:51:17 +02:00
RuntimeLocalPlayerMovementState.cs fix(ui,runtime): OP4 review fixes — live re-seed, enable-gating, Combat panel re-point, universal timestamps 2026-08-11 05:30:26 +02:00
RuntimeLocalPlayerPhysicsPublicationState.cs fix(runtime): transient collision-seal failure no longer terminal for login (#357) 2026-08-09 12:32:53 +02:00
RuntimeSpellCastState.cs refactor(runtime): own combat and magic intent 2026-07-26 11:56:40 +02:00
RuntimeVendorRangeQuery.cs fix(vendor): the range watcher measures retail's cylinder-gap — the acceptance-band self-close is dead (Fable, from the live trace) 2026-08-08 17:24:49 +02:00
TurbineChatMembershipGate.cs fix(chat): CH3 review fixes — phantom UN-9, allegiance-broadcast echo, /a legacy fallback 2026-08-09 20:24:29 +02:00
VendorShopItemMaterializer.cs fix(vendor): evidence-based pass — max-first stack ceiling; the local player resolves never-animated MoveTo targets 2026-08-08 17:17:04 +02:00