using ET; using System; using System.Collections.Generic; namespace ET { public static class SessionComponentHelper { public static async ETTask TipCall(Scene zoneScene,TQuery query,Func queryRet,Action retAction) where TQuery:ET.IRequest where TQueryRet:ET.IResponse where T : ET.IRequest where TRet : ET.IResponse { TQueryRet _queryRet =await zoneScene.GetComponent().Call(query); if (!_queryRet.Message.IsNullOrEmpty()) { TipHelper.OpenUI(_queryRet.Message); return; } if (queryRet == null) return; (string str, T t) = queryRet.Invoke(_queryRet); FUI_TipUI tipUI = TipHelper.OpenUI(str, tipType: TipType.Double); tipUI.m_btnYes.self.onClick.Clear(); tipUI.m_btnYes.self.onClick.Add(async () => { TRet ret = await zoneScene.GetComponent().Call(t); if (!ret.Message.IsNullOrEmpty()) { TipHelper.OpenUI(ret.Message); return; } retAction?.Invoke(ret); }); } public static void TipCall(Scene zoneScene,string tip,T t,Action retAction) where T : ET.IRequest where TRet : ET.IResponse { FUI_TipUI tipUI = TipHelper.OpenUI(tip, tipType: TipType.Double); tipUI.m_btnYes.self.onClick.Clear(); tipUI.m_btnYes.self.onClick.Add(async () => { TRet ret = await zoneScene.GetComponent().Call(t); if (!ret.Message.IsNullOrEmpty()) { TipHelper.OpenUI(ret.Message); return; } retAction?.Invoke(ret); }); } } }