92 lines
2.8 KiB
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|