class_name DiveSnapshot extends RefCounted const BatterySnapshot = preload("res://game/domain/dive/battery_snapshot.gd") const OxygenSnapshot = preload("res://game/domain/dive/oxygen_snapshot.gd") const HullSnapshot = preload("res://game/domain/dive/hull_snapshot.gd") const DepthSnapshot = preload("res://game/domain/dive/depth_snapshot.gd") const ReturnEstimate = preload("res://game/domain/dive/return_estimate.gd") const DiveAlertState = preload("res://game/domain/dive/dive_alert_state.gd") const EjectionSnapshot = preload("res://game/domain/dive/ejection_snapshot.gd") const DiveTerminalReason = preload("res://game/domain/dive/dive_terminal_reason.gd") var session_id: StringName var tick_sequence: int var battery: BatterySnapshot var oxygen: OxygenSnapshot var hull: HullSnapshot var depth: DepthSnapshot var return_estimate: ReturnEstimate var alerts: DiveAlertState var ejection: EjectionSnapshot var terminal_reason: DiveTerminalReason.Value func _init( p_session_id: StringName, p_tick_sequence: int, p_battery: BatterySnapshot, p_oxygen: OxygenSnapshot, p_hull: HullSnapshot, p_depth: DepthSnapshot, p_return_estimate: ReturnEstimate, p_alerts: DiveAlertState, p_ejection: EjectionSnapshot, p_terminal_reason: DiveTerminalReason.Value ) -> void: session_id = p_session_id tick_sequence = p_tick_sequence battery = p_battery oxygen = p_oxygen hull = p_hull depth = p_depth return_estimate = p_return_estimate alerts = p_alerts ejection = p_ejection terminal_reason = p_terminal_reason func is_terminal() -> bool: return terminal_reason != DiveTerminalReason.Value.NONE