private APIRequestTask RequestUserMonsterData()
    {
        int num = int.Parse(DataMng.Instance().RespDataMN_DeckList.selectDeckNum) - 1;

        GameWebAPI.RespDataMN_GetDeckList.DeckList deckList = DataMng.Instance().RespDataMN_DeckList.deckList[num];
        int[] aliveInfo = DataMng.Instance().WD_ReqDngResult.aliveInfo;
        GameWebAPI.RespData_WorldMultiStartInfo respData_WorldMultiStartInfo = DataMng.Instance().RespData_WorldMultiStartInfo;
        List <int>         aliveUserMonsterIds = new List <int>();
        List <MonsterData> list = new List <MonsterData>();
        int i = 0;

        while (i < aliveInfo.Length)
        {
            string text = string.Empty;
            if (respData_WorldMultiStartInfo == null)
            {
                goto IL_D6;
            }
            int partyIndex   = DataMng.Instance().GetPartyIndex(i);
            int monsterIndex = DataMng.Instance().GetMonsterIndex(i);
            GameWebAPI.Common_MonsterData common_MonsterData = respData_WorldMultiStartInfo.party[partyIndex].userMonsters[monsterIndex];
            if (int.Parse(common_MonsterData.userId) == DataMng.Instance().RespDataCM_Login.playerInfo.UserId)
            {
                text = common_MonsterData.userMonsterId;
                goto IL_D6;
            }
IL_137:
            i++;
            continue;
IL_D6:
            if (aliveInfo[i] == 1 && deckList.monsterList.Length > i)
            {
                string      text2 = (respData_WorldMultiStartInfo != null) ? text : deckList.monsterList[i].userMonsterId;
                MonsterData monsterDataByUserMonsterID = MonsterDataMng.Instance().GetMonsterDataByUserMonsterID(text2, false);
                list.Add(monsterDataByUserMonsterID);
                aliveUserMonsterIds.Add(int.Parse(text2));
                goto IL_137;
            }
            goto IL_137;
        }
        GameWebAPI.RequestMonsterList requestMonsterList = new GameWebAPI.RequestMonsterList();
        requestMonsterList.SetSendData = delegate(GameWebAPI.ReqDataUS_GetMonsterList param)
        {
            param.userMonsterIds = aliveUserMonsterIds.ToArray();
        };
        requestMonsterList.OnReceived = delegate(GameWebAPI.RespDataUS_GetMonsterList response)
        {
            ClassSingleton <MonsterUserDataMng> .Instance.UpdateUserMonsterData(response.userMonsterList);
        };
        GameWebAPI.RequestMonsterList request = requestMonsterList;
        return(new APIRequestTask(request, true));
    }
示例#2
0
    public static APIRequestTask RequestAPIChipFusion(int baseUserChipId, int[] materialChipIds, Action <int> onCompleted)
    {
        GameWebAPI.ChipFusionLogic chipFusionLogic = new GameWebAPI.ChipFusionLogic
        {
            SetSendData = delegate(GameWebAPI.ReqDataCS_ChipFusionLogic param)
            {
                param.baseChip     = baseUserChipId;
                param.materialChip = materialChipIds;
            }
        };
        APIRequestTask task = new APIRequestTask(chipFusionLogic, true);

        chipFusionLogic.OnReceived = delegate(GameWebAPI.RespDataCS_ChipFusionLogic resData)
        {
            if (resData.resultCode == 1)
            {
                List <GameWebAPI.RespDataCS_ChipListLogic.UserChipList> list = ChipDataMng.userChipData.userChipList.ToList <GameWebAPI.RespDataCS_ChipListLogic.UserChipList>();
                int[] materialChipIds2 = materialChipIds;
                for (int i = 0; i < materialChipIds2.Length; i++)
                {
                    int materialChip = materialChipIds2[i];
                    list.RemoveAll((GameWebAPI.RespDataCS_ChipListLogic.UserChipList c) => c.userChipId == materialChip);
                }
                ChipDataMng.userChipData.userChipList = list.ToArray();
                GameWebAPI.RespDataCS_ChipListLogic.UserChipList userChipInfo = ChipDataMng.GetUserChip(baseUserChipId);
                userChipInfo.chipId = resData.userChip.chipId;
                if (userChipInfo.userMonsterId != 0)
                {
                    ChipClientSlotInfo slotInfo        = ChipDataMng.userChipSlotData.GetSlotInfo(userChipInfo.userMonsterId.ToString());
                    ChipClientEquip    chipClientEquip = slotInfo.FindChipEquip(baseUserChipId);
                    chipClientEquip.chipId = resData.userChip.chipId;
                    TaskBase task = task;
                    GameWebAPI.RequestMonsterList requestMonsterList = new GameWebAPI.RequestMonsterList();
                    requestMonsterList.SetSendData = delegate(GameWebAPI.ReqDataUS_GetMonsterList param)
                    {
                        param.userMonsterIds = new int[]
                        {
                            userChipInfo.userMonsterId
                        };
                    };
                    requestMonsterList.OnReceived = delegate(GameWebAPI.RespDataUS_GetMonsterList response)
                    {
                        ClassSingleton <MonsterUserDataMng> .Instance.UpdateUserMonsterData(response.userMonsterList);
                    };
                    task.Add(new APIRequestTask(requestMonsterList, true));
                }
            }
            onCompleted(resData.resultCode);
        };
        return(task);
    }
    private void RefreshMaster(bool isUserMonster, bool isChip, Action callback)
    {
        if (!isUserMonster && !isChip)
        {
            if (callback != null)
            {
                callback();
            }
            return;
        }
        RestrictionInput.StartLoad(RestrictionInput.LoadType.LARGE_IMAGE_MASK_OFF);
        APIRequestTask apirequestTask = new APIRequestTask();

        if (isUserMonster)
        {
            ClassSingleton <MonsterUserDataMng> .Instance.Initialize();

            GameWebAPI.RequestMonsterList requestMonsterList = new GameWebAPI.RequestMonsterList();
            requestMonsterList.OnReceived = delegate(GameWebAPI.RespDataUS_GetMonsterList response)
            {
                ClassSingleton <MonsterUserDataMng> .Instance.SetUserMonsterData(response.userMonsterList);
            };
            GameWebAPI.RequestMonsterList request = requestMonsterList;
            apirequestTask.Add(new APIRequestTask(request, true));
            apirequestTask.Add(ChipDataMng.RequestAPIMonsterSlotInfoList(true));
        }
        if (isChip)
        {
            apirequestTask.Add(ChipDataMng.RequestAPIChipList(true));
        }
        AppCoroutine.Start(apirequestTask.Run(delegate
        {
            ClassSingleton <GUIMonsterIconList> .Instance.RefreshList(MonsterDataMng.Instance().GetMonsterDataList());
            RestrictionInput.EndLoad();
            if (callback != null)
            {
                callback();
            }
        }, null, null), false);
    }