196 lines
5.9 KiB
C#
196 lines
5.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace MMO
|
|
{
|
|
public class MMOUIMain : MMOUIBase
|
|
{
|
|
public Action DelWatchAd;
|
|
|
|
[SerializeField] Text mTxtUsername;
|
|
[SerializeField] GameObject mGobMale;
|
|
[SerializeField] GameObject mGobFemale;
|
|
|
|
[SerializeField] GameObject mTplTaskCell;
|
|
[SerializeField] Transform mCtnTaskCell;
|
|
|
|
[SerializeField] Button mBtnEdit;
|
|
[SerializeField] Button mBtnHelp;
|
|
[SerializeField] Button mBtnClose;
|
|
|
|
private List<MMOTaskCell> mTaskCells;
|
|
|
|
protected override void OnInit()
|
|
{
|
|
base.OnInit();
|
|
|
|
BindBtn(mBtnEdit, OnClickEdit);
|
|
BindBtn(mBtnHelp, OnClickHelp);
|
|
BindBtn(mBtnClose, Exit);
|
|
}
|
|
|
|
public override void OnOpen()
|
|
{
|
|
base.OnOpen();
|
|
|
|
UpdateUserInfo();
|
|
RefreshTaskList();
|
|
}
|
|
|
|
public void UpdateUserInfo()
|
|
{
|
|
mTxtUsername.text = MMOUserData.Instance.Username;
|
|
SetSex(MMOUserData.Instance.Sex);
|
|
}
|
|
|
|
private void SetSex(int pSex)
|
|
{
|
|
mGobMale.SetActive(pSex == 1);
|
|
mGobFemale.SetActive(pSex == 0);
|
|
}
|
|
|
|
public void RefreshTaskList()
|
|
{
|
|
if (mTaskCells == null)
|
|
{
|
|
mTaskCells = new List<MMOTaskCell>();
|
|
}
|
|
|
|
for (int i = 0; i < MMOUserData.Instance.TaskRecordList.Count; i++)
|
|
{
|
|
MMOTaskCell tCell = null;
|
|
if (i < mTaskCells.Count)
|
|
{
|
|
tCell = mTaskCells[i];
|
|
}
|
|
else
|
|
{
|
|
tCell = GetNewCell();
|
|
mTaskCells.Add(tCell);
|
|
}
|
|
|
|
tCell.gameObject.SetActive(true);
|
|
tCell.ConfigTask(i, MMOUserData.Instance.TaskRecordList[i]);
|
|
}
|
|
|
|
HideUnused();
|
|
}
|
|
|
|
private MMOTaskCell GetNewCell()
|
|
{
|
|
GameObject tCellOb = Instantiate(mTplTaskCell, mCtnTaskCell);
|
|
|
|
tCellOb.transform.localScale = Vector3.one;
|
|
|
|
MMOTaskCell tCell = tCellOb.GetComponent<MMOTaskCell>();
|
|
tCell.DelRedeem = Redeem;
|
|
tCell.DelWatchAd = WatchAd;
|
|
|
|
return tCell;
|
|
}
|
|
|
|
private void HideUnused()
|
|
{
|
|
for (int i = MMOUserData.Instance.TaskRecordList.Count; i < mTaskCells.Count; i++)
|
|
{
|
|
mTaskCells[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
private void Redeem(int pIndex)
|
|
{
|
|
MMOTaskRecord tRecord = MMOUserData.Instance.TaskRecordList[pIndex];
|
|
|
|
if (tRecord.IsFinished)
|
|
{
|
|
if (tRecord.TaskType == MMOTaskType.GetDiamond)
|
|
{
|
|
MMOUserData.Instance.Diamond -= tRecord.TargetNum;
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskDiamondRedeem);
|
|
}
|
|
else if (tRecord.TaskType == MMOTaskType.PassLevel)
|
|
{
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskPassLevelRedeem);
|
|
}
|
|
else if (tRecord.TaskType == MMOTaskType.DailyLevel)
|
|
{
|
|
if (tRecord.TaskID % 100 == 3)
|
|
{
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskDailyLevelRedeem);
|
|
}
|
|
}
|
|
else if (tRecord.TaskType == MMOTaskType.DailyAds)
|
|
{
|
|
if (tRecord.TaskID % 100 == 3)
|
|
{
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskDailyAdsRedeem);
|
|
}
|
|
}
|
|
else if (tRecord.TaskType == MMOTaskType.WatchAds)
|
|
{
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskNoRobotRedeem);
|
|
}
|
|
else if (tRecord.TaskType == MMOTaskType.RiseRank)
|
|
{
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskRankRedeem);
|
|
}
|
|
|
|
MMODataTask tTask = MMOTableTask.Instance.GetData(tRecord.TaskID);
|
|
MMODataTask tNextTask = MMOTableTask.Instance.GetData(tTask.NextTaskID);
|
|
if (tNextTask != null)
|
|
{
|
|
MMOUserData.Instance.ModifyTaskRecord(tRecord.RecordID, tTask.NextTaskID);
|
|
|
|
if (tTask.GroupID == -1 || tTask.GroupID != tNextTask.GroupID)
|
|
{
|
|
MMOUINewTask tUINewTask = MMOModule.Instance.UIMgr.OpenUI<MMOUINewTask>();
|
|
string tContent = tNextTask.TaskDesc;
|
|
if (tNextTask.TaskType == MMOTaskType.RiseRank)
|
|
{
|
|
tContent = string.Format(tNextTask.TaskDesc, tNextTask.TargetNum - MMOUserData.Instance.GetTaskValue(tRecord.RecordKey));
|
|
}
|
|
tUINewTask.ConfigInfo(tContent, tNextTask.TaskType);
|
|
}
|
|
|
|
if (tNextTask.TaskType == MMOTaskType.Final)
|
|
{
|
|
MMOModule.Instance.LogEvent(MMOEvent.TaskFinalRedeem);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MMOUserData.Instance.RemoveTaskRecord(tRecord.RecordID);
|
|
}
|
|
|
|
RefreshTaskList();
|
|
}
|
|
else
|
|
{
|
|
MMOModule.Instance.ShowTip("Condition not completed");
|
|
}
|
|
}
|
|
|
|
private void WatchAd()
|
|
{
|
|
DelWatchAd?.Invoke();
|
|
}
|
|
|
|
private void OnClickEdit()
|
|
{
|
|
MMOModule.Instance.UIMgr.OpenUI<MMOUIFill>();
|
|
}
|
|
|
|
private void OnClickHelp()
|
|
{
|
|
MMOModule.Instance.UIMgr.OpenUI<MMOUIHelp>();
|
|
}
|
|
|
|
private void Exit()
|
|
{
|
|
MMOModule.Instance.Exit();
|
|
}
|
|
}
|
|
} |