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