using Cal.DataTable; using ET; using FairyGUI; using System; using System.Collections.Generic; namespace ET { public class QuestAnswerUIAwakeSyatem : AwakeSystem { public override void Awake(QuestAnswerUI self) { self.Awake(); } } public class QuestAnswerUIStartSyatem : StartSystem { public override void Start(QuestAnswerUI self) { self.Start(); } } public class QuestAnswerUIDestroySyatem : DestroySystem { public override void Destroy(QuestAnswerUI self) { self.Destroy(); } } public class QuestAnswerUI : Entity { enum Answer { None,A,B,C } private FUI_QuestAnswerUI ui; public int configId; private Scene zoneScene; public void Awake() { zoneScene = this.ZoneScene(); ui = GetParent(); } public void Start() { AwakeAsync(configId).Coroutine(); } private async ETVoid AwakeAsync(int configId) { ShowQuest(configId); ui.m_btnA.onClick.Set(() => { OnClickAnswer(Answer.A).Coroutine(); }); ui.m_btnB.onClick.Set(() => { OnClickAnswer(Answer.B).Coroutine(); }); ui.m_btnC.onClick.Set(() => { OnClickAnswer(Answer.C).Coroutine(); }); await ETTask.CompletedTask; } private async ETVoid OnClickAnswer(Answer answer) { M2C_AnswerQuest ret = await zoneScene.GetComponent().Call(new C2M_AnswerQuest {Answer = (int)answer }); if (!ret.Message.IsNullOrEmpty()) { TipHelper.OpenUI(ret.Message); return; } TipHelper.OpenUI($"本次得分:{ret.Scord}\n用时:{ret.Time * 0.001f:f2}\n连续正确数:{ret.ContinueCorrectCount}"); await TimerComponent.Instance.WaitAsync(1000); M2C_NextAnswerQuest _ret = await zoneScene.GetComponent().Call(new C2M_NextAnswerQuest {}); if (!_ret.Message.IsNullOrEmpty()) { TipHelper.OpenUI(_ret.Message); return; } ShowQuest(_ret.ConfigId); } private void ShowQuest(int configId) { QuestConfig questConfig = DataTableHelper.Get(configId); ui.m_txtTitle .text= questConfig.Question; ui.m_btnA.title = questConfig.Answer_A; ui.m_btnB.title = questConfig.Answer_B; ui.m_btnC.title = questConfig.Answer_C; } public void Destroy() { } } }