using System.Collections; using System.Collections.Generic; using UnityEngine; public class FunctionRewStateManager{ public static FunctionRewStateManager Instance; public enum CopyEnum { daily = 0, // 日常 equip, // 装备 advance, // 进阶 testing, // 试炼 } public struct CopyRemainTimeState { public CopyEnum type; public Dictionary subTypeIndexAndCountDic; public int totalRemainTimes; } public CopyRemainTimeState[] copyBaseRemainTimeStateList = new CopyRemainTimeState[4]; public int copyTotalRemainTime = 0; public void AddCopyBaseRewState(RespSyncCopyTimesForRedPoint packet) { copyTotalRemainTime = 0; //重置 CopyRemainTimeState equipInfo = new CopyRemainTimeState(); equipInfo.type = CopyEnum.equip; equipInfo.totalRemainTimes = packet.copyEquipCount; copyBaseRemainTimeStateList[(int)CopyEnum.equip] = equipInfo; //copyTotalRemainTime += packet.copyEquipCount; CopyRemainTimeState advanceCopyInfo = new CopyRemainTimeState(); advanceCopyInfo.type = CopyEnum.advance; var advanceRemainCount = 0; for (int index = 0; index < packet.copyAdvanceCountList.Count; index++) { advanceRemainCount += packet.copyAdvanceCountList[index].copyCount; if (advanceCopyInfo.subTypeIndexAndCountDic == null) advanceCopyInfo.subTypeIndexAndCountDic = new Dictionary(); advanceCopyInfo.subTypeIndexAndCountDic.Add(packet.copyAdvanceCountList[index].copyType, packet.copyAdvanceCountList[index].copyCount); } advanceCopyInfo.totalRemainTimes = advanceRemainCount; copyBaseRemainTimeStateList[(int)CopyEnum.advance] = advanceCopyInfo; copyTotalRemainTime += advanceRemainCount; CopyRemainTimeState testingCopyInfo = new CopyRemainTimeState(); testingCopyInfo.type = CopyEnum.testing; var testingCopyRemainCount = 0; for (int index = 0; index < packet.copyTestCountList.Count; index++) { testingCopyRemainCount += packet.copyTestCountList[index].copyCount; if (testingCopyInfo.subTypeIndexAndCountDic == null) testingCopyInfo.subTypeIndexAndCountDic = new Dictionary(); testingCopyInfo.subTypeIndexAndCountDic.Add(packet.copyTestCountList[index].copyType, packet.copyTestCountList[index].copyCount); } testingCopyInfo.totalRemainTimes = testingCopyRemainCount; copyTotalRemainTime += testingCopyRemainCount; copyBaseRemainTimeStateList[(int)CopyEnum.testing] = testingCopyInfo; CopyRemainTimeState dailyCopyInfo = new CopyRemainTimeState(); dailyCopyInfo.type = CopyEnum.daily; dailyCopyInfo.totalRemainTimes = 0; for (int index = 0; index < packet.copyDailyCountList.Count; index++) { dailyCopyInfo.totalRemainTimes += packet.copyDailyCountList[index].copyCount; if (dailyCopyInfo.subTypeIndexAndCountDic == null) dailyCopyInfo.subTypeIndexAndCountDic = new Dictionary(); dailyCopyInfo.subTypeIndexAndCountDic.Add(packet.copyDailyCountList[index].copyType, packet.copyDailyCountList[index].copyCount); } copyTotalRemainTime += dailyCopyInfo.totalRemainTimes; copyBaseRemainTimeStateList[(int)CopyEnum.daily] = dailyCopyInfo; if (FunctionButtonLogic.Instance()) { FunctionButtonLogic.Instance().copyBtnFunc.ShowRemainTimeStateIcon(copyTotalRemainTime); } //if (TestingCopyBseRootCtr.Instance) //{ // TestingCopyBseRootCtr.Instance.RefreshMenuItemRemainTime(); //} if(CopyScenePanelCtr.Instance && CopyScenePanelCtr.Instance.isActiveAndEnabled) { CopyScenePanelCtr.Instance.ShowRemainTimeIcon(); } } public int GetopyRemainTime() { return copyTotalRemainTime >= 99 ? 99 : copyTotalRemainTime; } }