Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop

This commit is contained in:
koya_15 2021-10-28 11:28:03 +09:00
commit a18548edee
3 changed files with 58 additions and 36 deletions

View File

@ -17,6 +17,7 @@ public class MissionCompleteView : MonoBehaviour
private void Start()
{
var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag);
LocalCacheManager.Remove(MissionManager.MissionDataTag);
closeButton.OnClickAsObservable().Subscribe(_ =>
{
callback?.Invoke();

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
@ -49,6 +50,16 @@ public class MissionListView : MonoBehaviour
}).AddTo(this);
}
public void ResetItemList(MissionCategory category)
{
var index = tabs.FindIndex(x => x.category == category);
if (index == -1)
{
return;
}
tabs[index].content.DestroyAllChildrens();
}
public MissionView AddItemView(MissionData missionData)
{
var index = tabs.FindIndex(x => x.category == missionData.Category);

View File

@ -58,41 +58,7 @@ public class MissionManager : MonoBehaviour
// ミッション読み込み
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
// ミッション表示
int normalIndicateFlag = 0;
foreach (var missionData in missionList.Where(data => data.Category == MissionCategory.Normal && data.shopLevel <= gameData.ViewedShopLevel))
{
var missionView = listView.AddItemView(missionData);
var progressValue = GetProgressValue(missionData);
missionView.SetData(missionData, progressValue);
missionView.SetButtonActive(missionData.count <= progressValue);
if (GameDataManager.GameData.AchievedMission.Contains(missionData.id)) // 達成済み
{
missionView.SetRewarded();
}
else if (missionData.count <= progressValue)
{
Debug.Log($"{missionData.Category},{missionData.count},{missionData.text}");
normalIndicateFlag++;
}
// リワード獲得
missionView.RewardButton.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{
normalIndicateFlag--;
listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0);
LocalCacheManager.Save(MissionDataTag, (missionData, new Action(() =>
{
GetReward(missionData);
missionView.SetRewarded();
// 達成ID保存
GameDataManager.GameData.AchievedMission.Add(missionData.id);
GameDataManager.SaveGameData();
})));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView);
}
GenerateNormalMission(missionList);
// dailyMission
// コンプリートミッション
@ -170,10 +136,54 @@ public class MissionManager : MonoBehaviour
}).AddTo(missionView);
}
listView.SetTab(MissionCategory.Daily);
listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0);
listView.SetIndicator(MissionCategory.Daily, dailyIndicateFlag > 0);
}
private void GenerateNormalMission(List<MissionData> missionList)
{
// ミッション表示
int normalIndicateFlag = 0;
var latestMissionList = missionList
.Where(data => data.Category == MissionCategory.Normal && data.shopLevel <= GameDataManager.GameData.ViewedShopLevel)
.GroupBy(data => data.Condition, (cond, list) =>
{
return list.FirstOrDefault(data => !GameDataManager.GameData.AchievedMission.Contains(data.id)) ?? list.Last();
});
foreach (var missionData in latestMissionList)
{
var missionView = listView.AddItemView(missionData);
var progressValue = GetProgressValue(missionData);
missionView.SetData(missionData, progressValue);
missionView.SetButtonActive(missionData.count <= progressValue);
if (GameDataManager.GameData.AchievedMission.Contains(missionData.id)) // 達成済み
{
missionView.SetRewarded();
}
else if (missionData.count <= progressValue)
{
normalIndicateFlag++;
}
// リワード獲得
missionView.RewardButton.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{
normalIndicateFlag--;
listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0);
LocalCacheManager.Save(MissionDataTag, (missionData, new Action(() =>
{
GetReward(missionData);
// 達成ID保存
GameDataManager.GameData.AchievedMission.Add(missionData.id);
GameDataManager.SaveGameData();
listView.ResetItemList(MissionCategory.Normal);
GenerateNormalMission(missionList);
})));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView);
}
listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0);
}
public static int GetProgressValue(MissionData missionData)
{
var gameData = GameDataManager.GameData;