/// <summary> /// リストに一括受け取り可能なものがあるかチェックする /// </summary> /// <returns></returns> public bool IsGetReword() { if (Collection.IsNullOrEmpty()) { return(false); } MasterDataDefineLabel.AchievementReceiveType receiveType = MasterDataDefineLabel.AchievementReceiveType.NONE; if (mission.m_FilterInfo != null) { receiveType = mission.m_FilterInfo.m_receive_type; } for (int index = 0; index < Collection.Count; index++) { if ((Collection[index].IsState_Achieve || Collection[index].IsState_AchieveEffect) == false) { continue; } if (MasterDataUtil.CheckReceivePresentType(Collection[index].present_ids, receiveType) == false) { continue; } return(true); } return(false); }
//一括受取ボタン public void OnClickReceiveAllButton() { #if BUILD_TYPE_DEBUG Debug.Log("CALLOnClickReceiveAllButton"); #endif if (GlobalMenuManager.Instance.IsPageClosing() == true) { return; } //連打防止 if (ServerApi.IsExists) { return; } if (GlobalMenuManager.Instance.IsCangeTime()) { return; } SoundUtil.PlaySE(SEID.SE_MENU_OK); List <MasterDataAchievementConverted> tmpOpenCollection = CurrentMissionGroup.Collection.FindAll((v) => v.IsState_Achieve || v.IsState_AchieveEffect); List <MasterDataAchievementConverted> openCollection = new List <MasterDataAchievementConverted>(); //-------------------------------------- // フィルター設定に該当するミッションを抽出する //-------------------------------------- MasterDataDefineLabel.AchievementReceiveType filterType = MasterDataDefineLabel.AchievementReceiveType.NONE; if (m_FilterInfo != null) { filterType = m_FilterInfo.m_receive_type; } for (int i = 0; i < tmpOpenCollection.Count; ++i) { if (MasterDataUtil.CheckReceivePresentType(tmpOpenCollection[i].present_ids, filterType) == true) { openCollection.Add(tmpOpenCollection[i]); } } uint[] present = openCollection.Select((v) => v.fix_id).ToArray(); // 現在のタブで、報酬があるアチーブメントの配列 // リクエスト ServerDataUtilSend.SendPacketAPI_AchievementOpen(present, new uint[] { (uint)CurrentMissionGroup.missionGroupType }). setSuccessAction((_data) => { //ユーザー情報更新 UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvOpenAchievement>(UserDataAdmin.Instance.m_StructPlayer); UserDataAdmin.Instance.ConvertPartyAssing(); RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result; MissionAllOpenResultMessage(result); #if BUILD_TYPE_DEBUG Debug.Log("FINISH:" + result.achievement_opened); #endif CurrentMissionGroup.SetEnaleReceiveButtonAll(false); // 開封したミッションリストのボタンを押せなくする CurrentMissionGroup.Activate(); // 開封した新規達成アチーブメントを削除 ResidentParam.DelAchievementClear(result.achievement_opened); MainMenuManager.Instance.UpdateUserStatusFromGlobalMenu(); }). setErrorAction((_data) => { Debug.LogError("ERROR:" + _data.m_PacketCode); CurrentMissionGroup.SetEnaleReceiveButtonAll(true); }). SendStart(); }