From ed6ecfaa566760b9d4df09997b535ba0f64dbf8a Mon Sep 17 00:00:00 2001 From: kimura Date: Wed, 27 Oct 2021 11:31:23 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E3=83=AA=E3=82=BB?= =?UTF-8?q?=E3=83=83=E3=83=88=E3=81=AE=E3=83=81=E3=83=A5=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=83=AA=E3=82=A2=E3=83=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DebugOption/Scripts/DebugOptionManager.cs | 12 ++++-- .../MyGame/Scenes/marketing/Scripts/Market.cs | 37 +++++++++++-------- .../Scenes/marketing/Scripts/MarketManager.cs | 4 +- .../Assets/MyGame/Scripts/GameDataObserver.cs | 10 +++-- 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs b/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs index cb05b7a1..0d26a73b 100644 --- a/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs @@ -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 diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs index f9942e22..c58aaa74 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs @@ -59,7 +59,8 @@ public class Market : SingletonMonoBehaviour 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 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 var dontBuyCustomerList = new List(); 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 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 return false; } - private void ReShuffle(List shopStock) + public void ReShuffle(List shopStock) { displayFlavors = shopStock.ToList(); shuffledOrder = ShuffleOrder(displayFlavors.Count); @@ -536,6 +538,11 @@ public class Market : SingletonMonoBehaviour } } + public void SetGameData(GameData newGameData) + { + gameData = newGameData; + } + public static void StockFlavorLog() { var shopStockString = ""; diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index d0b20c79..66b5cb1d 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -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); }); } } diff --git a/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs b/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs index 8bf44e7a..472cd82c 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataObserver.cs @@ -18,19 +18,18 @@ public class GameDataObserver : SingletonMonoBehaviour private void Start() { checkInterval.AddTo(this); - var gameData = GameDataManager.GameData; var levelList = SpreadsheetDataManager.Instance.GetBaseDataList(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 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 .Where(x => x <= 1) .Subscribe(x => { + var gameData = GameDataManager.GameData; if (gameData.ViewedShopLevel == 0) { return;