Fix rain coverage and in-game session switching

This commit is contained in:
Alexander Sellite 2026-08-13 22:20:43 -04:00
parent 2045d8e288
commit e54ad1332b
8 changed files with 81 additions and 15 deletions

View file

@ -31,6 +31,9 @@ func _run() -> void:
"%NetworkFishingService"
) as NetworkFishingService
var fishing_spot := main.get_node("%FishingSpot") as FishingSpotType
var game_ui := main.get_node("UIPresentation/UIViewport/GameUI")
var fishing_status := game_ui.get_node("%StatusLabel") as Label
var fishing_panel := game_ui.get_node("%FishingPanel") as PanelContainer
var player := main.get("_player") as Player
assert(session.is_host())
assert(not session.is_open_host())
@ -71,6 +74,9 @@ func _run() -> void:
await process_frame
assert(fishing_spot.state == FishingSpotType.FishingState.WAITING_FOR_BITE)
assert(service.has_local_attempt())
assert(fishing_status.text.is_empty())
assert(not fishing_status.visible)
assert(not fishing_panel.visible)
var attempts: Dictionary = service.get("_attempts")
var attempt: NetworkFishingAttempt = attempts.get(session.get_local_peer_id())
assert(attempt != null)
@ -164,9 +170,12 @@ func _run() -> void:
<= FishQuality.BARRIER_HEALTH_MAXIMUMS[fish_catch.quality]
)
reference_controller.queue_free()
service.call("_cancel_attempt", session.get_local_peer_id(), "")
service.call("_on_attempt_escaped", session.get_local_peer_id())
await process_frame
assert(not service.has_local_attempt())
assert(fishing_status.text.is_empty())
assert(not fishing_status.visible)
assert(not fishing_panel.visible)
print("Fishing authority validation: PASS")
session.disconnect_session("")

View file

@ -206,7 +206,7 @@ func _run() -> void:
assert(int(save_data.get("save_version", -1)) == 7)
assert(PlayerJobService.validate_save_data(save_data.get("jobs", {})))
session.disconnect_session("Job system validation complete.")
_validate_pause_session_switch(main, session)
main.queue_free()
for _frame: int in 4:
await process_frame
@ -215,6 +215,28 @@ func _run() -> void:
quit()
func _validate_pause_session_switch(
main: Node,
session: NetworkSession,
) -> void:
var discovery := main.get_node("%DiscoveryClient") as DiscoveryClient
discovery.set("_pending_join_endpoint", "127.0.0.1:18141")
discovery.set("_pending_join_room_id", "session-switch-room")
discovery.set("_pending_join_token", "session-switch-token")
discovery.call(
"_set_public_join_state",
DiscoveryClient.PublicJoinState.CONNECTING,
)
main.call("_on_pause_join_game_requested", "127.0.0.1:18141")
assert(session.state == NetworkSession.State.CONNECTING)
assert(discovery.get("_pending_join_token") == "session-switch-token")
var join_probe_timer := discovery.get("_join_probe_timer") as Timer
assert(join_probe_timer != null and not join_probe_timer.is_stopped())
session.cancel_connection()
assert(session.state == NetworkSession.State.INACTIVE)
assert(str(discovery.get("_pending_join_token")).is_empty())
func _validate_unavailable_fishnet_layout() -> void:
var unavailable_page := TheNetPage.new()
unavailable_page.size = Vector2(1280.0, 720.0)

View file

@ -456,8 +456,14 @@ func _validate_weather_presentation() -> void:
assert(rain.emitting)
assert(rain.amount_ratio > 0.99)
assert(rain.amount == WorldTimeVisualControllerType.RAIN_PARTICLE_AMOUNT)
assert(rain.visibility_aabb == (
WorldTimeVisualControllerType.RAIN_VISIBILITY_AABB
))
var rain_material := rain.process_material as ParticleProcessMaterial
assert(rain_material != null)
assert(rain_material.emission_box_extents.is_equal_approx(
WorldTimeVisualControllerType.RAIN_EMISSION_EXTENTS
))
assert(is_equal_approx(
rain_material.initial_velocity_min,
WorldTimeVisualControllerType.RAIN_VELOCITY_MIN,