Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop
This commit is contained in:
commit
a18548edee
|
|
@ -17,6 +17,7 @@ public class MissionCompleteView : MonoBehaviour
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag);
|
var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag);
|
||||||
|
LocalCacheManager.Remove(MissionManager.MissionDataTag);
|
||||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||||
{
|
{
|
||||||
callback?.Invoke();
|
callback?.Invoke();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using UniRx;
|
using UniRx;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
@ -49,6 +50,16 @@ public class MissionListView : MonoBehaviour
|
||||||
}).AddTo(this);
|
}).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)
|
public MissionView AddItemView(MissionData missionData)
|
||||||
{
|
{
|
||||||
var index = tabs.FindIndex(x => x.category == missionData.Category);
|
var index = tabs.FindIndex(x => x.category == missionData.Category);
|
||||||
|
|
|
||||||
|
|
@ -58,41 +58,7 @@ public class MissionManager : MonoBehaviour
|
||||||
|
|
||||||
// ミッション読み込み
|
// ミッション読み込み
|
||||||
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
|
var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet);
|
||||||
|
GenerateNormalMission(missionList);
|
||||||
// ミッション表示
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// dailyMission
|
// dailyMission
|
||||||
// コンプリートミッション
|
// コンプリートミッション
|
||||||
|
|
@ -170,10 +136,54 @@ public class MissionManager : MonoBehaviour
|
||||||
}).AddTo(missionView);
|
}).AddTo(missionView);
|
||||||
}
|
}
|
||||||
listView.SetTab(MissionCategory.Daily);
|
listView.SetTab(MissionCategory.Daily);
|
||||||
listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0);
|
|
||||||
listView.SetIndicator(MissionCategory.Daily, dailyIndicateFlag > 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)
|
public static int GetProgressValue(MissionData missionData)
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue