データリセットのチュートリアル対応
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,6 +59,7 @@ 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,7 +72,7 @@ public class Market : SingletonMonoBehaviour<Market> | |||
|         IsPause.AddTo(this); | ||||
|         isPromotion.AddTo(this); | ||||
|          | ||||
|         var gameData = GameDataManager.GameData; | ||||
|         gameData = GameDataManager.GameData; | ||||
| 
 | ||||
| #if UNITY_EDITOR || DEVELOPMENT_BUILD | ||||
|         CheckAndFixStock(); | ||||
|  | @ -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,16 +157,6 @@ 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); | ||||
|  | @ -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