public void MissionComplate() { VersusRankMissionParam dataOfClass = DataSource.FindDataOfClass <VersusRankMissionParam>(((Component)this).get_gameObject(), (VersusRankMissionParam)null); if (dataOfClass == null) { return; } this.mWindow.ReceiveReward(dataOfClass); }
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); }
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(); } }
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); })); }