using System.Collections.Generic; using proto; namespace MoleMole { public class LevelTutorialModule : BaseModule { public static int BASE_LEVEL_TUTORIAL_ID = 10000; private List _finishTutorialList; public LevelTutorialModule() { Singleton.Instance.RegisterModule(this); _finishTutorialList = new List(); } public override bool OnPacket(NetPacketV1 pkt) { switch (pkt.getCmdId()) { case 128: return OnGetFinishGuideDataRsp(pkt.getData()); case 130: return OnFinishGuideReportRsp(pkt.getData()); default: return false; } } private bool OnGetFinishGuideDataRsp(GetFinishGuideDataRsp rsp) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) if ((int)rsp.retcode == 0) { foreach (uint item in rsp.guide_id_list) { UpdateFinishTutorialID((int)item); } } return false; } private bool OnFinishGuideReportRsp(FinishGuideReportRsp rsp) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) if ((int)rsp.retcode == 0) { List guide_id_list = rsp.guide_id_list; foreach (uint item in guide_id_list) { UpdateFinishTutorialID((int)item); } } return false; } private bool IsLevelTutorialID(int tutorialID) { return tutorialID > BASE_LEVEL_TUTORIAL_ID; } private void UpdateFinishTutorialID(int tutorialID) { if (!_finishTutorialList.Contains(tutorialID) && IsLevelTutorialID(tutorialID)) { _finishTutorialList.Add(tutorialID); } } public List GetUnFinishedTutorialIDList(int levelID) { List list = new List(); if (levelID != 0) { List list2 = LevelTutorialMetaDataReader.GetItemList().FindAll((LevelTutorialMetaData x) => !_finishTutorialList.Contains(x.tutorialId)); foreach (LevelTutorialMetaData item in list2) { if (!list.Contains(item.tutorialId) && item.levelId == levelID) { list.Add(item.tutorialId); } } } return list; } public void MarkTutorialIDFinish(int tutorialID) { Singleton.Instance.RequestFinishGuideReport((uint)tutorialID, true); UpdateFinishTutorialID(tutorialID); } public bool IsTutorialIDFinish(int tutorialID) { return _finishTutorialList.Contains(tutorialID); } } }