public override IEnumerator Exec(GameWebAPI.GA_Req_ExecGacha playGashaRequestParam, bool isTutorial)
        {
            GameWebAPI.RespDataGA_ExecGacha gashaResult = null;
            int[] userMonsterIdList = null;
            GameWebAPI.RequestGA_GashaExec playGashaRequest = new GameWebAPI.RequestGA_GashaExec
            {
                SetSendData = delegate(GameWebAPI.GA_Req_ExecGacha param)
                {
                    param.gachaId   = playGashaRequestParam.gachaId;
                    param.playCount = playGashaRequestParam.playCount;
                    param.itemCount = playGashaRequestParam.itemCount;
                },
                OnReceived = delegate(GameWebAPI.RespDataGA_ExecGacha response)
                {
                    gashaResult       = response;
                    userMonsterIdList = new int[gashaResult.userMonsterList.Length];
                    for (int i = 0; i < gashaResult.userMonsterList.Length; i++)
                    {
                        int num = 0;
                        if (int.TryParse(gashaResult.userMonsterList[i].userMonsterId, out num))
                        {
                            userMonsterIdList[i] = num;
                        }
                    }
                    this.SetGashaResult(gashaResult, playGashaRequestParam.playCount);
                }
            };
            GameWebAPI.MonsterSlotInfoListLogic monsterSlotRequest = new GameWebAPI.MonsterSlotInfoListLogic
            {
                SetSendData = delegate(GameWebAPI.ReqDataCS_MonsterSlotInfoListLogic param)
                {
                    param.userMonsterId = userMonsterIdList;
                },
                OnReceived = delegate(GameWebAPI.RespDataCS_MonsterSlotInfoListLogic response)
                {
                    ChipDataMng.GetUserChipSlotData().UpdateMonsterSlotList(response.slotInfo);
                    ClassSingleton <MonsterUserDataMng> .Instance.RefreshMonsterSlot(userMonsterIdList);
                }
            };
            RestrictionInput.StartLoad(RestrictionInput.LoadType.LARGE_IMAGE_MASK_ON);
            APIRequestTask task = new APIRequestTask(playGashaRequest, true);

            task.Add(new APIRequestTask(monsterSlotRequest, true));
            yield return(AppCoroutine.Start(task.Run(delegate
            {
                this.SetGashaResultWindow(gashaResult, userMonsterIdList, isTutorial);
                this.SetGashaCutScene(gashaResult, isTutorial);
            }, delegate(Exception noop)
            {
                RestrictionInput.EndLoad();
                GUIManager.CloseAllCommonDialog(null);
            }, null), false));

            yield break;
        }
 protected void SetGashaResultWindow(GameWebAPI.RespDataGA_ExecGacha gashaResult, int[] userMonsterIdList, bool isTutorial)
 {
     CMD_MonsterGashaResult.gashaInfo = this.gashaInfo;
     GameWebAPI.RespDataGA_ExecGacha.GachaResultMonster[] userMonsterList = gashaResult.userMonsterList;
     CMD_MonsterGashaResult.RewardsData = gashaResult.rewards;
     CMD_MonsterGashaResult.DataList    = new List <MonsterData>();
     for (int i = 0; i < userMonsterList.Length; i++)
     {
         CMD_MonsterGashaResult.DataList.Add(ClassSingleton <MonsterUserDataMng> .Instance.GetUserMonster(userMonsterIdList[i]));
     }
     CMD_MonsterGashaResult.IconNewFlagList = new List <bool>();
     for (int j = 0; j < userMonsterList.Length; j++)
     {
         CMD_MonsterGashaResult.IconNewFlagList.Add(Convert.ToBoolean(userMonsterList[j].isNew));
     }
     CMD_MonsterGashaResult.isTutorial = isTutorial;
 }
        public override IEnumerator Exec(GameWebAPI.GA_Req_ExecGacha playGashaRequestParam, bool isTutorial)
        {
            GameWebAPI.RespDataGA_ExecGacha gashaResult = this.GetFakeGashaResult();
            int[] userMonsterIdList = new int[gashaResult.userMonsterList.Length];
            for (int i = 0; i < gashaResult.userMonsterList.Length; i++)
            {
                int num = 0;
                if (int.TryParse(gashaResult.userMonsterList[i].userMonsterId, out num))
                {
                    userMonsterIdList[i] = num;
                }
            }
            base.UpdateUserAssetsInventory(playGashaRequestParam.playCount);
            base.SetGashaResultWindow(gashaResult, userMonsterIdList, isTutorial);
            base.SetGashaCutScene(gashaResult, isTutorial);
            yield return(null);

            yield break;
        }
        protected void SetGashaCutScene(GameWebAPI.RespDataGA_ExecGacha gashaResult, bool isTutorial)
        {
            GameWebAPI.RespDataGA_ExecGacha.GachaResultMonster[] userMonsterList = gashaResult.userMonsterList;
            string[] array  = new string[userMonsterList.Length];
            string[] array2 = new string[userMonsterList.Length];
            for (int i = 0; i < userMonsterList.Length; i++)
            {
                MonsterUserData userMonster = ClassSingleton <MonsterUserDataMng> .Instance.GetUserMonster(userMonsterList[i].userMonsterId);

                GameWebAPI.RespDataMA_GetMonsterMG.MonsterM group = userMonster.GetMonsterMaster().Group;
                array[i]  = group.modelId;
                array2[i] = group.growStep;
            }
            CutsceneDataGasha cutsceneDataGasha = new CutsceneDataGasha();

            cutsceneDataGasha.path         = "Cutscenes/Gasha";
            cutsceneDataGasha.modelIdList  = array;
            cutsceneDataGasha.growStepList = array2;
            CutsceneDataGasha cutsceneDataGasha2 = cutsceneDataGasha;

            if (ExecGashaMonster.< > f__mg$cache0 == null)
            {
                ExecGashaMonster.< > f__mg$cache0 = new Action(CutSceneMain.FadeReqCutSceneEnd);
            }
            cutsceneDataGasha2.endCallback = ExecGashaMonster.< > f__mg$cache0;
            CutsceneDataGasha cutsceneDataGasha3 = cutsceneDataGasha;

            Loading.Invisible();
            if (isTutorial)
            {
                this.showedGashaResultAction = new Action(Singleton <TutorialObserver> .Instance.ResumeScript);
            }
            CutsceneDataBase cutsceneData = cutsceneDataGasha3;

            if (ExecGashaMonster.< > f__mg$cache1 == null)
            {
                ExecGashaMonster.< > f__mg$cache1 = new Action(CMD_MonsterGashaResult.CreateDialog);
            }
            CutSceneMain.FadeReqCutScene(cutsceneData, ExecGashaMonster.< > f__mg$cache1, null, new Action <int>(this.OnShowedGashaResultDialog), 0.5f, 0.5f);
        }
        private GameWebAPI.RespDataGA_ExecGacha GetFakeGashaResult()
        {
            GameWebAPI.RespDataGA_ExecGacha respDataGA_ExecGacha = new GameWebAPI.RespDataGA_ExecGacha();
            MonsterData monsterData;

            if (this.gashaInfo.priceType.GetCostAssetsCategory() == MasterDataMng.AssetCategory.LINK_POINT)
            {
                monsterData = ClassSingleton <MonsterUserDataMng> .Instance.GetOldestMonster();
            }
            else
            {
                monsterData = ClassSingleton <MonsterUserDataMng> .Instance.GetNewestMonster();
            }
            respDataGA_ExecGacha.userMonsterList = new GameWebAPI.RespDataGA_ExecGacha.GachaResultMonster[]
            {
                new GameWebAPI.RespDataGA_ExecGacha.GachaResultMonster(monsterData.userMonster)
                {
                    isNew = 1
                }
            };
            return(respDataGA_ExecGacha);
        }
        private void SetGashaResult(GameWebAPI.RespDataGA_ExecGacha gashaResult, int playCount)
        {
            UserHomeInfo.dirtyMyPage = true;
            ClassSingleton <MonsterUserDataMng> .Instance.AddUserMonsterData(gashaResult.userMonsterList);

            ClassSingleton <GUIMonsterIconList> .Instance.RefreshList(ClassSingleton <MonsterUserDataMng> .Instance.GetUserMonsterList());

            for (int i = 0; i < gashaResult.userMonsterList.Length; i++)
            {
                if (Convert.ToBoolean(gashaResult.userMonsterList[i].isNew))
                {
                    MonsterUserData userMonster = ClassSingleton <MonsterUserDataMng> .Instance.GetUserMonster(gashaResult.userMonsterList[i].userMonsterId);

                    GameWebAPI.RespDataMA_GetMonsterMG.MonsterM group = userMonster.GetMonsterMaster().Group;
                    if (!MonsterPicturebookData.ExistPicturebook(group.monsterCollectionId))
                    {
                        MonsterPicturebookData.AddPictureBook(group.monsterCollectionId);
                    }
                }
            }
            base.UpdateUserAssetsInventory(playCount);
            base.UpdateGashaInfo(playCount);
        }