Пример #1
0
        private void _InitSingleGame(SCPKG_STARTSINGLEGAMERSP svrGameInfo)
        {
            this._gameContextCommonData.GameType = svrGameInfo.bGameType;
            ResLevelCfgInfo levelCfg = null;

            if (this._gameContextCommonData.GameType == 2)
            {
                levelCfg = GameDataMgr.levelDatabin.GetDataByKey((long)svrGameInfo.iLevelId);
            }
            else if (this._gameContextCommonData.GameType == null)
            {
                levelCfg = GameDataMgr.levelDatabin.GetDataByKey((long)svrGameInfo.iLevelId);
                this._gameContextCommonData.LevelDifficulty = Singleton <CAdventureSys> .get_instance().currentDifficulty;
            }
            else if (this._gameContextCommonData.GameType == 7)
            {
                levelCfg = GameDataMgr.burnMap.GetDataByKey((long)Singleton <BurnExpeditionController> .GetInstance().model.Get_LevelID(Singleton <BurnExpeditionController> .GetInstance().model.curSelect_LevelIndex));
            }
            else if (this._gameContextCommonData.GameType == 8)
            {
                levelCfg = GameDataMgr.arenaLevelDatabin.GetDataByKey((long)svrGameInfo.iLevelId);
            }
            else if (this._gameContextCommonData.GameType == 1)
            {
                uint dwMapId      = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().dwMapId;
                byte bMapType     = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bMapType;
                bool isWarmBattle = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bIsWarmBattle > 0;
                byte bAILevel     = svrGameInfo.stGameParam.get_stSingleGameRspOfCombat().bAILevel;
                this._InitMultiGame(svrGameInfo.bGameType, (int)bMapType, dwMapId, isWarmBattle, (int)bAILevel);
                return;
            }
            this._SetSingleGame(levelCfg);
        }
Пример #2
0
        public static ResLevelCfgInfo GetPveMapInfo(byte gameType, int levelID)
        {
            ResLevelCfgInfo resLevelCfgInfo = null;

            if (gameType == 2)
            {
                resLevelCfgInfo = GameDataMgr.levelDatabin.GetDataByKey((long)levelID);
            }
            else if (gameType == 0)
            {
                resLevelCfgInfo = GameDataMgr.levelDatabin.GetDataByKey((long)levelID);
            }
            else if (gameType == 7)
            {
                resLevelCfgInfo = GameDataMgr.burnMap.GetDataByKey((long)Singleton <BurnExpeditionController> .GetInstance().model.Get_LevelID(Singleton <BurnExpeditionController> .GetInstance().model.curSelect_LevelIndex));
            }
            else if (gameType == 8)
            {
                resLevelCfgInfo = GameDataMgr.arenaLevelDatabin.GetDataByKey((long)levelID);
            }
            else if (gameType == 3)
            {
            }
            if (resLevelCfgInfo == null)
            {
                if (gameType != 1)
                {
                }
                resLevelCfgInfo = new ResLevelCfgInfo();
            }
            return(resLevelCfgInfo);
        }
Пример #3
0
        public static void InitChapterElement(CUIFormScript formScript, int currentChapter, int levelNo, int difficulty)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo == null)
            {
                return;
            }
            PVE_ADV_COMPLETE_INFO     pVE_ADV_COMPLETE_INFO     = masterRoleInfo.pveLevelDetail[difficulty - 1];
            PVE_CHAPTER_COMPLETE_INFO pVE_CHAPTER_COMPLETE_INFO = pVE_ADV_COMPLETE_INFO.ChapterDetailList[currentChapter - 1];

            PVE_LEVEL_COMPLETE_INFO[] levelDetailList = pVE_CHAPTER_COMPLETE_INFO.LevelDetailList;
            ResLevelCfgInfo           dataByKey       = GameDataMgr.levelDatabin.GetDataByKey((long)levelDetailList[levelNo - 1].iLevelID);

            if (dataByKey == null)
            {
                return;
            }
            formScript.transform.FindChild("ChapterElement/ChapterImg").GetComponent <Image>().SetSprite(CAdventureView.GetLevelBgPath(currentChapter, levelNo, difficulty), formScript, true, false, false, false);
            formScript.transform.FindChild("ChapterElement/ChapterNameText").GetComponent <Text>().text  = Utility.UTF8Convert(dataByKey.szName);
            formScript.transform.FindChild("ChapterElement/ChapterDEscText").GetComponent <Text>().text  = Utility.UTF8Convert(dataByKey.szLevelDesc);
            formScript.transform.FindChild("ChapterElement/RecPlayerLvlText").GetComponent <Text>().text = Singleton <CTextManager> .get_instance().GetText("Level_Recommend_Tips_1", new string[]
            {
                dataByKey.RecommendLevel[difficulty - 1].ToString()
            });

            formScript.transform.FindChild("Bg").GetComponent <Image>().color = CAdventureView.s_Adv_Difficult_Bg_Color[difficulty - 1];
        }
Пример #4
0
        public bool Reset(int LevelID)
        {
            this.Clear();
            ResLevelCfgInfo info = FindLevelConfig(LevelID);

            DebugHelper.Assert(info != null);
            if (info == null)
            {
                return(false);
            }
            for (int i = 0; i < info.astStarDetail.Length; i++)
            {
                ResDT_IntParamArrayNode node = info.astStarDetail[i];
                if (node.iParam == 0)
                {
                    break;
                }
                this.AddStarEvaluation(node.iParam);
            }
            if (info.iLoseCondition != 0)
            {
                ResEvaluateStarInfo dataByKey = GameDataMgr.evaluateCondInfoDatabin.GetDataByKey((uint)info.iLoseCondition);
                DebugHelper.Assert(dataByKey != null);
                if (dataByKey == null)
                {
                    return(false);
                }
                this.FailureEvaluation = this.CreateStar(dataByKey, 0);
                DebugHelper.Assert(this.FailureEvaluation != null, "我擦,怎会没有?");
            }
            Singleton <EventRouter> .instance.BroadCastEvent(EventID.StarSystemInitialized);

            return(true);
        }
Пример #5
0
        private void initNotifyDestroyStat()
        {
            SLevelContext curLvelContext = Singleton <BattleLogic> .GetInstance().GetCurLvelContext();

            if (!curLvelContext.isPVPLevel)
            {
                ResLevelCfgInfo info = StarSystem.FindLevelConfig(curLvelContext.iLevelID);
                if ((info != null) && (info.astStarDetail != null))
                {
                    for (int i = 0; i < info.astStarDetail.Length; i++)
                    {
                        int iParam = info.astStarDetail[i].iParam;
                        if (iParam != 0)
                        {
                            ResEvaluateStarInfo dataByKey = GameDataMgr.evaluateCondInfoDatabin.GetDataByKey((uint)iParam);
                            this.CondfoToDestroyStat(dataByKey.astConditions);
                        }
                    }
                }
                else
                {
                    DebugHelper.Assert(false, string.Format("LevelConfig is null -- levelID: {0}", curLvelContext.iLevelID));
                }
            }
        }
        internal DynamicAttributeInfo ConsiderMonsterDynamicInfo(ResMonsterCfgInfo monsterCfg)
        {
            int dwAIPlayerLevel = 0;

            if (monsterCfg.iDynamicInfoType == 1)
            {
                SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext();

                if ((curLvelContext != null) && !curLvelContext.IsMobaMode())
                {
                    ResLevelCfgInfo info2 = GameDataMgr.levelDatabin.GetDataByKey((long)curLvelContext.m_mapID);
                    if (info2 == null)
                    {
                        base.ErrorMissingLevelConfig((uint)curLvelContext.m_mapID);
                        return(null);
                    }
                    if (curLvelContext.m_pveLevelType == RES_LEVEL_TYPE.RES_LEVEL_TYPE_PVP)
                    {
                        dwAIPlayerLevel = (int)info2.dwAIPlayerLevel;
                    }
                }
            }
            if (dwAIPlayerLevel <= 0)
            {
                return(null);
            }
            ResMonsterOrganLevelDynamicInfo dataByKey = GameDataMgr.monsterOrganLvDynamicInfobin.GetDataByKey((long)dwAIPlayerLevel);

            if (dataByKey == null)
            {
                return(null);
            }
            switch (monsterCfg.bSoldierType)
            {
            case 1:
                return(dataByKey.stMelee);

            case 2:
                return(dataByKey.stRemote);

            case 3:
                return(dataByKey.stSuper);

            case 4:
                return(dataByKey.stAnYingDaJiang);

            case 5:
                return(dataByKey.stHeiAnXianFeng);

            case 6:
                return(dataByKey.stBaoZouJiangShi);

            case 7:
            case 8:
                return(dataByKey.stBaoJun);
            }
            return(null);
        }
Пример #7
0
        public bool CheckUnlock(uint id)
        {
            bool flag = false;
            ResUnlockCondition dataByKey = GameDataMgr.unlockConditionDatabin.GetDataByKey(id);

            object[] inParameters = new object[] { id };
            DebugHelper.Assert(dataByKey != null, "ResUnlockCondition[{0}] can not be find.", inParameters);
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "roleinfo can't be null in CheckUnlock");
            if ((masterRoleInfo != null) && (dataByKey != null))
            {
                switch (dataByKey.wUnlockType)
                {
                case 1:
                    return(masterRoleInfo.PvpLevel >= dataByKey.UnlockParam[0]);

                case 2:
                {
                    int             num       = (int)dataByKey.UnlockParam[0];
                    int             num2      = (int)dataByKey.UnlockParam[1];
                    int             index     = 0;
                    ResLevelCfgInfo info2     = GameDataMgr.levelDatabin.GetDataByKey((long)num);
                    object[]        objArray2 = new object[] { num };
                    DebugHelper.Assert(info2 != null, "can't find level = {0}", objArray2);
                    flag = false;
                    if (((info2 != null) && (info2 != null)) && ((masterRoleInfo.pveLevelDetail[index] != null) && (masterRoleInfo.pveLevelDetail[index].ChapterDetailList[info2.iChapterId - 1] != null)))
                    {
                        PVE_CHAPTER_COMPLETE_INFO pve_chapter_complete_info = masterRoleInfo.pveLevelDetail[index].ChapterDetailList[info2.iChapterId - 1];
                        for (int i = 0; i < pve_chapter_complete_info.LevelDetailList.Length; i++)
                        {
                            PVE_LEVEL_COMPLETE_INFO pve_level_complete_info = pve_chapter_complete_info.LevelDetailList[i];
                            if ((pve_level_complete_info != null) && (pve_level_complete_info.iLevelID == num))
                            {
                                flag = (pve_level_complete_info.levelStatus == 1) && (num2 <= CAdventureSys.GetStarNum(pve_level_complete_info.bStarBits));
                                break;
                            }
                        }
                    }
                    return(true);
                }

                case 3:
                    return(flag);

                case 4:
                {
                    uint num5 = 0;
                    if (masterRoleInfo.pvpDetail != null)
                    {
                        num5 = (masterRoleInfo.pvpDetail.stOneVsOneInfo.dwTotalNum + masterRoleInfo.pvpDetail.stTwoVsTwoInfo.dwTotalNum) + masterRoleInfo.pvpDetail.stThreeVsThreeInfo.dwTotalNum;
                    }
                    return((dataByKey.UnlockParam[0] <= num5) && (dataByKey.UnlockParam[1] <= masterRoleInfo.PvpLevel));
                }
                }
            }
            return(flag);
        }
Пример #8
0
        public static void InitLevelList(CUIFormScript form, int currentChapter, int levelNo, int difficulty)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo != null)
            {
                ResChapterInfo dataByKey = GameDataMgr.chapterInfoDatabin.GetDataByKey(currentChapter);
                DebugHelper.Assert(dataByKey != null);
                bool flag = Singleton <CFunctionUnlockSys> .instance.ChapterIsUnlock(dataByKey.dwChapterId);

                PVE_ADV_COMPLETE_INFO     pve_adv_complete_info     = masterRoleInfo.pveLevelDetail[difficulty - 1];
                PVE_CHAPTER_COMPLETE_INFO pve_chapter_complete_info = pve_adv_complete_info.ChapterDetailList[currentChapter - 1];
                PVE_LEVEL_COMPLETE_INFO[] levelDetailList           = pve_chapter_complete_info.LevelDetailList;
                CUIListScript             component = form.transform.FindChild("LevelList").GetComponent <CUIListScript>();
                component.SetElementAmount(levelDetailList.Length);
                CUIListElementScript elemenet = null;
                Sprite     sprite             = CUIUtility.GetSpritePrefeb(GetLevelFramePath(difficulty), false, false).GetComponent <SpriteRenderer>().sprite;
                GameObject prefab             = CUIUtility.GetSpritePrefeb(GetLevelSelectFramePath(difficulty), false, false);
                for (int i = 0; i < levelDetailList.Length; i++)
                {
                    elemenet = component.GetElemenet(i);
                    ResLevelCfgInfo info3        = GameDataMgr.levelDatabin.GetDataByKey(levelDetailList[i].iLevelID);
                    object[]        inParameters = new object[] { levelDetailList[i].iLevelID };
                    DebugHelper.Assert(info3 != null, "Can't find LevelConfig = {0}", inParameters);
                    bool bActive = (levelDetailList[i].levelStatus == 0) || !flag;
                    bool flag3   = (levelDetailList[i].levelStatus == 1) && flag;
                    int  starNum = CAdventureSys.GetStarNum(levelDetailList[i].bStarBits);
                    elemenet.transform.FindChild("Unlock/star1").GetComponent <Image>().color   = (starNum < 1) ? CUIUtility.s_Color_GrayShader : Color.white;
                    elemenet.transform.FindChild("Unlock/star2").GetComponent <Image>().color   = (starNum < 2) ? CUIUtility.s_Color_GrayShader : Color.white;
                    elemenet.transform.FindChild("Unlock/star3").GetComponent <Image>().color   = (starNum < 3) ? CUIUtility.s_Color_GrayShader : Color.white;
                    elemenet.transform.FindChild("TxtLevelNameText").GetComponent <Text>().text = Utility.UTF8Convert(info3.szName);
                    if ((levelNo == (i + 1)) && !bActive)
                    {
                        elemenet.transform.FindChild("TxtLevelNameText").GetComponent <Text>().color = s_Adv_Level_Colors[0];
                    }
                    else if (!bActive)
                    {
                        elemenet.transform.FindChild("TxtLevelNameText").GetComponent <Text>().color = s_Adv_Level_Colors[1];
                    }
                    else
                    {
                        elemenet.transform.FindChild("TxtLevelNameText").GetComponent <Text>().color = s_Adv_Level_Colors[2];
                    }
                    elemenet.transform.FindChild("SelectedFrame").GetComponent <Image>().color        = s_Adv_Difficult_Color[difficulty - 1];
                    elemenet.transform.FindChild("SelectedFrame/Image1").GetComponent <Image>().color = s_Adv_Difficult_Color[((s_Adv_Difficult_Color.Length / 2) + difficulty) - 1];
                    elemenet.transform.FindChild("SelectedFrame/Image2").GetComponent <Image>().color = s_Adv_Difficult_Color[((s_Adv_Difficult_Color.Length / 2) + difficulty) - 1];
                    elemenet.transform.FindChild("SelectedFrame/SelectedFrame").GetComponent <Image>().SetSprite(prefab);
                    elemenet.transform.FindChild("New").gameObject.CustomSetActive(flag3);
                    elemenet.GetComponent <CUIEventScript>().m_onClickEventID         = enUIEventID.Adv_SelectLevel;
                    elemenet.GetComponent <CUIEventScript>().m_onClickEventParams.tag = i + 1;
                    elemenet.transform.FindChild("Unlock").gameObject.CustomSetActive(!bActive);
                    elemenet.transform.FindChild("Lock").gameObject.CustomSetActive(bActive);
                    elemenet.m_selectedSprite = sprite;
                    elemenet.GetComponent <Image>().SetSprite(((levelNo - 1) != i) ? elemenet.m_defaultSprite : sprite, elemenet.m_selectedLayout);
                }
                component.SelectElement(levelNo - 1, true);
            }
        }
Пример #9
0
        public static void SetPvpLevelInfo(GameObject root)
        {
            root.transform.Find("PanelA/Award/Panel_PlayerExp/PvpLevelNode").gameObject.CustomSetActive(true);
            Text   component = root.transform.Find("PanelA/Award/Panel_PlayerExp/PvpLevelNode/GameType").GetComponent <Text>();
            Text   text2     = root.transform.Find("PanelA/Award/Panel_PlayerExp/PvpLevelNode/PvpLevel").GetComponent <Text>();
            string text      = Singleton <CTextManager> .instance.GetText("Battle_Settle_Game_Type_Single");

            string        str2           = string.Empty;
            SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext();

            DebugHelper.Assert(curLvelContext != null, "Battle Level Context is NULL!!");
            uint iLevelID = (uint)curLvelContext.iLevelID;

            if (curLvelContext.isPVPLevel)
            {
                if (((curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_PVP_MATCH) || (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT)) || ((curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_PVP_ROOM) || (curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_ENTERTAINMENT)))
                {
                    ResAcntBattleLevelInfo dataByKey = GameDataMgr.pvpLevelDatabin.GetDataByKey(iLevelID);
                    if (dataByKey == null)
                    {
                        ResCounterPartLevelInfo info2 = GameDataMgr.cpLevelDatabin.GetDataByKey(iLevelID);
                        object[] inParameters         = new object[] { iLevelID };
                        DebugHelper.Assert(info2 != null, "Failed find counterpart level config for id {0}", inParameters);
                        str2 = Utility.UTF8Convert(info2.stLevelCommonInfo.szName);
                        text = Singleton <CTextManager> .instance.GetText(string.Format("Battle_Settle_Game_Type{0}", info2.stLevelCommonInfo.bMaxAcntNum / 2));
                    }
                    else
                    {
                        str2 = Utility.UTF8Convert(dataByKey.stLevelCommonInfo.szName);
                        text = Singleton <CTextManager> .instance.GetText(string.Format("Battle_Settle_Game_Type{0}", dataByKey.stLevelCommonInfo.bMaxAcntNum / 2));
                    }
                }
                else if (curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_LADDER)
                {
                    ResRankLevelInfo info3 = GameDataMgr.rankLevelDatabin.GetDataByKey(iLevelID);
                    DebugHelper.Assert(info3 != null);
                    str2 = Utility.UTF8Convert(info3.stLevelCommonInfo.szName);
                    text = Singleton <CTextManager> .instance.GetText(string.Format("Battle_Settle_Game_Type{0}", info3.stLevelCommonInfo.bMaxAcntNum / 2));
                }
            }
            else if (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_ARENA)
            {
                ResLevelCfgInfo info4     = GameDataMgr.arenaLevelDatabin.GetDataByKey((int)iLevelID);
                object[]        objArray2 = new object[] { iLevelID };
                DebugHelper.Assert(info4 != null, "Failed find level config for id {0}", objArray2);
                str2 = Utility.UTF8Convert(info4.szName);
            }
            else if (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT)
            {
                ResAcntBattleLevelInfo info5 = GameDataMgr.pvpLevelDatabin.GetDataByKey(iLevelID);
                object[] objArray3           = new object[] { iLevelID };
                DebugHelper.Assert(info5 != null, "Failed find level config for id {0}", objArray3);
                str2 = Utility.UTF8Convert(info5.stLevelCommonInfo.szName);
            }
            component.text = text;
            text2.text     = str2;
        }
Пример #10
0
 private void _SetSingleGame(ResLevelCfgInfo levelCfg)
 {
     if (levelCfg == null)
     {
         return;
     }
     this._gameContextCommonData.MapId                      = levelCfg.iCfgID;
     this._gameContextCommonData.IsMobaGame                 = (levelCfg.iLevelType == 0);
     this._gameContextCommonData.SelectHeroType             = enSelectType.enMutile;
     this._gameContextCommonData.LevelDifficulty            = Math.Max(1, this._gameContextCommonData.LevelDifficulty);
     this._gameContextCommonData.HeroAiType                 = levelCfg.iHeroAIType;
     this._gameContextCommonData.SoulGrowActive             = (levelCfg.bSoulGrow > 0);
     this._gameContextCommonData.BaseReviveTime             = (int)levelCfg.dwReviveTime;
     this._gameContextCommonData.DynamicPropertyConfigId    = levelCfg.dwDynamicPropertyCfg;
     this._gameContextCommonData.MiniMapPath                = levelCfg.szThumbnailPath;
     this._gameContextCommonData.BigMapPath                 = levelCfg.szBigMapPath;
     this._gameContextCommonData.MapWidth                   = levelCfg.iMapWidth;
     this._gameContextCommonData.MapHeight                  = levelCfg.iMapHeight;
     this._gameContextCommonData.BigMapWidth                = levelCfg.iBigMapWidth;
     this._gameContextCommonData.BigMapHeight               = levelCfg.iBigMapHeight;
     this._gameContextCommonData.MapFOWScale                = 1f;
     this._gameContextCommonData.BigMapFOWScale             = 1f;
     this._gameContextCommonData.MapName                    = levelCfg.szName;
     this._gameContextCommonData.MapDesignFileName          = levelCfg.szDesignFileName;
     this._gameContextCommonData.MapArtistFileName          = levelCfg.szArtistFileName;
     this._gameContextCommonData.MusicStartEvent            = levelCfg.szMusicStartEvent;
     this._gameContextCommonData.MusicEndEvent              = levelCfg.szMusicEndEvent;
     this._gameContextCommonData.AmbientSoundEvent          = levelCfg.szAmbientSoundEvent;
     this._gameContextCommonData.MusicBankResName           = levelCfg.szBankResourceName;
     this._gameContextCommonData.HorizonEnableMethod        = (Horizon.EnableMethod)((!this._gameContextCommonData.IsMobaGame) ? levelCfg.bEnableHorizon : 1);
     this._gameContextCommonData.SoulId                     = levelCfg.dwSoulID;
     this._gameContextCommonData.SoulAllocId                = levelCfg.dwSoulAllocId;
     this._gameContextCommonData.ExtraMapSkillId            = levelCfg.iExtraSkillId;
     this._gameContextCommonData.ExtraMapSkill2Id           = levelCfg.iExtraSkill2Id;
     this._gameContextCommonData.ExtraPassiveSkillId        = levelCfg.iExtraPassiveSkillId;
     this._gameContextCommonData.OrnamentSkillId            = 0;
     this._gameContextCommonData.OrnamentSwitchCd0          = 0;
     this._gameContextCommonData.EnableFOW                  = false;
     this._gameContextCommonData.EnableShopHorizonTab       = false;
     this._gameContextCommonData.EnableOrnamentSlot         = false;
     this._gameContextCommonData.CanRightJoyStickCameraDrag = (levelCfg.bSupportCameraDrag > 0);
     this._gameContextCommonData.CameraFlip                 = false;
     this._gameContextSoloData.IsValid                      = true;
     this._gameContextSoloData.PveLevelType                 = levelCfg.iLevelType;
     this._gameContextSoloData.ChapterNo                    = levelCfg.iChapterId;
     this._gameContextSoloData.LevelNo                      = (int)levelCfg.bLevelNo;
     this._gameContextSoloData.FinDialogId                  = levelCfg.iPassDialogId;
     this._gameContextSoloData.PreDialogId                  = levelCfg.iPreDialogId;
     this._gameContextSoloData.FailureDialogId              = levelCfg.iFailureDialogId;
     this._gameContextSoloData.IsShowTrainingHelper         = (levelCfg.bShowTrainingHelper > 0);
     this._gameContextSoloData.CanAutoGame                  = (levelCfg.bIsOpenAutoAI == 0);
     this._gameContextSoloData.ReviveTimeMax                = (int)levelCfg.bReviveTimeMax;
     this._gameContextSoloData.LoseCondition                = levelCfg.iLoseCondition;
     this._gameContextSoloData.MapBuffs                     = levelCfg.astMapBuffs;
     this._gameContextSoloData.StarDetail                   = levelCfg.astStarDetail;
     this._gameContextSoloData.ReviveInfo                   = levelCfg.astReviveInfo;
 }
Пример #11
0
        private static void SetReward(CUIFormScript formScript, GameObject itemCell, ResLevelCfgInfo resLevelInfo, int difficulty)
        {
            ResDT_PveRewardShowInfo info = resLevelInfo.astRewardShowDetail[difficulty - 1];
            CUseable itemUseable         = CUseableManager.CreateUseable((COM_ITEM_TYPE)info.bRewardType, info.dwRewardID, 0);

            if (itemUseable != null)
            {
                CUICommonSystem.SetItemCell(formScript, itemCell, itemUseable, true, false);
            }
        }
Пример #12
0
        private void InitFromView(CUIFormScript formScript)
        {
            SLevelContext curLvelContext = Singleton <BattleLogic> .GetInstance().GetCurLvelContext();

            ResLevelCfgInfo dataByKey = GameDataMgr.levelDatabin.GetDataByKey(curLvelContext.iLevelID);

            this.InitBuffItem(formScript, curLvelContext, dataByKey);
            this.m_relivePayType  = CMallSystem.ResBuyTypeToPayType(dataByKey.astReviveInfo[curLvelContext.difficulty].astReviveCost[3 - m_iRemainReviveNum].bCostType);
            this.m_relivePayValue = dataByKey.astReviveInfo[curLvelContext.difficulty].astReviveCost[3 - m_iRemainReviveNum].dwCostPrice;
            string     str    = string.Format(Singleton <CTextManager> .GetInstance().GetText("ReliveMessage"), Singleton <CTextManager> .GetInstance().GetText(CMallSystem.s_payTypeNameKeys[(int)this.m_relivePayType]));
            GameObject widget = formScript.GetWidget(0);

            if (widget != null)
            {
                Text component = widget.GetComponent <Text>();
                if (component != null)
                {
                    component.text = str;
                }
            }
            GameObject obj3 = formScript.GetWidget(1);

            if (obj3 != null)
            {
                Image image = obj3.GetComponent <Image>();
                if (image != null)
                {
                    image.SetSprite(CMallSystem.GetPayTypeIconPath(this.m_relivePayType), formScript, true, false, false);
                }
            }
            GameObject obj4 = formScript.GetWidget(2);

            if (obj4 != null)
            {
                Text text2 = obj4.GetComponent <Text>();
                if (text2 != null)
                {
                    text2.text = this.m_relivePayValue.ToString();
                }
            }
            GameObject gameObject = this.m_form.transform.Find("buffInfoPanel").gameObject;

            if (gameObject != null)
            {
                GameObject obj6 = gameObject.transform.Find("ReviveText/NumText").gameObject;
                if (obj6 != null)
                {
                    obj6.GetComponent <Text>().text = m_iRemainReviveNum.ToString();
                    CUITimerScript script         = gameObject.transform.Find("Timer").GetComponent <CUITimerScript>();
                    byte           bReviveTimeMax = dataByKey.bReviveTimeMax;
                    script.SetTotalTime((float)bReviveTimeMax);
                }
            }
        }
Пример #13
0
        public static void InitLevelForm(CUIFormScript formScript, int chapterNo, int LevelNo, int difficulty)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo == null)
            {
                return;
            }
            PVE_ADV_COMPLETE_INFO   pVE_ADV_COMPLETE_INFO   = masterRoleInfo.pveLevelDetail[difficulty - 1];
            PVE_LEVEL_COMPLETE_INFO pVE_LEVEL_COMPLETE_INFO = pVE_ADV_COMPLETE_INFO.ChapterDetailList[chapterNo - 1].LevelDetailList[LevelNo - 1];
            GameObject      gameObject = formScript.gameObject;
            ResLevelCfgInfo dataByKey  = GameDataMgr.levelDatabin.GetDataByKey((long)pVE_LEVEL_COMPLETE_INFO.iLevelID);

            if (dataByKey != null)
            {
                string text = StringHelper.UTF8BytesToString(ref dataByKey.szName);
                formScript.transform.Find("PanelLeft/DifficultText").GetComponent <Text>().text = Singleton <CTextManager> .get_instance().GetText(string.Format("Adventure_Level_{0}", difficulty));

                formScript.transform.Find("Panel_Main/ImgMapNameBg/MapNameText").GetComponent <Text>().text = text;
                formScript.transform.Find("PanelLeft/MapNameText").GetComponent <Text>().text      = text;
                formScript.transform.Find("PanelLeft/MapDescText").GetComponent <Text>().text      = StringHelper.UTF8BytesToString(ref dataByKey.szLevelDesc);
                formScript.transform.Find("PanelLeft/RecPlayerLvlText").GetComponent <Text>().text = Singleton <CTextManager> .get_instance().GetText("Level_Recommend_Tips_1", new string[]
                {
                    dataByKey.RecommendLevel[difficulty - 1].ToString()
                });

                formScript.transform.Find("PanelLeft/ChapterImg").GetComponent <Image>().SetSprite(CAdventureView.GetLevelBgPath(chapterNo, LevelNo, difficulty), formScript, true, false, false, false);
                formScript.transform.Find("PanelLeft/DifficultImg").GetComponent <Image>().SetSprite(CAdventureView.GetDifficultIcon(difficulty), formScript, true, false, false, false);
                for (int i = 1; i <= CAdventureSys.STAR_PER_LEVEL; i++)
                {
                    GameObject gameObject2 = gameObject.transform.Find("PanelRight/WinCondition" + i).gameObject;
                    CAdventureView.SetStarConditionDesc(formScript, gameObject2, (uint)dataByKey.astStarDetail[i - 1].iParam, CAdventureSys.IsStarGained(pVE_LEVEL_COMPLETE_INFO.bStarBits, i));
                }
                GameObject gameObject3 = gameObject.transform.Find("PanelRight/itemCell").gameObject;
                CAdventureView.SetReward(formScript, gameObject3, dataByKey, difficulty);
                GameObject  gameObject4             = gameObject.transform.Find("PanelRight/HeroList").gameObject;
                int         num                     = 0;
                List <uint> heroListForBattleListID = Singleton <CHeroSelectBaseSystem> .get_instance().GetHeroListForBattleListID(dataByKey.dwBattleListID);

                CAdventureView.SetTeamHeroList(gameObject4, heroListForBattleListID, out num);
                GameObject gameObject5 = gameObject.transform.Find("BtnStart").gameObject;
                CAdventureView.SetStartBtnEnable(gameObject5, heroListForBattleListID);
                formScript.gameObject.transform.FindChild("Bg").gameObject.GetComponent <Image>().color = CAdventureView.s_Adv_Difficult_Bg_Color[difficulty - 1];
            }
            else
            {
                DebugHelper.Assert(false, "Can't find level info -- id: {0}", new object[]
                {
                    pVE_LEVEL_COMPLETE_INFO.iLevelID
                });
            }
        }
Пример #14
0
 public void Init(ResLevelCfgInfo levelCfg, int difficult)
 {
     this.LevelName           = StringHelper.UTF8BytesToString(ref levelCfg.szName);
     this.LevelDesignFileName = StringHelper.UTF8BytesToString(ref levelCfg.szDesignFileName);
     if ((levelCfg.szArtistFileName != null) && (levelCfg.szArtistFileName.Length > 0))
     {
         this.LevelArtistFileName = StringHelper.UTF8BytesToString(ref levelCfg.szArtistFileName);
     }
     this.iLevelID   = levelCfg.iCfgID;
     this.iChapterNo = levelCfg.iChapterId;
     this.bLevelNo   = levelCfg.bLevelNo;
     this.difficulty = difficult;
     this.LevelType  = (RES_LEVEL_TYPE)levelCfg.iLevelType;
     if (this.LevelType == RES_LEVEL_TYPE.RES_LEVEL_TYPE_GUIDE)
     {
         this.GameType = COM_GAME_TYPE.COM_SINGLE_GAME_OF_GUIDE;
     }
     this.PassDialogId          = levelCfg.iPassDialogId;
     this.PreDialogId           = levelCfg.iPreDialogId;
     this.FailureDialogId       = levelCfg.iFailureDialogId;
     this.AIModeType            = (RES_LEVEL_HEROAITYPE)levelCfg.iHeroAIType;
     this.bSoulGrow             = levelCfg.bSoulGrow;
     this.dwAttackOrder         = levelCfg.dwAttackOrderID;
     this.baseReviveTime        = (int)levelCfg.dwReviveTime;
     this.dynamicPropertyConfig = levelCfg.dwDynamicPropertyCfg;
     this.isPVPMode             = this.LevelType == RES_LEVEL_TYPE.RES_LEVEL_TYPE_PVP;
     this.miniMapPath           = StringHelper.UTF8BytesToString(ref levelCfg.szThumbnailPath);
     this.bigMapPath            = StringHelper.UTF8BytesToString(ref levelCfg.szBigMapPath);
     this.mapPath             = StringHelper.UTF8BytesToString(ref levelCfg.szMapPath);
     this.mapWidth            = levelCfg.iMapWidth;
     this.mapHeight           = levelCfg.iMapHeight;
     this.bigMapWidth         = levelCfg.iBigMapWidth;
     this.bigMapHeight        = levelCfg.iBigMapHeight;
     this.musicStartEvent     = StringHelper.UTF8BytesToString(ref levelCfg.szMusicStartEvent);
     this.musicEndEvent       = StringHelper.UTF8BytesToString(ref levelCfg.szMusicEndEvent);
     this.ambientSoundEvent   = StringHelper.UTF8BytesToString(ref levelCfg.szAmbientSoundEvent);
     this.bankResName         = StringHelper.UTF8BytesToString(ref levelCfg.szBankResourceName);
     this.horizonEnableMethod = (Horizon.EnableMethod)levelCfg.bEnableHorizon;
     if (this.isPVPMode)
     {
         this.horizonEnableMethod = Horizon.EnableMethod.EnableAll;
     }
     this.canAutoAI = levelCfg.bIsOpenAutoAI != 0;
     this.MapBuffs  = levelCfg.astMapBuffs;
     if ((difficult >= 1) && (difficult < (levelCfg.RecommendPower.Length + 1)))
     {
         this.recommendCombatEft = levelCfg.RecommendPower[difficult - 1];
     }
     this.bCameraFlip = false;
 }
Пример #15
0
        internal DynamicAttributeInfo ConsiderOrganDynamicInfo(ResOrganCfgInfo organCfg)
        {
            int num = 0;
            DynamicAttributeInfo result = null;

            if (organCfg.iDynamicInfoType == 1)
            {
                SLevelContext curLvelContext = Singleton <BattleLogic> .get_instance().GetCurLvelContext();

                if (curLvelContext != null && !curLvelContext.IsMobaMode())
                {
                    ResLevelCfgInfo dataByKey = GameDataMgr.levelDatabin.GetDataByKey((long)curLvelContext.m_mapID);
                    if (dataByKey == null)
                    {
                        base.ErrorMissingLevelConfig((uint)curLvelContext.m_mapID);
                        return(null);
                    }
                    if (curLvelContext.m_pveLevelType == null)
                    {
                        num = (int)dataByKey.dwAIPlayerLevel;
                    }
                }
            }
            if (num <= 0)
            {
                return(null);
            }
            ResMonsterOrganLevelDynamicInfo dataByKey2 = GameDataMgr.monsterOrganLvDynamicInfobin.GetDataByKey((long)num);

            if (dataByKey2 == null)
            {
                return(null);
            }
            switch (organCfg.bOrganType)
            {
            case 1:
                result = dataByKey2.stTurret;
                break;

            case 2:
                result = dataByKey2.stBase;
                break;

            case 3:
                result = dataByKey2.stBarrack;
                break;
            }
            return(result);
        }
Пример #16
0
        private void On_Burn_Challenge(CUIEvent uievent)
        {
            CSDT_SINGLE_GAME_OF_BURNING reportInfo = BurnExpeditionUT.Create_CSDT_SINGLE_GAME_OF_BURNING(this.model.curSelect_LevelIndex);
            ResLevelCfgInfo             info       = BurnExpeditionUT.Get_LevelConfigInfo(Singleton <BurnExpeditionController> .instance.model.curSelect_LevelIndex);

            DebugHelper.Assert(info != null);
            if (info != null)
            {
                byte iHeroNum       = (byte)info.iHeroNum;
                uint dwBattleListID = info.dwBattleListID;
                Singleton <CHeroSelectBaseSystem> .instance.SetPVEDataWithBurnExpedition(dwBattleListID, reportInfo, StringHelper.UTF8BytesToString(ref info.szName));

                Singleton <CHeroSelectBaseSystem> .instance.OpenForm(enSelectGameType.enBurning, iHeroNum, 0, 0, 0);
            }
        }
Пример #17
0
        public static ResDT_LevelCommonInfo FindLevelConfigMultiGame(int levelId)
        {
            ResDT_LevelCommonInfo stLevelCommonInfo = null;
            SLevelContext         curLvelContext    = Singleton <BattleLogic> .instance.GetCurLvelContext();

            if (curLvelContext != null)
            {
                if (((curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_PVP_MATCH) || (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT)) || ((curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_PVP_ROOM) || (curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_ENTERTAINMENT)))
                {
                    ResAcntBattleLevelInfo  dataByKey = GameDataMgr.pvpLevelDatabin.GetDataByKey(levelId);
                    ResCounterPartLevelInfo info4     = null;
                    if (dataByKey == null)
                    {
                        info4 = GameDataMgr.cpLevelDatabin.GetDataByKey(levelId);
                        object[] inParameters = new object[] { levelId };
                        DebugHelper.Assert(info4 != null, "Failed find counterpart level config for id {0}", inParameters);
                        return(info4.stLevelCommonInfo);
                    }
                    return(dataByKey.stLevelCommonInfo);
                }
                if (curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_LADDER)
                {
                    ResRankLevelInfo info5 = GameDataMgr.rankLevelDatabin.GetDataByKey(levelId);
                    if (info5 != null)
                    {
                        stLevelCommonInfo = info5.stLevelCommonInfo;
                    }
                    return(stLevelCommonInfo);
                }
                if (curLvelContext.GameType == COM_GAME_TYPE.COM_MULTI_GAME_OF_REWARDMATCH)
                {
                    ResRewardMatchLevelInfo info6 = GameDataMgr.uinionBattleLevelDatabin.GetDataByKey(levelId);
                    if (info6 != null)
                    {
                        stLevelCommonInfo = info6.stLevelCommonInfo;
                    }
                    return(stLevelCommonInfo);
                }
                if (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_GUIDE)
                {
                    ResLevelCfgInfo info7 = GameDataMgr.levelDatabin.GetDataByKey(levelId);
                    stLevelCommonInfo = new ResDT_LevelCommonInfo {
                        bMaxAcntNum = info7.bMaxAcntNum
                    };
                }
            }
            return(stLevelCommonInfo);
        }
    protected override string Execute(string[] InArguments, ref CSDT_CHEATCMD_DETAIL CheatCmdRef)
    {
        int           Chapter       = CheatCommandBase.SmartConvert <int>(InArguments[0]);
        int           No            = CheatCommandBase.SmartConvert <int>(InArguments[1]);
        ELevelTypeTag eLevelTypeTag = CheatCommandBase.SmartConvert <ELevelTypeTag>(InArguments[2]);

        CheatCmdRef.stUnlockLevel = new CSDT_CHEAT_UNLOCK_LEVEL();
        RES_LEVEL_DIFFICULTY_TYPE DiffType        = (eLevelTypeTag == ELevelTypeTag.普通) ? RES_LEVEL_DIFFICULTY_TYPE.RES_LEVEL_DIFFICULTY_TYPE_NORMAL : RES_LEVEL_DIFFICULTY_TYPE.RES_LEVEL_DIFFICULTY_TYPE_NIGHTMARE;
        ResLevelCfgInfo           resLevelCfgInfo = GameDataMgr.levelDatabin.FindIf((ResLevelCfgInfo x) => x.iChapterId == Chapter && (int)x.bLevelNo == No && x.bLevelDifficulty == (byte)DiffType);

        if (resLevelCfgInfo != null)
        {
            CheatCmdRef.stUnlockLevel.iLevelID = resLevelCfgInfo.iCfgID;
            return(CheatCommandBase.Done);
        }
        return(string.Format("未找到 {2} {0}-{1}对应地图配置", Chapter, No, eLevelTypeTag.ToString()));
    }
Пример #19
0
        public static SLevelContext CreatePveLevelContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            SLevelContext context = new SLevelContext();

            context.SetGameType((COM_GAME_TYPE)InMessage.bGameType);
            ResLevelCfgInfo pveMapInfo = GetPveMapInfo(InMessage.bGameType, InMessage.iLevelId);

            if (InMessage.bGameType == 2)
            {
                context.InitPveData(pveMapInfo, 1);
                if (pveMapInfo.bGuideLevelSubType == 0)
                {
                    context.m_isMobaType = true;
                    return(context);
                }
                if (pveMapInfo.bGuideLevelSubType == 1)
                {
                    context.m_isMobaType = false;
                }
                return(context);
            }
            if (InMessage.bGameType == 0)
            {
                context.InitPveData(pveMapInfo, Singleton <CAdventureSys> .instance.currentDifficulty);
                return(context);
            }
            if (InMessage.bGameType == 7)
            {
                context.InitPveData(pveMapInfo, 1);
                return(context);
            }
            if (InMessage.bGameType == 8)
            {
                context.InitPveData(pveMapInfo, 1);
                return(context);
            }
            if ((InMessage.bGameType != 3) && (InMessage.bGameType == 1))
            {
                byte bMapType = InMessage.stGameParam.stSingleGameRspOfCombat.bMapType;
                uint dwMapId  = InMessage.stGameParam.stSingleGameRspOfCombat.dwMapId;
                context = CreatePvpLevelContext(bMapType, dwMapId, (COM_GAME_TYPE)InMessage.bGameType, 1);
                context.m_isWarmBattle = Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle);
                context.SetWarmHeroAiDiff(InMessage.stGameParam.stSingleGameRspOfCombat.bAILevel);
            }
            return(context);
        }
        internal DynamicAttributeInfo ConsiderOrganDynamicInfo(ResOrganCfgInfo organCfg)
        {
            int dwAIPlayerLevel = 0;

            if (organCfg.iDynamicInfoType == 1)
            {
                SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext();

                if ((curLvelContext != null) && !curLvelContext.IsMobaMode())
                {
                    ResLevelCfgInfo info2 = GameDataMgr.levelDatabin.GetDataByKey((long)curLvelContext.m_mapID);
                    if (info2 == null)
                    {
                        base.ErrorMissingLevelConfig((uint)curLvelContext.m_mapID);
                        return(null);
                    }
                    if (curLvelContext.m_pveLevelType == RES_LEVEL_TYPE.RES_LEVEL_TYPE_PVP)
                    {
                        dwAIPlayerLevel = (int)info2.dwAIPlayerLevel;
                    }
                }
            }
            if (dwAIPlayerLevel <= 0)
            {
                return(null);
            }
            ResMonsterOrganLevelDynamicInfo dataByKey = GameDataMgr.monsterOrganLvDynamicInfobin.GetDataByKey((long)dwAIPlayerLevel);

            if (dataByKey == null)
            {
                return(null);
            }
            switch (organCfg.bOrganType)
            {
            case 1:
                return(dataByKey.stTurret);

            case 2:
                return(dataByKey.stBase);

            case 3:
                return(dataByKey.stBarrack);
            }
            return(null);
        }
Пример #21
0
        public static void InitLevelForm(CUIFormScript formScript, int chapterNo, int LevelNo, int difficulty)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo != null)
            {
                PVE_ADV_COMPLETE_INFO   pve_adv_complete_info   = masterRoleInfo.pveLevelDetail[difficulty - 1];
                PVE_LEVEL_COMPLETE_INFO pve_level_complete_info = pve_adv_complete_info.ChapterDetailList[chapterNo - 1].LevelDetailList[LevelNo - 1];
                GameObject      gameObject = formScript.gameObject;
                ResLevelCfgInfo dataByKey  = GameDataMgr.levelDatabin.GetDataByKey(pve_level_complete_info.iLevelID);
                if (dataByKey != null)
                {
                    string str = StringHelper.UTF8BytesToString(ref dataByKey.szName);
                    formScript.transform.Find("PanelLeft/DifficultText").GetComponent <Text>().text = Singleton <CTextManager> .instance.GetText(string.Format("Adventure_Level_{0}", difficulty));

                    formScript.transform.Find("Panel_Main/ImgMapNameBg/MapNameText").GetComponent <Text>().text = str;
                    formScript.transform.Find("PanelLeft/MapNameText").GetComponent <Text>().text = str;
                    formScript.transform.Find("PanelLeft/MapDescText").GetComponent <Text>().text = StringHelper.UTF8BytesToString(ref dataByKey.szLevelDesc);
                    string[] args = new string[] { dataByKey.RecommendLevel[difficulty - 1].ToString() };
                    formScript.transform.Find("PanelLeft/RecPlayerLvlText").GetComponent <Text>().text = Singleton <CTextManager> .instance.GetText("Level_Recommend_Tips_1", args);

                    formScript.transform.Find("PanelLeft/ChapterImg").GetComponent <Image>().SetSprite(GetLevelBgPath(chapterNo, LevelNo, difficulty), formScript, true, false, false);
                    formScript.transform.Find("PanelLeft/DifficultImg").GetComponent <Image>().SetSprite(GetDifficultIcon(difficulty), formScript, true, false, false);
                    for (int i = 1; i <= CAdventureSys.STAR_PER_LEVEL; i++)
                    {
                        GameObject descCon = gameObject.transform.Find("PanelRight/WinCondition" + i).gameObject;
                        SetStarConditionDesc(formScript, descCon, (uint)dataByKey.astStarDetail[i - 1].iParam, CAdventureSys.IsStarGained(pve_level_complete_info.bStarBits, i));
                    }
                    GameObject itemCell = gameObject.transform.Find("PanelRight/itemCell").gameObject;
                    SetReward(formScript, itemCell, dataByKey, difficulty);
                    GameObject  obj5      = gameObject.transform.Find("PanelRight/HeroList").gameObject;
                    int         teamPower = 0;
                    List <uint> heroListForBattleListID = Singleton <CHeroSelectSystem> .GetInstance().GetHeroListForBattleListID(dataByKey.dwBattleListID);

                    SetTeamHeroList(obj5, heroListForBattleListID, out teamPower);
                    SetStartBtnEnable(gameObject.transform.Find("BtnStart").gameObject, heroListForBattleListID);
                    formScript.GetComponent <Image>().color = s_Adv_Difficult_Bg_Color[difficulty - 1];
                }
                else
                {
                    object[] inParameters = new object[] { pve_level_complete_info.iLevelID };
                    DebugHelper.Assert(false, "Can't find level info -- id: {0}", inParameters);
                }
            }
        }
        private void On_Burn_Challenge(CUIEvent uievent)
        {
            CSDT_SINGLE_GAME_OF_BURNING reportInfo = BurnExpeditionUT.Create_CSDT_SINGLE_GAME_OF_BURNING(this.model.curSelect_LevelIndex);
            ResLevelCfgInfo             info       = BurnExpeditionUT.Get_LevelConfigInfo(Singleton <BurnExpeditionController> .instance.model.curSelect_LevelIndex);

            DebugHelper.Assert(info != null);
            if (info != null)
            {
                byte iHeroNum       = (byte)info.iHeroNum;
                uint dwBattleListID = info.dwBattleListID;
                Singleton <CHeroSelectSystem> .GetInstance().SetPVEDataWithBurnExpedition(iHeroNum, dwBattleListID, reportInfo, StringHelper.UTF8BytesToString(ref info.szName));

                stUIEventParams par = new stUIEventParams {
                    heroSelectGameType = enSelectHeroType.enBurning
                };
                Singleton <CUIEventManager> .GetInstance().DispatchUIEvent(enUIEventID.HeroSelect_OpenForm, par);
            }
        }
Пример #23
0
        public static SLevelContext CreatePveLevelContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            SLevelContext sLevelContext = new SLevelContext();

            sLevelContext.SetGameType(InMessage.bGameType);
            ResLevelCfgInfo pveMapInfo = CLevelCfgLogicManager.GetPveMapInfo(InMessage.bGameType, InMessage.iLevelId);

            if (InMessage.bGameType == 2)
            {
                sLevelContext.InitPveData(pveMapInfo, 1);
                if (pveMapInfo.bGuideLevelSubType == 0)
                {
                    sLevelContext.m_isMobaType = true;
                }
                else if (pveMapInfo.bGuideLevelSubType == 1)
                {
                    sLevelContext.m_isMobaType = false;
                }
            }
            else if (InMessage.bGameType == 0)
            {
                sLevelContext.InitPveData(pveMapInfo, Singleton <CAdventureSys> .get_instance().currentDifficulty);
            }
            else if (InMessage.bGameType == 7)
            {
                sLevelContext.InitPveData(pveMapInfo, 1);
            }
            else if (InMessage.bGameType == 8)
            {
                sLevelContext.InitPveData(pveMapInfo, 1);
            }
            else if (InMessage.bGameType != 3)
            {
                if (InMessage.bGameType == 1)
                {
                    byte bMapType = InMessage.stGameParam.get_stSingleGameRspOfCombat().bMapType;
                    uint dwMapId  = InMessage.stGameParam.get_stSingleGameRspOfCombat().dwMapId;
                    sLevelContext = CLevelCfgLogicManager.CreatePvpLevelContext(bMapType, dwMapId, InMessage.bGameType, 1);
                    sLevelContext.m_isWarmBattle = Convert.ToBoolean(InMessage.stGameParam.get_stSingleGameRspOfCombat().bIsWarmBattle);
                    sLevelContext.SetWarmHeroAiDiff(InMessage.stGameParam.get_stSingleGameRspOfCombat().bAILevel);
                }
            }
            return(sLevelContext);
        }
Пример #24
0
        public bool Reset(int LevelID, bool bMultiGame)
        {
            this.Clear();
            ResDT_LevelCommonInfo outLevelComInfo = null;

            if (bMultiGame)
            {
                outLevelComInfo = CLevelCfgLogicManager.FindLevelConfigMultiGame(LevelID);
            }
            else
            {
                ResLevelCfgInfo outLevelCfg = null;
                CLevelCfgLogicManager.FindLevelConfigSingleGame(LevelID, out outLevelCfg, out outLevelComInfo);
            }
            bool flag = false;

            if (outLevelComInfo != null)
            {
                this.CurLevelTimeDuration = outLevelComInfo.dwTimeDuration;
                if (outLevelComInfo.dwAddWinCondStarId != 0)
                {
                    ResEvaluateStarInfo dataByKey = GameDataMgr.addWinLoseCondDatabin.GetDataByKey(outLevelComInfo.dwAddWinCondStarId);
                    DebugHelper.Assert(dataByKey != null);
                    if (dataByKey != null)
                    {
                        this.WinnerEvaluation = this.CreateStar(dataByKey);
                        DebugHelper.Assert(this.WinnerEvaluation != null, "我擦,怎会没有?");
                        flag = true;
                    }
                }
                if (outLevelComInfo.dwAddLoseCondStarId != 0)
                {
                    ResEvaluateStarInfo conditionDetail = GameDataMgr.addWinLoseCondDatabin.GetDataByKey(outLevelComInfo.dwAddLoseCondStarId);
                    DebugHelper.Assert(conditionDetail != null);
                    if (conditionDetail != null)
                    {
                        this.LoserEvaluation = this.CreateStar(conditionDetail);
                        DebugHelper.Assert(this.LoserEvaluation != null, "我擦,怎会没有?");
                        flag = true;
                    }
                }
            }
            return(flag);
        }
Пример #25
0
        public void OnLinkPveClick(CUIEvent uiEvent)
        {
            uint taskId = uiEvent.m_eventParams.taskId;

            uiEvent.m_eventID = enUIEventID.Adv_OpenChapterForm;
            ResTask dataByKey = GameDataMgr.taskDatabin.GetDataByKey(taskId);
            int     num       = 0;

            for (int i = 0; i < dataByKey.astPrerequisiteArray.Length; i++)
            {
                if (dataByKey.astPrerequisiteArray[i].dwPrerequisiteType == 2u)
                {
                    num = dataByKey.astPrerequisiteArray[i].astPrerequisiteParam[1].iParam;
                    break;
                }
            }
            if (num == 0)
            {
                Singleton <CAdventureSys> .get_instance().currentChapter = 1;

                Singleton <CAdventureSys> .get_instance().currentLevelSeq = 1;

                Singleton <CAdventureSys> .get_instance().currentDifficulty = 1;

                Singleton <CUIEventManager> .GetInstance().DispatchUIEvent(uiEvent);
            }
            else
            {
                ResLevelCfgInfo dataByKey2 = GameDataMgr.levelDatabin.GetDataByKey((long)num);
                DebugHelper.Assert(dataByKey2 != null);
                if (dataByKey2 != null)
                {
                    Singleton <CAdventureSys> .get_instance().currentChapter = dataByKey2.iChapterId;

                    Singleton <CAdventureSys> .get_instance().currentLevelSeq = (int)dataByKey2.bLevelNo;

                    Singleton <CAdventureSys> .get_instance().currentDifficulty = uiEvent.m_eventParams.tag;

                    Singleton <CUIEventManager> .GetInstance().DispatchUIEvent(uiEvent);
                }
            }
        }
Пример #26
0
        public static void FindLevelConfigSingleGame(int levelId, out ResLevelCfgInfo outLevelCfg, out ResDT_LevelCommonInfo outLevelComInfo)
        {
            outLevelCfg     = null;
            outLevelComInfo = null;
            SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext();

            if (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT)
            {
                ResAcntBattleLevelInfo  dataByKey         = GameDataMgr.pvpLevelDatabin.GetDataByKey(levelId);
                ResDT_LevelCommonInfo   stLevelCommonInfo = null;
                ResCounterPartLevelInfo info3             = null;
                if (dataByKey == null)
                {
                    info3 = GameDataMgr.cpLevelDatabin.GetDataByKey(levelId);
                    object[] inParameters = new object[] { levelId };
                    DebugHelper.Assert(info3 != null, "Failed find counterpart level config for id {0}", inParameters);
                    stLevelCommonInfo = info3.stLevelCommonInfo;
                }
                else
                {
                    stLevelCommonInfo = dataByKey.stLevelCommonInfo;
                }
                outLevelComInfo = stLevelCommonInfo;
            }
            else if (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_ARENA)
            {
                ResLevelCfgInfo info4 = GameDataMgr.arenaLevelDatabin.GetDataByKey(levelId);
                outLevelCfg = info4;
            }
            else if (curLvelContext.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_BURNING)
            {
                ResLevelCfgInfo info5 = GameDataMgr.burnMap.GetDataByKey(levelId);
                outLevelCfg = info5;
            }
            else
            {
                ResLevelCfgInfo info6 = GameDataMgr.levelDatabin.GetDataByKey(levelId);
                outLevelCfg = info6;
            }
        }
        public bool CheckUnlock(uint id)
        {
            bool result = false;
            ResUnlockCondition dataByKey = GameDataMgr.unlockConditionDatabin.GetDataByKey(id);

            DebugHelper.Assert(dataByKey != null, "ResUnlockCondition[{0}] can not be find.", new object[]
            {
                id
            });
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "roleinfo can't be null in CheckUnlock");
            if (masterRoleInfo != null && dataByKey != null)
            {
                switch (dataByKey.wUnlockType)
                {
                case 1:
                    result = (masterRoleInfo.PvpLevel >= dataByKey.UnlockParam[0]);
                    break;

                case 2:
                {
                    int             num        = (int)dataByKey.UnlockParam[0];
                    int             num2       = (int)dataByKey.UnlockParam[1];
                    int             num3       = 0;
                    ResLevelCfgInfo dataByKey2 = GameDataMgr.levelDatabin.GetDataByKey((long)num);
                    DebugHelper.Assert(dataByKey2 != null, "can't find level = {0}", new object[]
                        {
                            num
                        });
                    if (dataByKey2 != null && dataByKey2 != null && masterRoleInfo.pveLevelDetail[num3] != null && masterRoleInfo.pveLevelDetail[num3].ChapterDetailList[dataByKey2.iChapterId - 1] != null)
                    {
                        PVE_CHAPTER_COMPLETE_INFO pVE_CHAPTER_COMPLETE_INFO = masterRoleInfo.pveLevelDetail[num3].ChapterDetailList[dataByKey2.iChapterId - 1];
                        for (int i = 0; i < pVE_CHAPTER_COMPLETE_INFO.LevelDetailList.Length; i++)
                        {
                            PVE_LEVEL_COMPLETE_INFO pVE_LEVEL_COMPLETE_INFO = pVE_CHAPTER_COMPLETE_INFO.LevelDetailList[i];
                            if (pVE_LEVEL_COMPLETE_INFO != null && pVE_LEVEL_COMPLETE_INFO.iLevelID == num)
                            {
                                bool arg_178_0 = pVE_LEVEL_COMPLETE_INFO.levelStatus == 1 && num2 <= CAdventureSys.GetStarNum(pVE_LEVEL_COMPLETE_INFO.bStarBits);
                                break;
                            }
                        }
                    }
                    result = true;
                    break;
                }

                case 4:
                {
                    uint num4 = 0u;
                    if (masterRoleInfo.pvpDetail != null)
                    {
                        num4 = masterRoleInfo.pvpDetail.stOneVsOneInfo.dwTotalNum + masterRoleInfo.pvpDetail.stTwoVsTwoInfo.dwTotalNum + masterRoleInfo.pvpDetail.stThreeVsThreeInfo.dwTotalNum;
                    }
                    result = (dataByKey.UnlockParam[0] <= num4 && dataByKey.UnlockParam[1] <= masterRoleInfo.PvpLevel);
                    break;
                }
                }
            }
            return(result);
        }
Пример #28
0
        public override void Init()
        {
            base.Init();
            this.talentSystem = new TalentSystem();
            this.talentSystem.Init(base.actorPtr);
            this.stSkillStat = new CSkillStat();
            if (this.stSkillStat != null)
            {
                this.stSkillStat.Initialize(base.actorPtr);
                this.InitRandomSkill();
                IGameActorDataProvider actorDataProvider = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.StaticBattleDataProvider);

                IGameActorDataProvider provider2 = Singleton <ActorDataCenter> .instance.GetActorDataProvider(GameActorDataProviderType.ServerDataProvider);

                ActorStaticSkillData skillData = new ActorStaticSkillData();
                for (int i = 0; i < 7; i++)
                {
                    ResDT_LevelCommonInfo info4;
                    if (i == 6)
                    {
                        SLevelContext context = Singleton <BattleLogic> .GetInstance().GetCurLvelContext();

                        if (context.GameType == COM_GAME_TYPE.COM_SINGLE_GAME_OF_GUIDE)
                        {
                            if (context.iLevelID == CBattleGuideManager.GuideLevelID5v5)
                            {
                                goto Label_00DF;
                            }
                            continue;
                        }
                        ResDT_LevelCommonInfo info = null;
                        info = CLevelCfgLogicManager.FindLevelConfigMultiGame(context.iLevelID);
                        if ((info == null) || (info.bMaxAcntNum != 10))
                        {
                            continue;
                        }
                    }
Label_00DF:
                    if (((i != 4) && (i != 6)) || (base.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero))
                    {
                        goto Label_0284;
                    }
                    SLevelContext curLvelContext = Singleton <BattleLogic> .instance.GetCurLvelContext();

                    if (curLvelContext == null)
                    {
                        continue;
                    }
                    int iLevelID = curLvelContext.iLevelID;
                    if (iLevelID <= 0)
                    {
                        continue;
                    }
                    if (Singleton <LobbyLogic> .instance.inMultiGame)
                    {
                        goto Label_0214;
                    }
                    ResLevelCfgInfo       outLevelCfg     = null;
                    ResDT_LevelCommonInfo outLevelComInfo = null;
                    CLevelCfgLogicManager.FindLevelConfigSingleGame(iLevelID, out outLevelCfg, out outLevelComInfo);
                    if (outLevelComInfo == null)
                    {
                        goto Label_01AD;
                    }
                    int iExtraSkillId = outLevelComInfo.iExtraSkillId;
                    if (i == 6)
                    {
                        iExtraSkillId = outLevelComInfo.iExtraSkill2Id;
                        if (iExtraSkillId > 0)
                        {
                            goto Label_0185;
                        }
                        continue;
                    }
                    this.CreateTalent(outLevelComInfo.iExtraPassiveSkillId);
Label_0185:
                    this.InitSkillSlot(i, iExtraSkillId, 0);
                    SkillSlot slot = this.SkillSlotArray[i];
                    if (slot != null)
                    {
                        slot.SetSkillLevel(1);
                    }
                    continue;
Label_01AD:
                    if (outLevelCfg == null)
                    {
                        continue;
                    }
                    int num4 = outLevelCfg.iExtraSkillId;
                    if (i == 6)
                    {
                        num4 = outLevelCfg.iExtraSkill2Id;
                        if (num4 > 0)
                        {
                            goto Label_01EC;
                        }
                        continue;
                    }
                    this.CreateTalent(outLevelCfg.iExtraPassiveSkillId);
Label_01EC:
                    this.InitSkillSlot(i, num4, 0);
                    SkillSlot slot2 = this.SkillSlotArray[i];
                    if (slot2 != null)
                    {
                        slot2.SetSkillLevel(1);
                    }
                    continue;
Label_0214:
                    info4 = CLevelCfgLogicManager.FindLevelConfigMultiGame(iLevelID);
                    if (info4 == null)
                    {
                        continue;
                    }
                    int num5 = info4.iExtraSkillId;
                    if (i == 6)
                    {
                        num5 = info4.iExtraSkill2Id;
                        if (num5 > 0)
                        {
                            goto Label_025C;
                        }
                        continue;
                    }
                    this.CreateTalent(info4.iExtraPassiveSkillId);
Label_025C:
                    this.InitSkillSlot(i, num5, 0);
                    SkillSlot slot3 = this.SkillSlotArray[i];
                    if (slot3 != null)
                    {
                        slot3.SetSkillLevel(1);
                    }
                    continue;
Label_0284:
                    if (actorDataProvider.GetActorStaticSkillData(ref base.actor.TheActorMeta, (ActorSkillSlot)i, ref skillData))
                    {
                        this.InitSkillSlot(i, skillData.SkillId, skillData.PassiveSkillId);
                        if (((i > 3) || (i < 1)) || (!Singleton <BattleLogic> .GetInstance().m_GameInfo.gameContext.IsSoulGrow() || (base.actor.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero)))
                        {
                            SkillSlot slot4 = this.SkillSlotArray[i];
                            if (slot4 != null)
                            {
                                slot4.SetSkillLevel(1);
                            }
                        }
                    }
                }
                uint skillID = 0;
                if (provider2.GetActorServerCommonSkillData(ref base.actor.TheActorMeta, out skillID))
                {
                    int num7 = 5;
                    if (skillID != 0)
                    {
                        this.InitSkillSlot(num7, (int)skillID, 0);
                        SkillSlot slot5 = this.SkillSlotArray[num7];
                        if (slot5 != null)
                        {
                            slot5.SetSkillLevel(1);
                        }
                    }
                }
                if (base.actor.TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero)
                {
                    this.SkillUseCache = new SkillCache();
                }
            }
        }
Пример #29
0
        internal DynamicAttributeInfo ConsiderMonsterDynamicInfo(ResMonsterCfgInfo monsterCfg)
        {
            int num = 0;
            DynamicAttributeInfo result = null;

            if (monsterCfg.iDynamicInfoType == 1)
            {
                SLevelContext curLvelContext = Singleton <BattleLogic> .get_instance().GetCurLvelContext();

                if (curLvelContext != null && !curLvelContext.IsMobaMode())
                {
                    ResLevelCfgInfo dataByKey = GameDataMgr.levelDatabin.GetDataByKey((long)curLvelContext.m_mapID);
                    if (dataByKey == null)
                    {
                        base.ErrorMissingLevelConfig((uint)curLvelContext.m_mapID);
                        return(null);
                    }
                    if (curLvelContext.m_pveLevelType == null)
                    {
                        num = (int)dataByKey.dwAIPlayerLevel;
                    }
                }
            }
            if (num <= 0)
            {
                return(null);
            }
            ResMonsterOrganLevelDynamicInfo dataByKey2 = GameDataMgr.monsterOrganLvDynamicInfobin.GetDataByKey((long)num);

            if (dataByKey2 == null)
            {
                return(null);
            }
            switch (monsterCfg.bSoldierType)
            {
            case 1:
                result = dataByKey2.stMelee;
                break;

            case 2:
                result = dataByKey2.stRemote;
                break;

            case 3:
                result = dataByKey2.stSuper;
                break;

            case 4:
                result = dataByKey2.stAnYingDaJiang;
                break;

            case 5:
                result = dataByKey2.stHeiAnXianFeng;
                break;

            case 6:
                result = dataByKey2.stBaoZouJiangShi;
                break;

            case 7:
            case 8:
                result = dataByKey2.stBaoJun;
                break;
            }
            return(result);
        }
Пример #30
0
        public SingleGameContext(SCPKG_STARTSINGLEGAMERSP InMessage)
        {
            DebugHelper.Assert(InMessage != null, "输入不应该为null");
            base.RewardCount = (InMessage == null) ? 0 : ((int)InMessage.dwRewardNum);
            Singleton <ActorDataCenter> .instance.ClearHeroServerData();

            if (Singleton <GamePlayerCenter> .instance.GetAllPlayers().Count > 0)
            {
            }
            Singleton <GamePlayerCenter> .instance.ClearAllPlayers();

            if (((InMessage != null) && (InMessage.stDetail.stSingleGameSucc != null)) && (InMessage.stDetail.stSingleGameSucc.bNum >= 1))
            {
                this.DoNew9SlotCalc(InMessage);
                int num = Mathf.Min(InMessage.stDetail.stSingleGameSucc.bNum, InMessage.stDetail.stSingleGameSucc.astFighter.Length);
                for (int i = 0; i < num; i++)
                {
                    COMDT_PLAYERINFO comdt_playerinfo = InMessage.stDetail.stSingleGameSucc.astFighter[i];
                    if (comdt_playerinfo.bObjType != 0)
                    {
                        ulong uid = 0L;
                        uint  dwFakeLogicWorldID = 0;
                        uint  level = 1;
                        if (comdt_playerinfo.bObjType == 2)
                        {
                            if ((InMessage.bGameType == 1) && Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle))
                            {
                                uid = comdt_playerinfo.stDetail.stPlayerOfNpc.ullFakeUid;
                                dwFakeLogicWorldID = comdt_playerinfo.stDetail.stPlayerOfNpc.dwFakeLogicWorldID;
                                level = comdt_playerinfo.stDetail.stPlayerOfNpc.dwFakePvpLevel;
                            }
                            else
                            {
                                uid = 0L;
                                dwFakeLogicWorldID = 0;
                                level = comdt_playerinfo.dwLevel;
                            }
                        }
                        else
                        {
                            uid = (comdt_playerinfo.bObjType != 1) ? ((ulong)0L) : comdt_playerinfo.stDetail.stPlayerOfAcnt.ullUid;
                            dwFakeLogicWorldID = (comdt_playerinfo.bObjType != 1) ? 0 : ((uint)comdt_playerinfo.stDetail.stPlayerOfAcnt.iLogicWorldID);
                            level = comdt_playerinfo.dwLevel;
                        }
                        uint vipLv = 0;
                        if (comdt_playerinfo.stDetail.stPlayerOfAcnt != null)
                        {
                            vipLv = comdt_playerinfo.stDetail.stPlayerOfAcnt.stGameVip.dwCurLevel;
                        }
                        Player player = Singleton <GamePlayerCenter> .GetInstance().AddPlayer(comdt_playerinfo.dwObjId, (COM_PLAYERCAMP)comdt_playerinfo.bObjCamp, comdt_playerinfo.bPosOfCamp, level, comdt_playerinfo.bObjType != 1, StringHelper.UTF8BytesToString(ref comdt_playerinfo.szName), 0, (int)dwFakeLogicWorldID, uid, vipLv, null, 0);

                        if (player != null)
                        {
                            for (int j = 0; j < comdt_playerinfo.astChoiceHero.Length; j++)
                            {
                                uint dwHeroID = comdt_playerinfo.astChoiceHero[j].stBaseInfo.stCommonInfo.dwHeroID;
                                player.AddHero(dwHeroID);
                            }
                            player.isGM = LobbyMsgHandler.isHostGMAcnt;
                        }
                        Singleton <ActorDataCenter> .instance.AddHeroesServerData(comdt_playerinfo.dwObjId, comdt_playerinfo.astChoiceHero);
                    }
                    if (comdt_playerinfo.bObjType == 1)
                    {
                        Singleton <GamePlayerCenter> .GetInstance().SetHostPlayer(comdt_playerinfo.dwObjId);
                    }
                }
                if (InMessage.bGameType == 2)
                {
                    ResLevelCfgInfo dataByKey = GameDataMgr.levelDatabin.GetDataByKey(InMessage.iLevelId);
                    DebugHelper.Assert(dataByKey != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(dataByKey, 1);
                    if (dataByKey.bGuideLevelSubType == 0)
                    {
                        base.LevelContext.isPVPLevel = true;
                        base.LevelContext.isPVPMode  = true;
                    }
                    else if (dataByKey.bGuideLevelSubType == 1)
                    {
                        base.LevelContext.isPVPLevel = false;
                        base.LevelContext.isPVPMode  = false;
                    }
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = dataByKey.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 0)
                {
                    ResLevelCfgInfo levelCfg = GameDataMgr.levelDatabin.GetDataByKey(InMessage.iLevelId);
                    DebugHelper.Assert(levelCfg != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(levelCfg, Singleton <CAdventureSys> .instance.currentDifficulty);
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = levelCfg.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 7)
                {
                    ResLevelCfgInfo info3 = GameDataMgr.burnMap.GetDataByKey(Singleton <BurnExpeditionController> .GetInstance().model.Get_LevelID(Singleton <BurnExpeditionController> .GetInstance().model.curSelect_LevelIndex));
                    DebugHelper.Assert(info3 != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(info3, 1);
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = info3.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 8)
                {
                    ResLevelCfgInfo info4 = GameDataMgr.arenaLevelDatabin.GetDataByKey(InMessage.iLevelId);
                    DebugHelper.Assert(info4 != null);
                    base.LevelContext = new SLevelContext();
                    base.LevelContext.Init(info4, 1);
                    base.LevelContext.GameType            = (COM_GAME_TYPE)InMessage.bGameType;
                    this.levelContext.bShowTrainingHelper = info4.bShowTrainingHelper > 0;
                    this.m_LevelDesignFileName            = base.LevelContext.LevelDesignFileName;
                    this.m_LevelArtistFileName            = base.LevelContext.LevelArtistFileName;
                }
                else if (InMessage.bGameType == 1)
                {
                    base.LevelContext          = CLevelCfgLogicManager.MakeMobaContext((uint)InMessage.iLevelId, COM_GAME_TYPE.COM_SINGLE_GAME_OF_COMBAT, 1);
                    base.LevelContext.GameType = (COM_GAME_TYPE)InMessage.bGameType;
                    ResAcntBattleLevelInfo info5 = GameDataMgr.pvpLevelDatabin.GetDataByKey((uint)InMessage.iLevelId);
                    if (info5 != null)
                    {
                        this.m_LevelDesignFileName = StringHelper.UTF8BytesToString(ref info5.stLevelCommonInfo.szDesignFileName);
                        if (info5.stLevelCommonInfo.szArtistFileName != null)
                        {
                            this.m_LevelArtistFileName = StringHelper.UTF8BytesToString(ref info5.stLevelCommonInfo.szArtistFileName);
                        }
                    }
                    else
                    {
                        ResCounterPartLevelInfo info6 = GameDataMgr.cpLevelDatabin.GetDataByKey((uint)InMessage.iLevelId);
                        this.m_LevelDesignFileName = StringHelper.UTF8BytesToString(ref info6.stLevelCommonInfo.szDesignFileName);
                        if (info6.stLevelCommonInfo.szArtistFileName != null)
                        {
                            this.m_LevelArtistFileName = StringHelper.UTF8BytesToString(ref info6.stLevelCommonInfo.szArtistFileName);
                        }
                    }
                    base.LevelContext.isWarmBattle      = Convert.ToBoolean(InMessage.stGameParam.stSingleGameRspOfCombat.bIsWarmBattle);
                    base.LevelContext.DynamicDifficulty = InMessage.stGameParam.stSingleGameRspOfCombat.bAILevel;
                    base.LevelContext.MapType           = InMessage.stGameParam.stSingleGameRspOfCombat.bMapType;
                }
            }
        }