From f6ada1f1d4d279b4427777e3e3076342397a9ce5 Mon Sep 17 00:00:00 2001 From: kimura Date: Tue, 4 Oct 2022 16:36:57 +0900 Subject: [PATCH] =?UTF-8?q?=E5=87=A6=E7=90=86=E3=82=92Market=E3=81=8B?= =?UTF-8?q?=E3=82=89WorldMarketManager=E3=81=AB=E4=BB=98=E3=81=91=E6=9B=BF?= =?UTF-8?q?=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/Cooking/Scripts/CookingResult.cs | 14 ++++--- .../DebugOption/Scripts/DebugOptionManager.cs | 8 ++-- .../Scenes/Main/Scripts/KitchenManager.cs | 3 +- .../MyGame/Scenes/marketing/Scripts/Market.cs | 39 ++++--------------- .../Scenes/marketing/Scripts/MarketManager.cs | 2 +- .../marketing/Scripts/ProductManagement.cs | 5 ++- .../Scenes/marketing/Scripts/ShopCustomize.cs | 2 +- .../Scenes/recipe/Scripts/RecipeDetailView.cs | 3 +- popcorn/Assets/MyGame/Scripts/AdManager.cs | 9 +++-- 9 files changed, 32 insertions(+), 53 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs index e01706c6..41a438b5 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using I2.Loc; using MyGame.Scenes.Cooking.Scripts; +using MyGame.Scenes.marketing.Scripts; using MyGame.Scripts; using TMPro; using UniRx; @@ -136,7 +137,7 @@ public class CookingResult : MonoBehaviour // 獲得する if (viewType == ProductViewType.Default) { - Market.Instance.IsPause.Value = true; + WorldMarketManager.Instance.IsPause.Value = true; okButton.OnClickAsObservable().Take(1).Subscribe(_ => { // 獲得、遷移 @@ -158,7 +159,7 @@ public class CookingResult : MonoBehaviour } } GameDataManager.SaveGameData(); - Market.Instance.IsPause.Value = false; + WorldMarketManager.Instance.IsPause.Value = false; TransitionManager.Instance.LoadScene(GameScenes.Main); }).AddTo(this); @@ -168,7 +169,7 @@ public class CookingResult : MonoBehaviour // 獲得、遷移 MoveStock(GameDataManager.GameData.WaitAddStock); GameDataManager.SaveGameData(); - Market.Instance.IsPause.Value = false; + WorldMarketManager.Instance.IsPause.Value = false; SoundManager.Instance.ChangeVolumeUniqueBGM(1f); TransitionManager.Instance.UnloadScene(GameScenes.CookingResults); LocalCacheManager.Load(PopcornGameManager.RestartCallbackTag, null)?.Invoke(); @@ -283,7 +284,7 @@ public class CookingResult : MonoBehaviour var gameData = GameDataManager.GameData; // 店頭の空きに追加 var remain = productStockData.Stock; - var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count; + var shopSpace = WorldMarketManager.ShopStockCount - gameData.ShopStock.Count; var stockCount = Mathf.Min(shopSpace, remain); gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData { @@ -294,8 +295,9 @@ public class CookingResult : MonoBehaviour // ShopStockに補充された場合、DisplayFlavors更新 if (stockCount > 0) { - Market.Instance.RefillDisplayFlavors(gameData.ShopStock); - Market.Instance.CheckStock(gameData.ShopStock); + var market = WorldMarketManager.Instance.GetCurrentCityMarket(); + market.RefillDisplayFlavors(gameData.ShopStock); + market.CheckStock(gameData.ShopStock); } // 空タンク並び替え diff --git a/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs b/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs index 22e72393..d68410de 100644 --- a/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs @@ -52,7 +52,7 @@ public class DebugOptionManager : MonoBehaviour void Start() { var gameData = GameDataManager.GameData; - Market.Instance.IsPause.Value = true; + WorldMarketManager.Instance.IsPause.Value = true; if (!LocalCacheManager.Exists(DebugPrevSceneTag)) { @@ -64,9 +64,7 @@ public class DebugOptionManager : MonoBehaviour { GameDataManager.ResetData(); TutorialManager.Instance.ResetTutorial(); - Market.Instance.SetGameData(GameDataManager.GameData); - Market.Instance.ReShuffle(GameDataManager.GameData.ShopStock); - Market.Instance.CheckStock(GameDataManager.GameData.ShopStock); + WorldMarketManager.Instance.ResetGameData(GameDataManager.GameData); if (UsayaStorageManager.LoadOrDefault(UsayaStorageFilename.Settings_Data, "DebugTutorialEnable", false)) { GameDataManager.GameData.ViewedShopLevel = 1; @@ -78,7 +76,7 @@ public class DebugOptionManager : MonoBehaviour backButton.OnClickAsObservable().Subscribe(_ => { GameDataManager.SaveGameData(); - Market.Instance.IsPause.Value = false; + WorldMarketManager.Instance.IsPause.Value = false; TransitionManager.Instance.LoadScene(prevScene); }); diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index 6614bf63..5af7b6b7 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using MyGame.Scenes.Main.Scripts; +using MyGame.Scenes.marketing.Scripts; using MyGame.Scripts; using UniRx; using UniRx.Triggers; @@ -359,7 +360,7 @@ public class KitchenManager : MonoBehaviour #if UNITY_EDITOR Debug.Log($"remaining: {Mathf.Max(remaining, 0)}"); - Market.StockFlavorLog(); + WorldMarketManager.StockFlavorLog(); #endif } diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs index 74a0d4b8..27508ca2 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs @@ -19,8 +19,6 @@ public enum ShopState public class Market : SingletonMonoBehaviour { - public static readonly int ShopStockCount = 20; - // 購入時アニメーションタイミング private static readonly float waitSellTime = 1.5f; private static readonly float waitRefillTime = 1f; @@ -81,7 +79,7 @@ public class Market : SingletonMonoBehaviour #if UNITY_EDITOR || DEVELOPMENT_BUILD CheckAndFixStock(); - StockFlavorLog(); + WorldMarketManager.StockFlavorLog(); #endif // 陳列/売り順決定 @@ -344,7 +342,7 @@ public class Market : SingletonMonoBehaviour throw new ArgumentOutOfRangeException(nameof(customerType), customerType, null); } - var (isSpecial, orderCount) = GetCustomerData(customerType); + var (isSpecial, orderCount) = customerSetting.GetCustomerData(customerType); var customerController = SpawnCustomer(); customerController.Setup(orderPosisionObject.transform.GetComponentsInChildren().ToList().Skip(1).ToList()); customerController.ChangeCustomerState(customerState); @@ -399,12 +397,6 @@ public class Market : SingletonMonoBehaviour }).AddTo(this); } - - public (bool isSpecial, int orderCount) GetCustomerData (CustomerType customerType) - { - return customerSetting.GetCustomerData(customerType); - } - private CustomerController SpawnCustomer() { var customerController = Instantiate(customerControllerPrefab, transform); @@ -497,7 +489,7 @@ displayFlavors: {displayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId} // 手前のタンクから出し多分stockをへらす // へらした分を店頭リストに追加する var gameData = GameDataManager.GameData; - var shopSpace = ShopStockCount - gameData.ShopStock.Count; + var shopSpace = WorldMarketManager.ShopStockCount - gameData.ShopStock.Count; switch (gameData.RefillMode) { case ProductRefillMode.OneByOne: @@ -630,9 +622,9 @@ displayFlavors: {displayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId} private void CheckAndFixStock() { - if (GameDataManager.GameData.ShopStock.Count > ShopStockCount) + if (GameDataManager.GameData.ShopStock.Count > WorldMarketManager.ShopStockCount) { - GameDataManager.GameData.ShopStock.RemoveRange(0, GameDataManager.GameData.ShopStock.Count - ShopStockCount); + GameDataManager.GameData.ShopStock.RemoveRange(0, GameDataManager.GameData.ShopStock.Count - WorldMarketManager.ShopStockCount); } foreach (var stockData in GameDataManager.GameData.ShopStock.Where(stockData => stockData.FlavorId < 1)) @@ -644,24 +636,7 @@ displayFlavors: {displayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId} public void SetGameData(GameData newGameData) { gameData = newGameData; - } - - public static void StockFlavorLog() - { - var shopStockString = ""; - shopStockString += $@"tank count:{GameDataManager.GameData.StorageTanks.Count} -tank {GameDataManager.GameData.StorageTanks.Aggregate("", (s, tank) => $"{s}, flavor:{tank.FlavorId}({tank.Stock})")} -"; - foreach (var data in SpreadsheetDataManager.Instance.GetBaseDataList(Const.ProductDataSheet)) - { - var shopStockCount = GameDataManager.GameData.ShopStock.FindAll(x => x.FlavorId == data.id).Count; - var tank = GameDataManager.GameData.StorageTanks.FindAll(x => x.FlavorId == data.id).Sum(x => x.Stock); - if (shopStockCount + tank == 0) - { - continue; - } - shopStockString += $"{data.Name} shop:{shopStockCount} tank:{tank}\n"; - } - Debug.Log(shopStockString); + ReShuffle(gameData.ShopStock); + CheckStock(gameData.ShopStock); } } diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index c1b18aa1..4622fbe3 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -37,7 +37,7 @@ public class MarketManager : MonoBehaviour ShopClosedCompositeDisposable.AddTo(this); customerRewardTimerUpdateSubject.AddTo(this); vipTimerUpdateSubject.AddTo(this); - market = Market.Instance; + market = WorldMarketManager.Instance.GetCurrentCityMarket(); SoundManager.Instance.PlayBGM("bgm_marketing"); var gameData = GameDataManager.GameData; diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs index 0c81a1c9..6336a0ad 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ProductManagement.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using MyGame.Scenes.marketing.Scripts; using MyGame.Scripts; using UniRx; using UnityEngine; @@ -36,7 +37,7 @@ public class ProductManagement : MonoBehaviour state.AddTo(this); state.Value = ManagementState.None; - Market.Instance.IsPause.Value = true; + WorldMarketManager.Instance.IsPause.Value = true; var gameData = GameDataManager.GameData; if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Management)) @@ -303,6 +304,6 @@ public class ProductManagement : MonoBehaviour private void OnDestroy() { - Market.Instance.IsPause.Value = false; + WorldMarketManager.Instance.IsPause.Value = false; } } diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs index 40d04249..4d6ffadb 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopCustomize.cs @@ -133,7 +133,7 @@ myItems {string.Join(",", gameData.ShopCustomizeMyItems.Select(x => x.ToString() var customizeLevelList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopCustomizeLevelDataSheet); var level = customizeLevelList.LastOrDefault(data => data.point <= gameData.ShopCustomizePoint)?.level ?? 1; gameData.ShopCustomizeLevel = level; - Market.Instance.UpdateBonus(GetBonusList(gameData.ShopCustomizeLevel)); + WorldMarketManager.Instance.UpdateBonus(GetBonusList(gameData.ShopCustomizeLevel)); } /* diff --git a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs index 5c12e7a2..80b333fe 100644 --- a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs +++ b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using I2.Loc; +using MyGame.Scenes.marketing.Scripts; using MyGame.Scripts; using UniRx; using UnityEngine; @@ -200,7 +201,7 @@ public class RecipeDetailView : MonoBehaviour { var gameData = GameDataManager.GameData; // 店頭の空き確認 - if (data.volume <= Market.ShopStockCount - gameData.ShopStock.Count) + if (data.volume <= WorldMarketManager.ShopStockCount - gameData.ShopStock.Count) { return true; } diff --git a/popcorn/Assets/MyGame/Scripts/AdManager.cs b/popcorn/Assets/MyGame/Scripts/AdManager.cs index 95be4fd4..6a001a47 100644 --- a/popcorn/Assets/MyGame/Scripts/AdManager.cs +++ b/popcorn/Assets/MyGame/Scripts/AdManager.cs @@ -1,6 +1,7 @@ using System; using UnityEngine; using GameAnalyticsSDK; +using MyGame.Scenes.marketing.Scripts; public sealed class AdManager : SingletonMonoBehaviour { @@ -154,8 +155,8 @@ public sealed class AdManager : SingletonMonoBehaviour { SoundManager.Instance.StopSE(); _cacheSeEnabled = SoundManager.Instance.IsEnabled(SoundType.SE); SoundManager.Instance.SaveEnabledSE(false); - _marketPause = Market.Instance.IsPause.Value; - Market.Instance.IsPause.Value = true; + _marketPause = WorldMarketManager.Instance.IsPause.Value; + WorldMarketManager.Instance.IsPause.Value = true; if(Time.timeScale > 0.0f){ _timeScale = Time.timeScale; // TimeManager.Instance.Stop(); @@ -165,9 +166,9 @@ public sealed class AdManager : SingletonMonoBehaviour { SoundManager.Instance.ReplayBGM(); SoundManager.Instance.SaveEnabledSE(_cacheSeEnabled); // キャッシュしていた元の状態に戻す - if (Market.Instance.IsPause.Value) + if (WorldMarketManager.Instance.IsPause.Value) { - Market.Instance.IsPause.Value = _marketPause; + WorldMarketManager.Instance.IsPause.Value = _marketPause; } if(_timeScale > 0.0f){ Time.timeScale = _timeScale;