2021-04-08 20:09:59 +08:00
|
|
|
|
|
|
|
|
|
using Cal.DataTable;
|
|
|
|
|
using ET;
|
|
|
|
|
using FairyGUI;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace ET
|
|
|
|
|
{
|
|
|
|
|
public class TaskUIAwakeSyatem : AwakeSystem<TaskUI>
|
|
|
|
|
{
|
|
|
|
|
public override void Awake(TaskUI self)
|
|
|
|
|
{
|
|
|
|
|
self.Awake();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public class TaskUIDestroySyatem : DestroySystem<TaskUI>
|
|
|
|
|
{
|
|
|
|
|
public override void Destroy(TaskUI self)
|
|
|
|
|
{
|
|
|
|
|
self.Destroy();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public class TaskUI : Entity
|
|
|
|
|
{
|
|
|
|
|
public FUI_TaskUI ui;
|
2021-04-20 00:25:04 +08:00
|
|
|
|
private Scene zoneScene;
|
|
|
|
|
|
2021-04-08 20:09:59 +08:00
|
|
|
|
public void Awake()
|
|
|
|
|
{
|
2021-04-20 00:25:04 +08:00
|
|
|
|
zoneScene = this.ZoneScene();
|
2021-04-08 20:09:59 +08:00
|
|
|
|
ui = GetParent<FUI_TaskUI>();
|
|
|
|
|
AwakeAsync().Coroutine();
|
|
|
|
|
}
|
|
|
|
|
private async ETVoid AwakeAsync()
|
|
|
|
|
{
|
|
|
|
|
//!切换控制器
|
|
|
|
|
ui.m_contrl.selectedIndex = 0;
|
|
|
|
|
//!发起请求
|
2021-04-20 00:25:04 +08:00
|
|
|
|
M2C_GetTask getTaskRet = await zoneScene.GetComponent<SessionComponent>().Call<M2C_GetTask>(new C2M_GetTask());
|
2021-04-08 20:09:59 +08:00
|
|
|
|
if (!getTaskRet.Message.IsNullOrEmpty()) TipHelper.OpenUI(getTaskRet.Message);
|
|
|
|
|
//!初始化列表
|
|
|
|
|
ui.m_taskList.RemoveChildrenToPool();
|
2021-04-11 19:50:39 +08:00
|
|
|
|
foreach (TansferTask tansferTask in getTaskRet.TaskList)
|
2021-04-08 20:09:59 +08:00
|
|
|
|
{
|
2021-04-11 19:50:39 +08:00
|
|
|
|
GButton btn = ui.m_taskList.AddItemFromPool(FUI_ButtonTaskItem.URL).asButton;
|
2021-04-08 20:09:59 +08:00
|
|
|
|
TaskBase taskBase = DataTableHelper.Get<TaskBase>(tansferTask.Id);
|
|
|
|
|
if (taskBase == null) continue;
|
|
|
|
|
btn.title = taskBase.Name;
|
|
|
|
|
btn.onClick.Set(() =>
|
|
|
|
|
{
|
|
|
|
|
//!切换控制器
|
|
|
|
|
ui.m_contrl.selectedIndex = 1;
|
|
|
|
|
ui.m_txtTaskName.text = taskBase.Name;
|
|
|
|
|
ui.m_txtContent.text = " " + taskBase.DialogDesc;
|
2021-04-11 19:50:39 +08:00
|
|
|
|
string completeString = GetCompleteCount(taskBase, tansferTask.CurrCompleteList);
|
2021-04-08 20:09:59 +08:00
|
|
|
|
ui.m_txtTarget.text = $" {taskBase.TaskTargetDesc}{completeString}";
|
2021-04-11 19:50:39 +08:00
|
|
|
|
NPCBase npcBase = DataTableHelper.Get<NPCBase>(taskBase.SubmitNPCId);
|
|
|
|
|
Sys_Scene sysScene = DataTableHelper.Get<Sys_Scene>(npcBase.SceneId);
|
2021-04-08 20:09:59 +08:00
|
|
|
|
ui.m_txtTargetUnitOrPos.text = $" {npcBase.Name}({sysScene.Desc}{(npcBase.MapLayer == 1 ? "" : $"-{npcBase.MapLayer}层")})";
|
|
|
|
|
ui.m_txtRewardCount.text = GetRewardCount(taskBase.RwardCount);
|
|
|
|
|
ui.m_RewardList.RemoveChildrenToPool();
|
|
|
|
|
for (int i = 0; i < taskBase.RewardArr.Length; i++)
|
|
|
|
|
{
|
2021-04-11 19:50:39 +08:00
|
|
|
|
TaskBase.Reward reward = taskBase.RewardArr[i];
|
|
|
|
|
GButton rewardItem = ui.m_RewardList.AddItemFromPool(FUI_ButtonTaskRewardItem.URL).asButton;
|
|
|
|
|
(string itemName, string IconName) = BagHelper.GetIconName(reward.Reward_Id);
|
2021-04-08 20:09:59 +08:00
|
|
|
|
rewardItem.icon = UIPackage.GetItemURL(FUIPackage.Bag, IconName);
|
|
|
|
|
rewardItem.title = $"{itemName}\r\n数量:{reward.Reward_Count}";
|
|
|
|
|
//!显示页签
|
|
|
|
|
rewardItem.onRollOver.Set(() =>
|
|
|
|
|
{
|
|
|
|
|
TabHelper.OpenUI(reward.Reward_Id);
|
|
|
|
|
});
|
|
|
|
|
//!隐藏页签
|
|
|
|
|
rewardItem.onRollOut.Set(TabHelper.HideUI);
|
|
|
|
|
//TabHelper.SetTab(rewardItem, () => TabHelper.OpenUI(reward.RewardId));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static string GetCompleteCount(TaskBase taskBase, List<int> currCompleteList)
|
|
|
|
|
{
|
|
|
|
|
string str = string.Empty;
|
|
|
|
|
switch ((TaskTargetType)taskBase.TargetType)
|
|
|
|
|
{
|
|
|
|
|
default: return null;
|
|
|
|
|
case TaskTargetType.KillSpecialTask:
|
|
|
|
|
for (int i = 0; i < currCompleteList.Count; i++)
|
|
|
|
|
{
|
2021-04-11 19:50:39 +08:00
|
|
|
|
int count = currCompleteList[i];
|
|
|
|
|
TaskBase.CountTarget countTarget = taskBase.CountTargetArr[i];
|
2021-04-08 20:09:59 +08:00
|
|
|
|
MonsterBase monsterBase = DataTableHelper.Get<MonsterBase>(countTarget.CountTarget_Id);
|
|
|
|
|
str += $"\r\n{monsterBase.NickName}:({count}/{countTarget.CountTarget_Count})";
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
case TaskTargetType.KillAnyTask:
|
|
|
|
|
return $"\r\n({currCompleteList[0]}/{taskBase.AnyTargetCount})";
|
|
|
|
|
case TaskTargetType.DialogTask:
|
|
|
|
|
case TaskTargetType.ChangeMapTask:
|
|
|
|
|
case TaskTargetType.CompleteTask:
|
|
|
|
|
return $"\r\n({currCompleteList[0]}/1)";
|
|
|
|
|
case TaskTargetType.CollectionTask:
|
|
|
|
|
for (int i = 0; i < currCompleteList.Count; i++)
|
|
|
|
|
{
|
2021-04-11 19:50:39 +08:00
|
|
|
|
int count = currCompleteList[i];
|
|
|
|
|
TaskBase.CountTarget countTarget = taskBase.CountTargetArr[i];
|
2021-04-08 20:09:59 +08:00
|
|
|
|
str += $"\r\n{BagHelper.GetIconName(countTarget.CountTarget_Id).Item1}:({count}/{countTarget.CountTarget_Count})";
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
case TaskTargetType.LevelTask:
|
|
|
|
|
|
|
|
|
|
return str;
|
|
|
|
|
case TaskTargetType.SubmitTask:
|
|
|
|
|
for (int i = 0; i < currCompleteList.Count; i++)
|
|
|
|
|
{
|
2021-04-11 19:50:39 +08:00
|
|
|
|
int count = currCompleteList[i];
|
|
|
|
|
TaskBase.CountTarget countTarget = taskBase.CountTargetArr[i];
|
2021-04-08 20:09:59 +08:00
|
|
|
|
str += $"\r\n{BagHelper.GetIconName(countTarget.CountTarget_Id).Item1}:({count}/{countTarget.CountTarget_Count})";
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
await ETTask.CompletedTask;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string GetRewardCount(int count)
|
|
|
|
|
{
|
|
|
|
|
if (count == 0) return string.Empty;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return $"选择{count}个奖励";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public void Destroy()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|