CTT/Unity/Assets/HotfixView/UI/QuestUI/QuestAnswerUI.cs

92 lines
2.8 KiB
C#

using Cal.DataTable;
using ET;
using FairyGUI;
using System;
using System.Collections.Generic;
namespace ET
{
public class QuestAnswerUIAwakeSyatem : AwakeSystem<QuestAnswerUI>
{
public override void Awake(QuestAnswerUI self)
{
self.Awake();
}
}
public class QuestAnswerUIStartSyatem : StartSystem<QuestAnswerUI>
{
public override void Start(QuestAnswerUI self)
{
self.Start();
}
}
public class QuestAnswerUIDestroySyatem : DestroySystem<QuestAnswerUI>
{
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<FUI_QuestAnswerUI>();
}
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<SessionComponent>().Call<M2C_AnswerQuest>(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<SessionComponent>().Call<M2C_NextAnswerQuest>(new C2M_NextAnswerQuest {});
if (!_ret.Message.IsNullOrEmpty())
{
TipHelper.OpenUI(_ret.Message);
return;
}
ShowQuest(_ret.ConfigId);
}
private void ShowQuest(int configId)
{
QuestConfig questConfig = DataTableHelper.Get<QuestConfig>(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()
{
}
}
}