データリセットのチュートリアル対応
This commit is contained in:
parent
8aa5f80c4b
commit
ed6ecfaa56
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using MyGame.Scripts;
|
||||||
using UniRx;
|
using UniRx;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
@ -28,6 +29,9 @@ public class DebugOptionManager : MonoBehaviour
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
var gameData = GameDataManager.GameData;
|
||||||
|
Market.Instance.IsPause.Value = true;
|
||||||
|
|
||||||
if (!LocalCacheManager.Exists(DebugPrevSceneTag))
|
if (!LocalCacheManager.Exists(DebugPrevSceneTag))
|
||||||
{
|
{
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
||||||
|
|
@ -37,10 +41,13 @@ public class DebugOptionManager : MonoBehaviour
|
||||||
resetButton.OnClickAsObservable().Subscribe(_ =>
|
resetButton.OnClickAsObservable().Subscribe(_ =>
|
||||||
{
|
{
|
||||||
GameDataManager.ResetData();
|
GameDataManager.ResetData();
|
||||||
|
TutorialManager.Instance.ResetTutorial();
|
||||||
|
Market.Instance.SetGameData(GameDataManager.GameData);
|
||||||
|
Market.Instance.ReShuffle(GameDataManager.GameData.ShopStock);
|
||||||
|
Market.Instance.CheckStock(GameDataManager.GameData.ShopStock);
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.DebugOption);
|
TransitionManager.Instance.LoadScene(GameScenes.DebugOption);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
Market.Instance.IsPause.Value = true;
|
|
||||||
backButton.OnClickAsObservable().Subscribe(_ =>
|
backButton.OnClickAsObservable().Subscribe(_ =>
|
||||||
{
|
{
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
|
|
@ -48,7 +55,6 @@ public class DebugOptionManager : MonoBehaviour
|
||||||
TransitionManager.Instance.LoadScene(prevScene);
|
TransitionManager.Instance.LoadScene(prevScene);
|
||||||
});
|
});
|
||||||
|
|
||||||
var gameData = GameDataManager.GameData;
|
|
||||||
resetFieldButton.OnClickAsObservable().Subscribe(_ =>
|
resetFieldButton.OnClickAsObservable().Subscribe(_ =>
|
||||||
{
|
{
|
||||||
gameData.PlantLineDataList = new List<PlantLineData>
|
gameData.PlantLineDataList = new List<PlantLineData>
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,8 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
|
|
||||||
private int orderIndex;
|
private int orderIndex;
|
||||||
private int oneByOneIndex = 0;
|
private int oneByOneIndex = 0;
|
||||||
|
private GameData gameData;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
|
@ -71,8 +72,8 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
IsPause.AddTo(this);
|
IsPause.AddTo(this);
|
||||||
isPromotion.AddTo(this);
|
isPromotion.AddTo(this);
|
||||||
|
|
||||||
var gameData = GameDataManager.GameData;
|
gameData = GameDataManager.GameData;
|
||||||
|
|
||||||
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
||||||
CheckAndFixStock();
|
CheckAndFixStock();
|
||||||
StockFlavorLog();
|
StockFlavorLog();
|
||||||
|
|
@ -133,6 +134,17 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
var dontBuyCustomerList = new List<CustomerController>();
|
var dontBuyCustomerList = new List<CustomerController>();
|
||||||
foreach (var controller in customers)
|
foreach (var controller in customers)
|
||||||
{
|
{
|
||||||
|
// 何も買わない
|
||||||
|
if (displayFlavors.Count == 0 || controller.OrderCount == 0)
|
||||||
|
{
|
||||||
|
controller.CallWaitForSeconds(1.5f, () =>
|
||||||
|
{
|
||||||
|
controller.ChangeCustomerState(CustomerState.Leave);
|
||||||
|
});
|
||||||
|
dontBuyCustomerList.Add(controller);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// 売り切れ
|
// 売り切れ
|
||||||
if (shuffledOrder.Count == 0)
|
if (shuffledOrder.Count == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -145,17 +157,7 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
dontBuyCustomerList.Add(controller);
|
dontBuyCustomerList.Add(controller);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 何も買わない
|
|
||||||
if (controller.OrderCount == 0)
|
|
||||||
{
|
|
||||||
controller.CallWaitForSeconds(1.5f, () =>
|
|
||||||
{
|
|
||||||
controller.ChangeCustomerState(CustomerState.Leave);
|
|
||||||
});
|
|
||||||
dontBuyCustomerList.Add(controller);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// shuffledOrder順に販売
|
// shuffledOrder順に販売
|
||||||
var tmpOrderCount = Mathf.Min(controller.OrderCount, shuffledOrder.Count);
|
var tmpOrderCount = Mathf.Min(controller.OrderCount, shuffledOrder.Count);
|
||||||
var tmpOrders = shuffledOrder.GetRange(0, tmpOrderCount);
|
var tmpOrders = shuffledOrder.GetRange(0, tmpOrderCount);
|
||||||
|
|
@ -488,7 +490,7 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ReShuffle(List<ProductStockData> shopStock)
|
public void ReShuffle(List<ProductStockData> shopStock)
|
||||||
{
|
{
|
||||||
displayFlavors = shopStock.ToList();
|
displayFlavors = shopStock.ToList();
|
||||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
||||||
|
|
@ -536,6 +538,11 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetGameData(GameData newGameData)
|
||||||
|
{
|
||||||
|
gameData = newGameData;
|
||||||
|
}
|
||||||
|
|
||||||
public static void StockFlavorLog()
|
public static void StockFlavorLog()
|
||||||
{
|
{
|
||||||
var shopStockString = "";
|
var shopStockString = "";
|
||||||
|
|
|
||||||
|
|
@ -51,12 +51,12 @@ public class MarketManager : MonoBehaviour
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
// チュートリアル終了
|
// チュートリアル終了
|
||||||
gameData.isFirstPlay = false;
|
gameData.FinishTutorial();
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
walkerMask.gameObject.SetActive(false);
|
walkerMask.gameObject.SetActive(false);
|
||||||
rewardButtonView.gameObject.SetActive(true);
|
rewardButtonView.gameObject.SetActive(true);
|
||||||
TutorialManager.Instance.ShowTutorialConversation(11);
|
TutorialManager.Instance.ShowTutorialConversation(11);
|
||||||
}).AddTo(controller);
|
}).AddTo(controller).AddTo(this);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,19 +18,18 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
checkInterval.AddTo(this);
|
checkInterval.AddTo(this);
|
||||||
var gameData = GameDataManager.GameData;
|
|
||||||
var levelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
var levelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet);
|
||||||
heartObserver = checkInterval
|
heartObserver = checkInterval
|
||||||
.Select(x =>
|
.Select(x =>
|
||||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
Observable.Interval(TimeSpan.FromSeconds(x))
|
||||||
.Select(_ => gameData.Heart)
|
.Select(_ => GameDataManager.GameData.Heart)
|
||||||
.DistinctUntilChanged())
|
.DistinctUntilChanged())
|
||||||
.Switch();
|
.Switch();
|
||||||
|
|
||||||
var shopLevelObserver = checkInterval
|
var shopLevelObserver = checkInterval
|
||||||
.Select(x =>
|
.Select(x =>
|
||||||
Observable.Interval(TimeSpan.FromSeconds(x))
|
Observable.Interval(TimeSpan.FromSeconds(x))
|
||||||
.Select(_ => gameData.ViewedShopLevel)
|
.Select(_ => GameDataManager.GameData.ViewedShopLevel)
|
||||||
.DistinctUntilChanged())
|
.DistinctUntilChanged())
|
||||||
.Switch();
|
.Switch();
|
||||||
|
|
||||||
|
|
@ -47,6 +46,10 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||||
ShopLevelUpdate = Observable.CombineLatest(heartObserver, shopLevelObserver, sceneCounter,
|
ShopLevelUpdate = Observable.CombineLatest(heartObserver, shopLevelObserver, sceneCounter,
|
||||||
(heart, level, sceneCount) =>
|
(heart, level, sceneCount) =>
|
||||||
{
|
{
|
||||||
|
if (level == 0 && GameDataManager.GameData.isFirstPlay)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1;
|
var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1;
|
||||||
return currentLevel > level && sceneCount == 1;
|
return currentLevel > level && sceneCount == 1;
|
||||||
})
|
})
|
||||||
|
|
@ -61,6 +64,7 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver>
|
||||||
.Where(x => x <= 1)
|
.Where(x => x <= 1)
|
||||||
.Subscribe(x =>
|
.Subscribe(x =>
|
||||||
{
|
{
|
||||||
|
var gameData = GameDataManager.GameData;
|
||||||
if (gameData.ViewedShopLevel == 0)
|
if (gameData.ViewedShopLevel == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue