From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/Guild/XGuildDailyTaskDocument.cs | 1200 ++++++++++++++++++++ 1 file changed, 1200 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/Guild/XGuildDailyTaskDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/Guild/XGuildDailyTaskDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/Guild/XGuildDailyTaskDocument.cs b/Client/Assets/Scripts/XMainClient/Guild/XGuildDailyTaskDocument.cs new file mode 100644 index 00000000..ded1df9d --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Guild/XGuildDailyTaskDocument.cs @@ -0,0 +1,1200 @@ +using System; +using System.Collections.Generic; +using KKSG; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XGuildDailyTaskDocument : XDocComponent + { + public override uint ID + { + get + { + return XGuildDailyTaskDocument.uuID; + } + } + + public static XGuildDailyTaskDocument Doc + { + get + { + return XSingleton.singleton.Doc.GetXComponent(XGuildDailyTaskDocument.uuID) as XGuildDailyTaskDocument; + } + } + + public uint TaskRoleLevel + { + get + { + return this._taskRoleLevel; + } + set + { + this._taskRoleLevel = value; + this.ResetRewardsMap(); + } + } + + public uint AskedNum + { + get + { + return this._askedNum; + } + set + { + this._askedNum = value; + } + } + + public uint Count + { + get + { + return this._count; + } + set + { + this._count = value; + } + } + + public bool IsRewarded + { + get + { + return this._isRewarded; + } + set + { + this._isRewarded = value; + } + } + + public List DailyTaskRefreshRoleInfoList + { + get + { + return this._dailyTaskRefreshRoleInfoList; + } + } + + public List AskInfoList + { + get + { + return this._askInfoList; + } + } + + public List DailyTaskRefreshRecordList + { + get + { + return this._dailyTaskRefreshRecordList; + } + } + + public uint Refresh_num + { + get + { + return this._refresh_num; + } + } + + public uint CurScore + { + get + { + return this._curScore; + } + } + + public uint TodayBuyNumber + { + get + { + return this._todayBuyNum; + } + } + + public uint HelpNum + { + get + { + return this._helpNum; + } + } + + public uint MyLuck + { + get + { + return this._myLuck; + } + } + + public bool DailyTaskHelpRefreshIcon { get; set; } + + public bool DailyTaskBeenRefreshIcon { get; set; } + + public new static readonly uint uuID = XSingleton.singleton.XHash("GuildDailyTaskDocument"); + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + private static DailyTask _dailyTaskInfoTable = new DailyTask(); + + public static DailyTaskReward DailyTaskRewardTable = new DailyTaskReward(); + + private Dictionary _guildTaskRewardWithMap = new Dictionary(); + + private List _curGuildDailyTaskList = new List(); + + private uint _taskRoleLevel = 1u; + + private uint _askedNum = 0u; + + private uint _count = 0u; + + private bool _isRewarded = false; + + private List _dailyTaskRefreshRoleInfoList = new List(); + + private uint _myLuck = 1u; + + private uint _refresh_num; + + private uint _todayBuyNum; + + private List _askInfoList = new List(); + + private uint _helpNum; + + private List _dailyTaskRefreshRecordList = new List(); + + private uint _curScore; + + public static void Execute(OnLoadedCallback callback = null) + { + XGuildDailyTaskDocument.AsyncLoader.AddTask("Table/DailyTask", XGuildDailyTaskDocument._dailyTaskInfoTable, false); + XGuildDailyTaskDocument.AsyncLoader.AddTask("Table/DailyTaskReward", XGuildDailyTaskDocument.DailyTaskRewardTable, false); + XGuildDailyTaskDocument.AsyncLoader.Execute(callback); + } + + public override void OnAttachToHost(XObject host) + { + base.OnAttachToHost(host); + this.DailyTaskHelpRefreshIcon = false; + this.DailyTaskBeenRefreshIcon = false; + } + + protected override void EventSubscribe() + { + base.EventSubscribe(); + base.RegisterEvent(XEventDefine.XEvent_TaskStateChange, new XComponent.XEventHandler(this.OnTaskStateChanged)); + } + + public override void OnDetachFromHost() + { + base.OnDetachFromHost(); + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + this.InitFromServerData(arg.PlayerInfo.task_record); + } + + public override void OnEnterSceneFinally() + { + base.OnEnterSceneFinally(); + } + + public void SendGetDailyTaskInfo() + { + RpcC2G_GetDailyTaskInfo rpc = new RpcC2G_GetDailyTaskInfo(); + XSingleton.singleton.Send(rpc); + } + + public void OnGetDailyTasks(GetDailyTaskInfoRes res) + { + this.UpdateTaskContent(res.task); + this.TaskRoleLevel = res.accept_level; + this.AskedNum = res.askhelp_num; + this.Count = res.count; + this.IsRewarded = res.is_rewarded; + this._curScore = res.score; + this._refresh_num = res.remain_refresh_count; + this._myLuck = Math.Max(1u, res.luck); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.RefreshTaskContent(); + } + } + + public void GiveUpTask() + { + RpcC2G_DailyTaskGiveUp rpc = new RpcC2G_DailyTaskGiveUp(); + XSingleton.singleton.Send(rpc); + } + + public void OnGiveUpTask(DailyTaskGiveUpRes oRes) + { + bool flag = oRes.result == ErrorCode.ERR_SUCCESS; + if (flag) + { + bool flag2 = DlgBase.singleton.IsVisible(); + if (flag2) + { + DlgBase.singleton.SetVisibleWithAnimation(false, null); + } + } + else + { + XSingleton.singleton.ShowSystemTip(oRes.result, "fece00"); + } + } + + private bool OnTaskStateChanged(XEventArgs e) + { + XTaskStatusChangeArgs xtaskStatusChangeArgs = e as XTaskStatusChangeArgs; + bool flag = xtaskStatusChangeArgs.status == TaskStatus.TaskStatus_Taked; + if (flag) + { + uint id = xtaskStatusChangeArgs.id; + TaskTableNew.RowData taskData = XTaskDocument.GetTaskData(id); + bool flag2 = taskData != null; + if (flag2) + { + bool flag3 = taskData.TaskType == 4u; + if (flag3) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + } + bool flag4 = taskData.TaskType == 7u; + if (flag4) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + } + } + } + return true; + } + + private void UpdateTaskContent(List task) + { + this._curGuildDailyTaskList.Clear(); + for (int i = 0; i < task.Count; i++) + { + DailyTaskInfo dailyTaskInfo = task[i]; + this._curGuildDailyTaskList.Add(new GuildDailyTaskInfo + { + taskID = dailyTaskInfo.id, + step = dailyTaskInfo.step, + isRewarded = dailyTaskInfo.is_rewarded, + hasAsked = dailyTaskInfo.ask_help + }); + } + this._curGuildDailyTaskList.Sort(new Comparison(this.SortDailyTask)); + } + + public DailyTaskReward.RowData GetSingleTaskRewardInfoByID(GuildTaskType type, uint taskID) + { + DailyTask.RowData dailyTaskTableInfoByID = this.GetDailyTaskTableInfoByID(taskID); + bool flag = dailyTaskTableInfoByID != null; + if (flag) + { + uint mappingValueWithQualityAndType = XGuildDailyTaskDocument.GetMappingValueWithQualityAndType(type, 1u, dailyTaskTableInfoByID.taskquality); + DailyTaskReward.RowData result; + bool flag2 = this._guildTaskRewardWithMap.TryGetValue(mappingValueWithQualityAndType, out result); + if (flag2) + { + return result; + } + } + return null; + } + + public DailyTaskReward.RowData GetTotalTaskRewardInfo(GuildTaskType type, uint count) + { + uint mappingValueWithQualityAndType = XGuildDailyTaskDocument.GetMappingValueWithQualityAndType(type, 2u, count); + DailyTaskReward.RowData rowData; + bool flag = this._guildTaskRewardWithMap.TryGetValue(mappingValueWithQualityAndType, out rowData); + DailyTaskReward.RowData result; + if (flag) + { + result = rowData; + } + else + { + result = null; + } + return result; + } + + public bool GoToTakeTask() + { + XTaskDocument specificDocument = XDocuments.GetSpecificDocument(XTaskDocument.uuID); + XTaskRecord taskRecord = specificDocument.TaskRecord; + for (int i = 0; i < taskRecord.Tasks.Count; i++) + { + bool flag = taskRecord.Tasks[i].Status == TaskStatus.TaskStatus_CanTake && taskRecord.Tasks[i].TableData.TaskType == 4u; + if (flag) + { + return true; + } + } + return false; + } + + public int GetRewardedTaskCount() + { + int num = 0; + for (int i = 0; i < this._curGuildDailyTaskList.Count; i++) + { + bool isRewarded = this._curGuildDailyTaskList[i].isRewarded; + if (isRewarded) + { + num++; + } + } + return num; + } + + internal GuildDailyTaskInfo GetTaskInfoByIndex(int index) + { + bool flag = index < this._curGuildDailyTaskList.Count; + GuildDailyTaskInfo result; + if (flag) + { + result = this._curGuildDailyTaskList[index]; + } + else + { + result = null; + } + return result; + } + + public int GetTaskItemCount() + { + return this._curGuildDailyTaskList.Count; + } + + public void SendToGetMyTaskReward(uint type, uint id) + { + RpcC2G_GetDailyTaskReward rpcC2G_GetDailyTaskReward = new RpcC2G_GetDailyTaskReward(); + rpcC2G_GetDailyTaskReward.oArg.type = type; + rpcC2G_GetDailyTaskReward.oArg.id = id; + XSingleton.singleton.Send(rpcC2G_GetDailyTaskReward); + } + + public void OnGetDailyTaskReward(GetDailyTaskRewardArg oArg, GetDailyTaskRewardRes oRes) + { + bool flag = oRes.code == ErrorCode.ERR_SUCCESS; + if (flag) + { + XLevelSealDocument specificDocument = XDocuments.GetSpecificDocument(XLevelSealDocument.uuID); + int rewardedTaskCount = XGuildDailyTaskDocument.Doc.GetRewardedTaskCount(); + bool flag2 = rewardedTaskCount >= XSingleton.singleton.GetInt("DailyTaskMinTotalTaskCount") && oArg.type == 2u; + if (flag2) + { + DailyTaskReward.RowData totalTaskRewardInfo = this.GetTotalTaskRewardInfo(GuildTaskType.DailyTask, (uint)rewardedTaskCount); + bool flag3 = totalTaskRewardInfo == null; + if (flag3) + { + return; + } + List list = new List(); + SeqListRef? rewadsByScore = this.GetRewadsByScore(totalTaskRewardInfo, this._curScore); + bool flag4 = rewadsByScore != null; + if (flag4) + { + for (int i = 0; i < (int)rewadsByScore.Value.count; i++) + { + ItemBrief itemBrief = new ItemBrief(); + itemBrief.itemID = rewadsByScore.Value[i, 0]; + int num = (int)rewadsByScore.Value[i, 1]; + bool flag5 = itemBrief.itemID == 4u && specificDocument.IsInLevelSeal(); + if (flag5) + { + num = (int)((double)num * 0.5); + } + itemBrief.itemCount = (uint)num; + list.Add(itemBrief); + } + } + bool flag6 = rewardedTaskCount >= this.GetTaskItemCount(); + if (flag6) + { + List additionalRewards = this.GetAdditionalRewards(); + foreach (GuildTaskReward guildTaskReward in additionalRewards) + { + ItemBrief itemBrief2 = new ItemBrief(); + itemBrief2.itemID = guildTaskReward.itemID; + uint num2 = guildTaskReward.count; + bool flag7 = guildTaskReward.itemID == 4u && specificDocument.IsInLevelSeal(); + if (flag7) + { + num2 = (uint)(num2 * 0.5); + } + itemBrief2.itemCount = num2; + list.Add(itemBrief2); + } + } + DlgBase.singleton.ShowByTitle(list, XSingleton.singleton.GetString("DailyTaskRewards"), null); + } + this.UpdateTaskContent(oRes.task); + bool flag8 = oArg.type == 1u; + if (flag8) + { + bool flag9 = DlgBase.singleton.IsVisible(); + if (flag9) + { + DlgBase.singleton.RefreshTaskItemByID(oArg.id); + } + } + else + { + bool flag10 = oArg.type == 2u; + if (flag10) + { + bool flag11 = DlgBase.singleton.IsVisible(); + if (flag11) + { + DlgBase.singleton.SetVisibleWithAnimation(false, null); + } + } + } + } + else + { + XSingleton.singleton.ShowSystemTip(oRes.code, "fece00"); + } + } + + public GuildDailyTaskInfo GetTaskInfoByID(uint id) + { + for (int i = 0; i < this._curGuildDailyTaskList.Count; i++) + { + bool flag = this._curGuildDailyTaskList[i].taskID == id; + if (flag) + { + return this._curGuildDailyTaskList[i]; + } + } + return null; + } + + public DailyTask.RowData GetDailyTaskTableInfoByID(uint taskID) + { + for (int i = 0; i < XGuildDailyTaskDocument._dailyTaskInfoTable.Table.Length; i++) + { + DailyTask.RowData rowData = XGuildDailyTaskDocument._dailyTaskInfoTable.Table[i]; + bool flag = rowData.taskID == taskID; + if (flag) + { + return rowData; + } + } + return null; + } + + public List GetAdditionalRewards() + { + for (int i = 0; i < XGuildDailyTaskDocument.DailyTaskRewardTable.Table.Length; i++) + { + DailyTaskReward.RowData rowData = XGuildDailyTaskDocument.DailyTaskRewardTable.Table[i]; + uint num = rowData.level[0]; + uint num2 = rowData.level[1]; + SeqListRef? extraRewadsByScore = this.GetExtraRewadsByScore(rowData, this._curScore); + bool flag = this._taskRoleLevel >= num && this._taskRoleLevel <= num2 && extraRewadsByScore != null && extraRewadsByScore.Value.count > 0; + if (flag) + { + List list = new List(); + for (int j = 0; j < extraRewadsByScore.Value.Count; j++) + { + list.Add(new GuildTaskReward + { + itemID = extraRewadsByScore.Value[j, 0], + count = extraRewadsByScore.Value[j, 1] + }); + } + return list; + } + } + return null; + } + + public static uint GetMappingValueWithQualityAndType(GuildTaskType category, uint type, uint quality) + { + return (uint)(10000 * (int)category + (int)(1000u * type) + (int)quality); + } + + public SeqListRef? GetRewadsByScore(DailyTaskReward.RowData data, uint score) + { + SeqListRef? result; + switch (score) + { + case 0u: + result = new SeqListRef?(data.reward_d); + break; + case 1u: + result = new SeqListRef?(data.reward_c); + break; + case 2u: + result = new SeqListRef?(data.reward_b); + break; + case 3u: + result = new SeqListRef?(data.reward_a); + break; + case 4u: + result = new SeqListRef?(data.reward_s); + break; + default: + result = null; + break; + } + return result; + } + + public SeqListRef? GetExtraRewadsByScore(DailyTaskReward.RowData data, uint score) + { + SeqListRef? result; + switch (score) + { + case 0u: + result = new SeqListRef?(data.extrareward_d); + break; + case 1u: + result = new SeqListRef?(data.extrareward_c); + break; + case 2u: + result = new SeqListRef?(data.extrareward_b); + break; + case 3u: + result = new SeqListRef?(data.extrareward_a); + break; + case 4u: + result = new SeqListRef?(data.extrareward_s); + break; + default: + result = null; + break; + } + return result; + } + + private int SortDailyTask(GuildDailyTaskInfo x, GuildDailyTaskInfo y) + { + bool flag = x.isRewarded ^ y.isRewarded; + int result; + if (flag) + { + result = (x.isRewarded ? 1 : -1); + } + else + { + DailyTask.RowData dailyTaskTableInfoByID = this.GetDailyTaskTableInfoByID(x.taskID); + DailyTask.RowData dailyTaskTableInfoByID2 = this.GetDailyTaskTableInfoByID(y.taskID); + bool flag2 = dailyTaskTableInfoByID == null || dailyTaskTableInfoByID2 == null; + if (flag2) + { + result = 0; + } + else + { + bool flag3 = dailyTaskTableInfoByID.taskquality != dailyTaskTableInfoByID2.taskquality; + if (flag3) + { + result = (int)(dailyTaskTableInfoByID2.taskquality - dailyTaskTableInfoByID.taskquality); + } + else + { + result = (int)(dailyTaskTableInfoByID.taskID - dailyTaskTableInfoByID2.taskID); + } + } + } + return result; + } + + private void ResetRewardsMap() + { + this._guildTaskRewardWithMap.Clear(); + for (int i = 0; i < XGuildDailyTaskDocument.DailyTaskRewardTable.Table.Length; i++) + { + DailyTaskReward.RowData rowData = XGuildDailyTaskDocument.DailyTaskRewardTable.Table[i]; + uint num = rowData.level[0]; + uint num2 = rowData.level[1]; + bool flag = this._taskRoleLevel >= num && this._taskRoleLevel <= num2; + if (flag) + { + uint mappingValueWithQualityAndType = XGuildDailyTaskDocument.GetMappingValueWithQualityAndType((GuildTaskType)rowData.category, rowData.tasktype, rowData.taskquality); + bool flag2 = !this._guildTaskRewardWithMap.ContainsKey(mappingValueWithQualityAndType); + if (flag2) + { + this._guildTaskRewardWithMap.Add(mappingValueWithQualityAndType, rowData); + } + else + { + XSingleton.singleton.AddGreenLog(string.Concat(new object[] + { + "Same taskType and quality", + this._taskRoleLevel, + " type", + rowData.tasktype, + " quality", + rowData.taskquality, + " index", + i + }), null, null, null, null, null); + } + } + } + } + + public void SendDailyTaskAskHelp(PeriodTaskType type, uint taskID) + { + RpcC2G_DailyTaskAskHelp rpcC2G_DailyTaskAskHelp = new RpcC2G_DailyTaskAskHelp(); + rpcC2G_DailyTaskAskHelp.oArg.task_id = taskID; + rpcC2G_DailyTaskAskHelp.oArg.task_type = type; + XSingleton.singleton.Send(rpcC2G_DailyTaskAskHelp); + } + + public void OnGetDailyHelpReply(DailyTaskAskHelpArg oArg, DailyTaskAskHelpRes oRes) + { + bool flag = oRes.code == ErrorCode.ERR_SUCCESS; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("ReqHelpSuccess"), "fece00"); + DailyTask.RowData dailyTaskTableInfoByID = this.GetDailyTaskTableInfoByID(oArg.task_id); + this.SendGuildDonateReq(dailyTaskTableInfoByID.conditionNum, dailyTaskTableInfoByID.conditionId[0], oRes.ask_uid, NoticeType.NT_GUILD_Daily_DONATE_REQ); + GuildDailyTaskInfo taskInfoByID = this.GetTaskInfoByID(oArg.task_id); + bool flag2 = taskInfoByID != null; + if (flag2) + { + taskInfoByID.hasAsked = true; + uint askedNum = this.AskedNum; + this.AskedNum = askedNum + 1u; + bool flag3 = DlgBase.singleton.IsVisible(); + if (flag3) + { + DlgBase.singleton.RefreshTaskItemByID(oArg.task_id); + } + } + } + } + + public void SendToRefreshTasks() + { + RpcC2M_GetDailyTaskRefreshInfo rpc = new RpcC2M_GetDailyTaskRefreshInfo(); + XSingleton.singleton.Send(rpc); + } + + public void OnGetTaskRefreshInfo(GetDailyTaskRefreshInfoRes oRes) + { + this._dailyTaskRefreshRoleInfoList = oRes.friendinfo; + this._myLuck = Math.Max(1u, oRes.luck); + this._refresh_num = oRes.refresh_num; + this._todayBuyNum = oRes.today_buy_num; + this._dailyTaskRefreshRoleInfoList.Sort(new Comparison(this.SortTaskRefreshInfo)); + this._dailyTaskRefreshRoleInfoList.Insert(0, new DailyTaskRefreshRoleInfo + { + luck = this._myLuck, + refresh_num = this._refresh_num, + roleid = XSingleton.singleton.XPlayerData.RoleID, + profession = XSingleton.singleton.XPlayerData.Profession, + already_ask = (this._refresh_num <= 0u), + name = XSingleton.singleton.XPlayerData.Name + }); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.RefreshContent(); + } + } + + private int SortTaskRefreshInfo(DailyTaskRefreshRoleInfo x, DailyTaskRefreshRoleInfo y) + { + bool flag = x.luck != y.luck; + int result; + if (flag) + { + result = (int)(y.luck - x.luck); + } + else + { + bool flag2 = x.time != y.time; + if (flag2) + { + result = (int)(y.time - x.time); + } + else + { + int friendDegreeAll = (int)DlgBase.singleton.GetFriendDegreeAll(x.roleid); + int friendDegreeAll2 = (int)DlgBase.singleton.GetFriendDegreeAll(y.roleid); + result = friendDegreeAll2 - friendDegreeAll; + } + } + return result; + } + + public void SendToGetAskRefreshTaskInfo() + { + RpcC2M_GetDailyTaskAskHelp rpc = new RpcC2M_GetDailyTaskAskHelp(); + XSingleton.singleton.Send(rpc); + } + + public void OnGetTaskHelpInfo(GetDailyTaskAskHelpRes oRes) + { + this._askInfoList = oRes.askinfos; + bool flag = this._askInfoList.Count == 0; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("DailyTaskRefreshOutdate"), "fece00"); + } + this._helpNum = oRes.help_num; + this._myLuck = Math.Max(1u, oRes.luck); + this.RefreshRequestSysIcon(); + bool flag2 = DlgBase.singleton.IsVisible(); + if (flag2) + { + DlgBase.singleton.RefreshContent(); + } + } + + public void SendToGetRefreshLogInfo() + { + RpcC2M_GetDailyTaskRefreshRecord rpc = new RpcC2M_GetDailyTaskRefreshRecord(); + XSingleton.singleton.Send(rpc); + } + + public void OnGetRefreshRecordInfo(GetDailyTaskRefreshRecordRes oRes) + { + this._dailyTaskRefreshRecordList = oRes.records; + this._dailyTaskRefreshRecordList.Reverse(); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + bool flag2 = false; + for (int i = 0; i < this._dailyTaskRefreshRecordList.Count; i++) + { + bool isnew = this._dailyTaskRefreshRecordList[i].isnew; + if (isnew) + { + flag2 = true; + break; + } + } + bool flag3 = flag2; + if (flag3) + { + DlgBase.singleton.RefreshLogContent(); + } + } + } + + public void SendToRefreshTaskOp(DailyRefreshOperType type, ulong roleID) + { + RpcC2M_DailyTaskRefreshOper rpcC2M_DailyTaskRefreshOper = new RpcC2M_DailyTaskRefreshOper(); + rpcC2M_DailyTaskRefreshOper.oArg.type = type; + rpcC2M_DailyTaskRefreshOper.oArg.roleid = roleID; + XSingleton.singleton.Send(rpcC2M_DailyTaskRefreshOper); + } + + public void OnGetTaskRefreshOperResult(DailyTaskRefreshOperArg oArg, DailyTaskRefreshOperRes oRes) + { + bool flag = oRes.result == ErrorCode.ERR_SUCCESS; + if (flag) + { + switch (oArg.type) + { + case DailyRefreshOperType.DROT_Refresh: + { + bool flag2 = this._refresh_num > 0u; + if (flag2) + { + this._refresh_num -= 1u; + } + for (int i = 0; i < this._askInfoList.Count; i++) + { + bool flag3 = this._askInfoList[i].roleid == oArg.roleid; + if (flag3) + { + this._askInfoList[i].refresh_num -= 1u; + this._askInfoList[i].score = oRes.score; + List intList = XSingleton.singleton.GetIntList("DailyGuildRefreshNotifyLevel"); + bool flag4 = intList.Contains((int)oRes.score); + if (flag4) + { + this.SendNotifyToGuildChannel(this._askInfoList[i], (int)oRes.score); + } + bool flag5 = this._askInfoList[i].refresh_num <= 0u || oRes.score == 4u; + if (flag5) + { + this._askInfoList.RemoveAt(i); + } + break; + } + } + bool flag6 = oArg.roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag6) + { + this._curScore = oRes.score; + bool flag7 = DlgBase.singleton.IsVisible(); + if (flag7) + { + bool flag8 = this._dailyTaskRefreshRoleInfoList.Count > 0 && this._dailyTaskRefreshRoleInfoList[0].roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag8) + { + this._dailyTaskRefreshRoleInfoList[0].refresh_num = this._refresh_num; + this._dailyTaskRefreshRoleInfoList[0].already_ask = (this._dailyTaskRefreshRoleInfoList[0].refresh_num <= 0u); + } + DlgBase.singleton.RefreshContent(); + } + } + else + { + this._helpNum -= 1u; + } + bool flag9 = DlgBase.singleton.IsVisible(); + if (flag9) + { + DlgBase.singleton.RefreshContent(); + } + DlgBase.singleton.AfterScore = oRes.score; + DlgBase.singleton.BeforeScore = oRes.oldscore; + DlgBase.singleton.SetVisibleWithAnimation(true, null); + XGuildMemberDocument specificDocument = XDocuments.GetSpecificDocument(XGuildMemberDocument.uuID); + specificDocument.RefreshMemberTaskScore(oArg.roleid, oRes.score); + bool flag10 = DlgBase.singleton.IsVisible(); + if (flag10) + { + DlgBase.singleton.OnRefreshDailyTaskReply(); + } + break; + } + case DailyRefreshOperType.DROT_Refuse: + { + for (int j = 0; j < this._askInfoList.Count; j++) + { + bool flag11 = this._askInfoList[j].roleid == oArg.roleid; + if (flag11) + { + this._askInfoList.RemoveAt(j); + break; + } + } + bool flag12 = this._askInfoList.Count == 0; + if (flag12) + { + this.DailyTaskHelpRefreshIcon = false; + DlgBase.singleton.RefreshH5ButtonState(XSysDefine.XSys_GuildDailyRequest, true); + } + bool flag13 = DlgBase.singleton.IsVisible(); + if (flag13) + { + DlgBase.singleton.RefreshContent(); + } + break; + } + case DailyRefreshOperType.DROT_BuyCount: + { + this._refresh_num += 1u; + this._todayBuyNum += 1u; + bool flag14 = this._dailyTaskRefreshRoleInfoList.Count > 0 && this._dailyTaskRefreshRoleInfoList[0].roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag14) + { + this._dailyTaskRefreshRoleInfoList[0].refresh_num = this._refresh_num; + this._dailyTaskRefreshRoleInfoList[0].already_ask = (this._dailyTaskRefreshRoleInfoList[0].refresh_num <= 0u); + } + bool flag15 = DlgBase.singleton.IsVisible(); + if (flag15) + { + DlgBase.singleton.RefreshContent(); + } + break; + } + case DailyRefreshOperType.DROT_AskHelp: + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("DailyAskForHelpSuccess"), "fece00"); + for (int k = 0; k < this._dailyTaskRefreshRoleInfoList.Count; k++) + { + bool flag16 = this._dailyTaskRefreshRoleInfoList[k].roleid == oArg.roleid; + if (flag16) + { + this._dailyTaskRefreshRoleInfoList[k].already_ask = true; + break; + } + } + bool flag17 = DlgBase.singleton.IsVisible(); + if (flag17) + { + DlgBase.singleton.RefreshContent(); + } + break; + } + } + } + else + { + XSingleton.singleton.ShowSystemTip(oRes.result, "fece00"); + bool flag18 = oArg.roleid == XSingleton.singleton.XPlayerData.RoleID && oArg.type == DailyRefreshOperType.DROT_Refresh && oRes.result == ErrorCode.ERR_DAILY_TASK_NO_REFRESH_COUNT; + if (flag18) + { + this._refresh_num = 0u; + bool flag19 = DlgBase.singleton.IsVisible(); + if (flag19) + { + bool flag20 = this._dailyTaskRefreshRoleInfoList.Count > 0 && this._dailyTaskRefreshRoleInfoList[0].roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag20) + { + this._dailyTaskRefreshRoleInfoList[0].refresh_num = this._refresh_num; + this._dailyTaskRefreshRoleInfoList[0].already_ask = (this._dailyTaskRefreshRoleInfoList[0].refresh_num <= 0u); + } + DlgBase.singleton.RefreshContent(); + } + } + bool flag21 = oArg.type == DailyRefreshOperType.DROT_Refuse || oArg.type == DailyRefreshOperType.DROT_Refresh; + if (flag21) + { + for (int l = 0; l < this._askInfoList.Count; l++) + { + bool flag22 = this._askInfoList[l].roleid == oArg.roleid; + if (flag22) + { + this._askInfoList.RemoveAt(l); + break; + } + } + } + this.RefreshRequestSysIcon(); + bool flag23 = DlgBase.singleton.IsVisible(); + if (flag23) + { + DlgBase.singleton.RefreshContent(); + } + } + } + + private void SendNotifyToGuildChannel(DailyTaskRefreshRoleInfo dailyTaskRefreshRoleInfo, int level) + { + XGuildDocument specificDocument = XDocuments.GetSpecificDocument(XGuildDocument.uuID); + bool flag = !specificDocument.CheckInGuild(); + if (!flag) + { + XInvitationDocument specificDocument2 = XDocuments.GetSpecificDocument(XInvitationDocument.uuID); + NoticeTable.RowData noticeData = specificDocument2.GetNoticeData(NoticeType.NT_GUILD_Daily_Refresh_Thanks_REQ); + bool flag2 = noticeData == null; + if (!flag2) + { + string itemQualityName = XSingleton.singleton.GetItemQualityName(level); + List stringList = XSingleton.singleton.GetStringList("LuckyLevel"); + int index = Math.Min((int)(this._myLuck - 1u), stringList.Count - 1); + List list = new List(); + ChatParam chatParam = new ChatParam(); + chatParam.link = new ChatParamLink(); + chatParam.link.id = noticeData.linkparam; + chatParam.link.content = noticeData.linkcontent; + ChatParam chatParam2 = new ChatParam(); + chatParam2.role = new ChatParamRole(); + chatParam2.role.uniqueid = XSingleton.singleton.XPlayerData.RoleID; + chatParam2.role.name = XSingleton.singleton.XPlayerData.Name; + chatParam2.role.profession = XSingleton.singleton.XPlayerData.TypeID; + ChatParam chatParam3 = new ChatParam(); + chatParam3.role = new ChatParamRole(); + chatParam3.role.uniqueid = dailyTaskRefreshRoleInfo.roleid; + chatParam3.role.name = dailyTaskRefreshRoleInfo.name; + chatParam3.role.profession = (uint)dailyTaskRefreshRoleInfo.profession; + list.Add(chatParam2); + list.Add(chatParam3); + list.Add(chatParam); + DlgBase.singleton.SendChatContent(string.Format(noticeData.info, stringList[index], itemQualityName), (ChatChannelType)noticeData.channel, true, list, true, 0UL, 0f, false, false); + } + } + } + + public void OnGetDailyTaskEvent(PtcM2C_DailyTaskEventNtf roPtc) + { + bool flag = roPtc.Data.type == DailyTaskIconType.DailyTaskIcon_AskHelp; + if (flag) + { + this.DailyTaskHelpRefreshIcon = true; + DlgBase.singleton.RefreshH5ButtonState(XSysDefine.XSys_GuildDailyRequest, true); + } + else + { + bool flag2 = roPtc.Data.type == DailyTaskIconType.DailyTaskIcon_BeHelp; + if (flag2) + { + this.DailyTaskBeenRefreshIcon = true; + DlgBase.singleton.RefreshH5ButtonState(XSysDefine.XSys_GuildDailyTask, true); + } + else + { + bool flag3 = roPtc.Data.type == DailyTaskIconType.DailyTaskIcon_AskHelpDispear; + if (flag3) + { + this.DailyTaskHelpRefreshIcon = false; + DlgBase.singleton.RefreshH5ButtonState(XSysDefine.XSys_GuildDailyRequest, true); + } + } + } + } + + public DailyTaskRefreshRoleInfo GetTaskAskInfoByIndex(int index) + { + bool flag = index < this._askInfoList.Count; + DailyTaskRefreshRoleInfo result; + if (flag) + { + result = this._askInfoList[index]; + } + else + { + result = null; + } + return result; + } + + public DailyTaskRefreshRoleInfo GetRefreshTaskItemInfo(int index) + { + bool flag = index < this._dailyTaskRefreshRoleInfoList.Count; + DailyTaskRefreshRoleInfo result; + if (flag) + { + result = this._dailyTaskRefreshRoleInfoList[index]; + } + else + { + result = null; + } + return result; + } + + public DailyTaskRefreshInfo GetRefreshTaskLogInfo(int index) + { + bool flag = index < this._dailyTaskRefreshRecordList.Count; + DailyTaskRefreshInfo result; + if (flag) + { + result = this._dailyTaskRefreshRecordList[index]; + } + else + { + result = null; + } + return result; + } + + public DailyTaskRefreshInfo GetRefreshTaskLogInfoByRoleID(ulong roleID) + { + for (int i = 0; i < this._dailyTaskRefreshRecordList.Count; i++) + { + bool flag = this._dailyTaskRefreshRecordList[i].roleid == roleID; + if (flag) + { + return this._dailyTaskRefreshRecordList[i]; + } + } + return null; + } + + public void SendGuildDonateReq(uint number, uint itemID, uint reqID, NoticeType type = NoticeType.NT_GUILD_Daily_DONATE_REQ) + { + XGuildDocument specificDocument = XDocuments.GetSpecificDocument(XGuildDocument.uuID); + bool flag = !specificDocument.CheckInGuild(); + if (!flag) + { + XInvitationDocument specificDocument2 = XDocuments.GetSpecificDocument(XInvitationDocument.uuID); + NoticeTable.RowData noticeData = specificDocument2.GetNoticeData(type); + bool flag2 = noticeData == null; + if (!flag2) + { + List list = new List(); + ChatParam chatParam = new ChatParam(); + chatParam.link = new ChatParamLink(); + chatParam.link.id = noticeData.linkparam; + chatParam.link.param.Add((ulong)reqID); + chatParam.link.content = noticeData.linkcontent; + ChatParam chatParam2 = new ChatParam(); + chatParam2.role = new ChatParamRole(); + chatParam2.role.uniqueid = XSingleton.singleton.XPlayerData.RoleID; + chatParam2.role.name = XSingleton.singleton.XPlayerData.Name; + chatParam2.role.profession = XSingleton.singleton.XPlayerData.TypeID; + ChatParam chatParam3 = new ChatParam(); + chatParam3.item = new ChatParamItem(); + chatParam3.item.item = new ItemBrief(); + chatParam3.item.item.itemCount = number; + chatParam3.item.item.itemID = itemID; + list.Add(chatParam2); + list.Add(chatParam3); + list.Add(chatParam); + DlgBase.singleton.SendChatContent(noticeData.info, (ChatChannelType)noticeData.channel, true, list, true, 0UL, 0f, false, false); + } + } + } + + public void InitFromServerData(RoleTask roleTask) + { + bool flag = roleTask.dailytask.Count == 0; + if (flag) + { + XSingleton.singleton.SetSysRedPointState(XSysDefine.XSys_GuildDailyTask, false); + } + else + { + XSingleton.singleton.SetSysRedPointState(XSysDefine.XSys_GuildDailyTask, roleTask.daily_red_point); + } + XSingleton.singleton.RecalculateRedPointState(XSysDefine.XSys_GuildDailyTask, true); + XGuildDonateDocument.Doc.DailyDonatedNum = roleTask.today_donate_count; + } + + public void ClearRequesetItems() + { + this._askInfoList.Clear(); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.RefreshContent(); + } + this.RefreshRequestSysIcon(); + } + + public void OnTaskRefreshNtf(PtcM2C_TaskRefreshNtf roPtc) + { + this._curScore = roPtc.Data.score; + this._refresh_num = roPtc.Data.remain_refresh_count; + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + this.SendGetDailyTaskInfo(); + } + bool flag2 = DlgBase.singleton.IsVisible(); + if (flag2) + { + bool flag3 = this._dailyTaskRefreshRoleInfoList.Count > 0 && this._dailyTaskRefreshRoleInfoList[0].roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag3) + { + this._dailyTaskRefreshRoleInfoList[0].refresh_num = this._refresh_num; + this._dailyTaskRefreshRoleInfoList[0].already_ask = (this._dailyTaskRefreshRoleInfoList[0].refresh_num <= 0u); + } + DlgBase.singleton.RefreshContent(); + } + } + + private void RefreshRequestSysIcon() + { + bool flag = this._askInfoList.Count == 0; + if (flag) + { + this.DailyTaskHelpRefreshIcon = false; + DlgBase.singleton.RefreshH5ButtonState(XSysDefine.XSys_GuildDailyRequest, true); + } + } + } +} -- cgit v1.1-26-g67d0