using System.Collections.Generic; using System.Linq; using ET; namespace GFGGame { public class GuideDataManager { // //public static int currentGuideId; // private static Dictionary _dataDic = new Dictionary(); // //本次登录引导的id缓存 // private static Dictionary _guideDicAtThisLogin = new Dictionary(); private static Dictionary> _guideDicIndex = new Dictionary>(); public static int _currentGuideId; public static int currentGuideId { get { return _currentGuideId; } set { _currentGuideId = value; } } // public static void InitServerData(List list) // { // currentGuideId = 0; // _dataDic.Clear(); // _guideDicAtThisLogin.Clear(); // if (list != null) // { // foreach (GuideData data in list) // { // _dataDic.Add(data.guideId, data); // } // } // } public static async ETTask TryCompleteGuide(int guideId) { if (GameGlobal.skipGuide) { return false; } if (currentGuideId == guideId) { return await StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_GUIDE + guideId, 1); } return false; } // public static bool CheckGuideIsCompletedAtThisLogin(int guideId) // { // if (_guideDicAtThisLogin.ContainsKey(guideId)) // { // return _guideDicAtThisLogin[guideId]; // } // return false; // } public static int _currentGuideIdIndex; public static int currentGuideIdIndex { get { return _currentGuideIdIndex; } set { _currentGuideIdIndex = value; } } public static void SetGuideIndex(int guideId, int index) { if (!_guideDicIndex.ContainsKey(guideId)) { _guideDicIndex.Add(guideId, new Dictionary()); } if (_guideDicIndex[guideId].ContainsKey(index)) return; _guideDicIndex[guideId][index] = 0; } public static int IsGuideFinish(string guideKey) { if (GameGlobal.skipGuide) return 1; GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey); return StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + cfg.id); } public static bool TryCompleteGuideIndex(int guideId, int index, bool checkInde = true) { if (GameGlobal.skipGuide) { return false; } if (!checkInde && guideId == currentGuideId || checkInde && guideId == currentGuideId && index == currentGuideIdIndex && !IsGuideIndexFinish(guideId, index)) { _guideDicIndex[guideId][index] = 1; return true; } return false; } public static void SetGuideIndexState(int guideId, int index, int state) { if (guideId == currentGuideId && index == currentGuideIdIndex && _guideDicIndex.ContainsKey(guideId) && _guideDicIndex[guideId].ContainsKey(index)) { _guideDicIndex[guideId][index] = state; } } public static bool CheckAllIndexFinish(int guideId, int count) { for (int i = 1; i <= count; i++) { if (!IsGuideIndexFinish(guideId, i)) return false; } return true; } public static bool IsGuideIndexFinish(int guideId, int index) { if (index == 0) return true; if (_guideDicIndex.ContainsKey(guideId) && _guideDicIndex[guideId].ContainsKey(index) && _guideDicIndex[guideId][index] == 1) { return true; } return false; } } }