Пример #1
0
        public void MissionComplate()
        {
            VersusRankMissionParam dataOfClass = DataSource.FindDataOfClass <VersusRankMissionParam>(((Component)this).get_gameObject(), (VersusRankMissionParam)null);

            if (dataOfClass == null)
            {
                return;
            }
            this.mWindow.ReceiveReward(dataOfClass);
        }
Пример #2
0
        public void ReceiveReward(VersusRankMissionParam mission)
        {
            GameManager gm = MonoSingleton <GameManager> .Instance;

            gm.Player.RewardedRankMatchMission(mission.IName);
            RewardData param = new RewardData();

            gm.GetVersusRankClassRewardList(mission.RewardId).ForEach((Action <VersusRankReward>)(reward =>
            {
                switch (reward.Type)
                {
                case RewardType.Item:
                    ItemParam itemParam = gm.GetItemParam(reward.IName);
                    if (itemParam == null)
                    {
                        break;
                    }
                    ItemData itemData = new ItemData();
                    if (!itemData.Setup(0L, itemParam.iname, reward.Num))
                    {
                        break;
                    }
                    param.Items.Add(itemData);
                    break;

                case RewardType.Gold:
                    param.Gold = reward.Num;
                    break;

                case RewardType.Coin:
                    param.Coin = reward.Num;
                    break;

                case RewardType.Artifact:
                    ArtifactParam artifactParam = gm.MasterParam.GetArtifactParam(reward.IName);
                    if (artifactParam == null)
                    {
                        break;
                    }
                    param.Artifacts.Add(new ArtifactRewardData()
                    {
                        ArtifactParam = artifactParam,
                        Num           = 1
                    });
                    break;

                case RewardType.Unit:
                    if (gm.GetUnitParam(reward.IName) == null)
                    {
                        break;
                    }
                    param.GiftRecieveItemDataDic.Add(reward.IName, new GiftRecieveItemData()
                    {
                        iname = reward.IName,
                        num   = 1,
                        type  = GiftTypes.Unit
                    });
                    break;
                }
            }));
            GlobalVars.LastReward.Set(param);
            this.mAPIType = RankMatchMissionWindow.APIType.MISSION_EXEC;
            Network.RequestAPI((WebAPI) new ReqRankMatchMissionExec(mission.IName, new Network.ResponseCallback(this.ResponseCallback)), false);
        }
Пример #3
0
        private void ResponseCallback(WWWResult www)
        {
            if (FlowNode_Network.HasCommonError(www))
            {
                return;
            }
            if (Network.IsError)
            {
                Network.EErrCode errCode = Network.ErrCode;
                switch (errCode)
                {
                case Network.EErrCode.MultiMaintenance:
                case Network.EErrCode.VsMaintenance:
                case Network.EErrCode.MultiVersionMaintenance:
                case Network.EErrCode.MultiTowerMaintenance:
                    Network.RemoveAPI();
                    ((Behaviour)this).set_enabled(false);
                    break;

                default:
                    if (errCode != Network.EErrCode.OutOfDateQuest)
                    {
                        if (errCode == Network.EErrCode.MultiVersionMismatch || errCode == Network.EErrCode.VS_Version)
                        {
                            Network.RemoveAPI();
                            Network.ResetError();
                            ((Behaviour)this).set_enabled(false);
                            break;
                        }
                        FlowNode_Network.Retry();
                        break;
                    }
                    Network.RemoveAPI();
                    Network.ResetError();
                    ((Behaviour)this).set_enabled(false);
                    break;
                }
            }
            else
            {
                if (this.mAPIType == RankMatchMissionWindow.APIType.MISSION)
                {
                    Dictionary <string, ReqRankMatchMission.MissionProgress> mission_progs    = new Dictionary <string, ReqRankMatchMission.MissionProgress>();
                    WebAPI.JSON_BodyResponse <ReqRankMatchMission.Response>  jsonBodyResponse = (WebAPI.JSON_BodyResponse <ReqRankMatchMission.Response>)JsonUtility.FromJson <WebAPI.JSON_BodyResponse <ReqRankMatchMission.Response> >(www.text);
                    DebugUtility.Assert(jsonBodyResponse != null, "res == null");
                    if (jsonBodyResponse.body != null && jsonBodyResponse.body.missionprogs != null)
                    {
                        PlayerData player = MonoSingleton <GameManager> .Instance.Player;
                        player.RankMatchMissionState.Clear();
                        foreach (ReqRankMatchMission.MissionProgress missionprog in jsonBodyResponse.body.missionprogs)
                        {
                            RankMatchMissionState matchMissionState = new RankMatchMissionState();
                            matchMissionState.Deserialize(missionprog.iname, missionprog.prog, missionprog.rewarded_at);
                            player.RankMatchMissionState.Add(matchMissionState);
                            mission_progs.Add(missionprog.iname, missionprog);
                        }
                    }
                    GameManager instance = MonoSingleton <GameManager> .Instance;
                    List <VersusRankMissionParam> versusRankMissionList = instance.GetVersusRankMissionList(instance.RankMatchScheduleId);
                    versusRankMissionList.Sort((Comparison <VersusRankMissionParam>)((m1, m2) =>
                    {
                        int num1 = 0;
                        int num2 = 0;
                        if (mission_progs.ContainsKey(m1.IName))
                        {
                            if (string.IsNullOrEmpty(mission_progs[m1.IName].rewarded_at))
                            {
                                if (mission_progs[m1.IName].prog >= m1.IVal)
                                {
                                    num1 = 1;
                                }
                            }
                            else
                            {
                                num1 = -1;
                            }
                        }
                        if (mission_progs.ContainsKey(m2.IName))
                        {
                            if (string.IsNullOrEmpty(mission_progs[m2.IName].rewarded_at))
                            {
                                if (mission_progs[m2.IName].prog >= m2.IVal)
                                {
                                    num2 = 1;
                                }
                            }
                            else
                            {
                                num2 = -1;
                            }
                        }
                        if (num1 != num2)
                        {
                            return(num2 - num1);
                        }
                        return(m1.IName.CompareTo(m2.IName));
                    }));
                    for (int index = 0; index < versusRankMissionList.Count; ++index)
                    {
                        VersusRankMissionParam data = versusRankMissionList[index];
                        if (!mission_progs.ContainsKey(data.IName) || string.IsNullOrEmpty(mission_progs[data.IName].rewarded_at))
                        {
                            RankMatchMissionItem matchMissionItem = (RankMatchMissionItem)UnityEngine.Object.Instantiate <RankMatchMissionItem>((M0)this.ListItem);
                            DataSource.Bind <VersusRankMissionParam>(((Component)matchMissionItem).get_gameObject(), data);
                            if (mission_progs.ContainsKey(data.IName))
                            {
                                DataSource.Bind <ReqRankMatchMission.MissionProgress>(((Component)matchMissionItem).get_gameObject(), mission_progs[data.IName]);
                            }
                            this.AddItem((ListItemEvents)matchMissionItem);
                            ((Component)matchMissionItem).get_transform().SetParent(((Component)this).get_transform(), false);
                            ((Component)matchMissionItem).get_gameObject().SetActive(true);
                            matchMissionItem.Initialize(this);
                        }
                    }
                }
                else if (this.mAPIType == RankMatchMissionWindow.APIType.MISSION_EXEC)
                {
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 10);
                }
                Network.RemoveAPI();
            }
        }
Пример #4
0
        public void Initialize(RankMatchMissionWindow window)
        {
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardUnit, (UnityEngine.Object)null))
            {
                this.RewardUnit.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardItem, (UnityEngine.Object)null))
            {
                this.RewardItem.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardCard, (UnityEngine.Object)null))
            {
                this.RewardCard.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardArtifact, (UnityEngine.Object)null))
            {
                this.RewardArtifact.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardAward, (UnityEngine.Object)null))
            {
                this.RewardAward.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardGold, (UnityEngine.Object)null))
            {
                this.RewardGold.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RewardCoin, (UnityEngine.Object)null))
            {
                this.RewardCoin.SetActive(false);
            }
            this.mWindow = window;
            VersusRankMissionParam dataOfClass1 = DataSource.FindDataOfClass <VersusRankMissionParam>(((Component)this).get_gameObject(), (VersusRankMissionParam)null);
            int num = 0;

            ReqRankMatchMission.MissionProgress dataOfClass2 = DataSource.FindDataOfClass <ReqRankMatchMission.MissionProgress>(((Component)this).get_gameObject(), (ReqRankMatchMission.MissionProgress)null);
            if (dataOfClass2 != null)
            {
                num = dataOfClass2.prog;
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.Completed, (UnityEngine.Object)null))
            {
                this.Completed.SetActive(dataOfClass1.IVal <= num);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.GetRewardButton, (UnityEngine.Object)null))
            {
                ((Selectable)this.GetRewardButton).set_interactable(dataOfClass1.IVal <= num && string.IsNullOrEmpty(dataOfClass2.rewarded_at));
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.Count, (UnityEngine.Object)null))
            {
                this.Count.SetActive(dataOfClass1.IVal > num);
            }
            GameManager gm = MonoSingleton <GameManager> .Instance;

            gm.GetVersusRankClassRewardList(dataOfClass1.RewardId).ForEach((Action <VersusRankReward>)(reward =>
            {
                bool flag = false;
                GameObject gameObject;
                switch (reward.Type)
                {
                case RewardType.Item:
                    ItemParam itemParam = gm.GetItemParam(reward.IName);
                    if (itemParam == null)
                    {
                        return;
                    }
                    gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.RewardItem);
                    DataSource.Bind <ItemParam>(gameObject, itemParam);
                    flag = true;
                    break;

                case RewardType.Gold:
                    gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.RewardGold);
                    flag       = true;
                    break;

                case RewardType.Coin:
                    gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.RewardCoin);
                    flag       = true;
                    break;

                case RewardType.Artifact:
                    ArtifactParam artifactParam = gm.MasterParam.GetArtifactParam(reward.IName);
                    if (artifactParam == null)
                    {
                        return;
                    }
                    gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.RewardArtifact);
                    DataSource.Bind <ArtifactParam>(gameObject, artifactParam);
                    break;

                case RewardType.Unit:
                    UnitParam unitParam = gm.GetUnitParam(reward.IName);
                    if (unitParam == null)
                    {
                        return;
                    }
                    gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.RewardUnit);
                    DataSource.Bind <UnitParam>(gameObject, unitParam);
                    break;

                case RewardType.Award:
                    AwardParam awardParam = gm.GetAwardParam(reward.IName);
                    if (awardParam == null)
                    {
                        return;
                    }
                    gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.RewardAward);
                    DataSource.Bind <AwardParam>(gameObject, awardParam);
                    break;

                default:
                    return;
                }
                if (flag)
                {
                    Transform child = gameObject.get_transform().FindChild("amount/Text_amount");
                    if (UnityEngine.Object.op_Inequality((UnityEngine.Object)child, (UnityEngine.Object)null))
                    {
                        Text component = (Text)((Component)child).GetComponent <Text>();
                        if (UnityEngine.Object.op_Inequality((UnityEngine.Object)component, (UnityEngine.Object)null))
                        {
                            component.set_text(reward.Num.ToString());
                        }
                    }
                }
                gameObject.get_transform().SetParent(this.RewardList, false);
                gameObject.SetActive(true);
            }));
        }