NEO-32: gdformat main.gd; touch cooldown state tests
parent
75eec11f0d
commit
76fd1cc70a
|
|
@ -307,12 +307,18 @@ func _ensure_cooldown_poll_timer() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _on_hotbar_loadout_changed_sync_cooldown(_loadout: Dictionary) -> void:
|
func _on_hotbar_loadout_changed_sync_cooldown(_loadout: Dictionary) -> void:
|
||||||
if is_instance_valid(_cooldown_client) and _cooldown_client.has_method("request_sync_from_server"):
|
if (
|
||||||
|
is_instance_valid(_cooldown_client)
|
||||||
|
and _cooldown_client.has_method("request_sync_from_server")
|
||||||
|
):
|
||||||
_cooldown_client.call("request_sync_from_server")
|
_cooldown_client.call("request_sync_from_server")
|
||||||
|
|
||||||
|
|
||||||
func _on_cooldown_poll_timeout() -> void:
|
func _on_cooldown_poll_timeout() -> void:
|
||||||
if is_instance_valid(_cooldown_client) and _cooldown_client.has_method("request_sync_from_server"):
|
if (
|
||||||
|
is_instance_valid(_cooldown_client)
|
||||||
|
and _cooldown_client.has_method("request_sync_from_server")
|
||||||
|
):
|
||||||
_cooldown_client.call("request_sync_from_server")
|
_cooldown_client.call("request_sync_from_server")
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -470,7 +476,9 @@ func _request_hotbar_cast_slot(slot_index: int) -> void:
|
||||||
if _cooldown_state != null and _cooldown_state.has_method("is_slot_cooling"):
|
if _cooldown_state != null and _cooldown_state.has_method("is_slot_cooling"):
|
||||||
if bool(_cooldown_state.call("is_slot_cooling", resolved_slot)):
|
if bool(_cooldown_state.call("is_slot_cooling", resolved_slot)):
|
||||||
if is_instance_valid(_cast_feedback_label):
|
if is_instance_valid(_cast_feedback_label):
|
||||||
_cast_feedback_label.text = "ability_cast_denied: %s (client guard)" % COOLDOWN_REASON_ON_CD
|
_cast_feedback_label.text = (
|
||||||
|
"ability_cast_denied: %s (client guard)" % COOLDOWN_REASON_ON_CD
|
||||||
|
)
|
||||||
push_warning("ability_cast_denied reasonCode=%s (client guard)" % COOLDOWN_REASON_ON_CD)
|
push_warning("ability_cast_denied reasonCode=%s (client guard)" % COOLDOWN_REASON_ON_CD)
|
||||||
return
|
return
|
||||||
var started: bool = false
|
var started: bool = false
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ const CooldownStateScript := preload("res://scripts/cooldown_state.gd")
|
||||||
|
|
||||||
|
|
||||||
func test_remaining_is_zero_when_end_before_server_time() -> void:
|
func test_remaining_is_zero_when_end_before_server_time() -> void:
|
||||||
# Arrange
|
# Arrange — server anchor after end → slot reads as ready.
|
||||||
var state: RefCounted = CooldownStateScript.new()
|
var state: RefCounted = CooldownStateScript.new()
|
||||||
var snap := {
|
var snap := {
|
||||||
"serverTimeUtc": "2026-01-01T12:01:00.000Z",
|
"serverTimeUtc": "2026-01-01T12:01:00.000Z",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue