using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; using HotUpdate.Gameplay; using HotUpdate.UI; using TMPro; using UnityEditor; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public static class VerifySettings { static PrototypeFlow Flow => UnityEngine.Object.FindObjectOfType(); static void Check(bool value, string message) { if (!value) throw new Exception(message); } static async Task Until(Func condition, int seconds = 20) { var end = DateTime.UtcNow.AddSeconds(seconds); while (!condition()) { Check(DateTime.UtcNow < end, "Settings timed out: " + Flow?.Page); await Task.Delay(100); } } static Button Button(string name) => UnityEngine.Object.FindObjectsOfType