feat(client): resolve OQ-07 — insert-off suppresses verb labels (#522)
Option (a): cursor shape still changes (body orients to targets), but verb labels and interaction prompts are suppressed when insert_active is false. Amends D-056 and D-057 with resolution note. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -305,6 +305,46 @@ func test_cursor_changes_require_los() -> void:
|
||||
cursor.queue_free()
|
||||
|
||||
|
||||
# -- OQ-07: Insert-off behavior (D-056 amendment, #522) ----------------------
|
||||
# Option (a): cursor shape still changes, verb labels suppressed.
|
||||
|
||||
func test_insert_off_cursor_still_changes_shape() -> void:
|
||||
# OQ-07 option (a): cursor state machine still fires when insert is off.
|
||||
# The character's body orients toward targets even without insert data.
|
||||
var cursor = _make_cursor_or_skip()
|
||||
if cursor == null:
|
||||
return
|
||||
if cursor.has_method("set_insert_active") and cursor.has_method("set_hover_target"):
|
||||
cursor.set_insert_active(false)
|
||||
cursor.set_hover_target({"entity_id": 2, "kind": "Npc", "relationship": "Unknown"})
|
||||
assert_that(str(cursor.get_state())).is_equal("EntityHover")
|
||||
cursor.queue_free()
|
||||
|
||||
|
||||
func test_insert_off_suppresses_interactions() -> void:
|
||||
# OQ-07 option (a): with insert off, should_show_interactions() returns false.
|
||||
# Verb labels (z-layer 6) are suppressed — no actionable insert data.
|
||||
var cursor = _make_cursor_or_skip()
|
||||
if cursor == null:
|
||||
return
|
||||
if cursor.has_method("set_insert_active") and cursor.has_method("should_show_interactions"):
|
||||
cursor.set_insert_active(false)
|
||||
assert_that(cursor.should_show_interactions()).is_false()
|
||||
cursor.queue_free()
|
||||
|
||||
|
||||
func test_insert_on_restores_interaction_display() -> void:
|
||||
# Re-enabling insert allows interactions to show again.
|
||||
var cursor = _make_cursor_or_skip()
|
||||
if cursor == null:
|
||||
return
|
||||
if cursor.has_method("set_insert_active") and cursor.has_method("should_show_interactions"):
|
||||
cursor.set_insert_active(false)
|
||||
cursor.set_insert_active(true)
|
||||
assert_that(cursor.should_show_interactions()).is_true()
|
||||
cursor.queue_free()
|
||||
|
||||
|
||||
# -- Interaction range (D-056) ------------------------------------------------
|
||||
|
||||
func test_click_interaction_range() -> void:
|
||||
|
||||
Reference in New Issue
Block a user