処理をMarketからWorldMarketManagerに付け替え

This commit is contained in:
kimura 2022-10-04 16:36:57 +09:00
parent 25fc181b44
commit f6ada1f1d4
9 changed files with 32 additions and 53 deletions

View File

@ -2,6 +2,7 @@ using System;
using System.Linq; using System.Linq;
using I2.Loc; using I2.Loc;
using MyGame.Scenes.Cooking.Scripts; using MyGame.Scenes.Cooking.Scripts;
using MyGame.Scenes.marketing.Scripts;
using MyGame.Scripts; using MyGame.Scripts;
using TMPro; using TMPro;
using UniRx; using UniRx;
@ -136,7 +137,7 @@ public class CookingResult : MonoBehaviour
// 獲得する // 獲得する
if (viewType == ProductViewType.Default) if (viewType == ProductViewType.Default)
{ {
Market.Instance.IsPause.Value = true; WorldMarketManager.Instance.IsPause.Value = true;
okButton.OnClickAsObservable().Take(1).Subscribe(_ => okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{ {
// 獲得、遷移 // 獲得、遷移
@ -158,7 +159,7 @@ public class CookingResult : MonoBehaviour
} }
} }
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
Market.Instance.IsPause.Value = false; WorldMarketManager.Instance.IsPause.Value = false;
TransitionManager.Instance.LoadScene(GameScenes.Main); TransitionManager.Instance.LoadScene(GameScenes.Main);
}).AddTo(this); }).AddTo(this);
@ -168,7 +169,7 @@ public class CookingResult : MonoBehaviour
// 獲得、遷移 // 獲得、遷移
MoveStock(GameDataManager.GameData.WaitAddStock); MoveStock(GameDataManager.GameData.WaitAddStock);
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
Market.Instance.IsPause.Value = false; WorldMarketManager.Instance.IsPause.Value = false;
SoundManager.Instance.ChangeVolumeUniqueBGM(1f); SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
TransitionManager.Instance.UnloadScene(GameScenes.CookingResults); TransitionManager.Instance.UnloadScene(GameScenes.CookingResults);
LocalCacheManager.Load<Action>(PopcornGameManager.RestartCallbackTag, null)?.Invoke(); LocalCacheManager.Load<Action>(PopcornGameManager.RestartCallbackTag, null)?.Invoke();
@ -283,7 +284,7 @@ public class CookingResult : MonoBehaviour
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
// 店頭の空きに追加 // 店頭の空きに追加
var remain = productStockData.Stock; var remain = productStockData.Stock;
var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count; var shopSpace = WorldMarketManager.ShopStockCount - gameData.ShopStock.Count;
var stockCount = Mathf.Min(shopSpace, remain); var stockCount = Mathf.Min(shopSpace, remain);
gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData
{ {
@ -294,8 +295,9 @@ public class CookingResult : MonoBehaviour
// ShopStockに補充された場合、DisplayFlavors更新 // ShopStockに補充された場合、DisplayFlavors更新
if (stockCount > 0) if (stockCount > 0)
{ {
Market.Instance.RefillDisplayFlavors(gameData.ShopStock); var market = WorldMarketManager.Instance.GetCurrentCityMarket();
Market.Instance.CheckStock(gameData.ShopStock); market.RefillDisplayFlavors(gameData.ShopStock);
market.CheckStock(gameData.ShopStock);
} }
// 空タンク並び替え // 空タンク並び替え

View File

@ -52,7 +52,7 @@ public class DebugOptionManager : MonoBehaviour
void Start() void Start()
{ {
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
Market.Instance.IsPause.Value = true; WorldMarketManager.Instance.IsPause.Value = true;
if (!LocalCacheManager.Exists(DebugPrevSceneTag)) if (!LocalCacheManager.Exists(DebugPrevSceneTag))
{ {
@ -64,9 +64,7 @@ public class DebugOptionManager : MonoBehaviour
{ {
GameDataManager.ResetData(); GameDataManager.ResetData();
TutorialManager.Instance.ResetTutorial(); TutorialManager.Instance.ResetTutorial();
Market.Instance.SetGameData(GameDataManager.GameData); WorldMarketManager.Instance.ResetGameData(GameDataManager.GameData);
Market.Instance.ReShuffle(GameDataManager.GameData.ShopStock);
Market.Instance.CheckStock(GameDataManager.GameData.ShopStock);
if (UsayaStorageManager.LoadOrDefault(UsayaStorageFilename.Settings_Data, "DebugTutorialEnable", false)) if (UsayaStorageManager.LoadOrDefault(UsayaStorageFilename.Settings_Data, "DebugTutorialEnable", false))
{ {
GameDataManager.GameData.ViewedShopLevel = 1; GameDataManager.GameData.ViewedShopLevel = 1;
@ -78,7 +76,7 @@ public class DebugOptionManager : MonoBehaviour
backButton.OnClickAsObservable().Subscribe(_ => backButton.OnClickAsObservable().Subscribe(_ =>
{ {
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
Market.Instance.IsPause.Value = false; WorldMarketManager.Instance.IsPause.Value = false;
TransitionManager.Instance.LoadScene(prevScene); TransitionManager.Instance.LoadScene(prevScene);
}); });

View File

@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using MyGame.Scenes.Main.Scripts; using MyGame.Scenes.Main.Scripts;
using MyGame.Scenes.marketing.Scripts;
using MyGame.Scripts; using MyGame.Scripts;
using UniRx; using UniRx;
using UniRx.Triggers; using UniRx.Triggers;
@ -359,7 +360,7 @@ public class KitchenManager : MonoBehaviour
#if UNITY_EDITOR #if UNITY_EDITOR
Debug.Log($"remaining: {Mathf.Max(remaining, 0)}"); Debug.Log($"remaining: {Mathf.Max(remaining, 0)}");
Market.StockFlavorLog(); WorldMarketManager.StockFlavorLog();
#endif #endif
} }

View File

@ -19,8 +19,6 @@ public enum ShopState
public class Market : SingletonMonoBehaviour<Market> public class Market : SingletonMonoBehaviour<Market>
{ {
public static readonly int ShopStockCount = 20;
// 購入時アニメーションタイミング // 購入時アニメーションタイミング
private static readonly float waitSellTime = 1.5f; private static readonly float waitSellTime = 1.5f;
private static readonly float waitRefillTime = 1f; private static readonly float waitRefillTime = 1f;
@ -81,7 +79,7 @@ public class Market : SingletonMonoBehaviour<Market>
#if UNITY_EDITOR || DEVELOPMENT_BUILD #if UNITY_EDITOR || DEVELOPMENT_BUILD
CheckAndFixStock(); CheckAndFixStock();
StockFlavorLog(); WorldMarketManager.StockFlavorLog();
#endif #endif
// 陳列/売り順決定 // 陳列/売り順決定
@ -344,7 +342,7 @@ public class Market : SingletonMonoBehaviour<Market>
throw new ArgumentOutOfRangeException(nameof(customerType), customerType, null); throw new ArgumentOutOfRangeException(nameof(customerType), customerType, null);
} }
var (isSpecial, orderCount) = GetCustomerData(customerType); var (isSpecial, orderCount) = customerSetting.GetCustomerData(customerType);
var customerController = SpawnCustomer(); var customerController = SpawnCustomer();
customerController.Setup(orderPosisionObject.transform.GetComponentsInChildren<Transform>().ToList().Skip(1).ToList()); customerController.Setup(orderPosisionObject.transform.GetComponentsInChildren<Transform>().ToList().Skip(1).ToList());
customerController.ChangeCustomerState(customerState); customerController.ChangeCustomerState(customerState);
@ -399,12 +397,6 @@ public class Market : SingletonMonoBehaviour<Market>
}).AddTo(this); }).AddTo(this);
} }
public (bool isSpecial, int orderCount) GetCustomerData (CustomerType customerType)
{
return customerSetting.GetCustomerData(customerType);
}
private CustomerController SpawnCustomer() private CustomerController SpawnCustomer()
{ {
var customerController = Instantiate(customerControllerPrefab, transform); var customerController = Instantiate(customerControllerPrefab, transform);
@ -497,7 +489,7 @@ displayFlavors: {displayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId}
// 手前のタンクから出し多分stockをへらす // 手前のタンクから出し多分stockをへらす
// へらした分を店頭リストに追加する // へらした分を店頭リストに追加する
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
var shopSpace = ShopStockCount - gameData.ShopStock.Count; var shopSpace = WorldMarketManager.ShopStockCount - gameData.ShopStock.Count;
switch (gameData.RefillMode) switch (gameData.RefillMode)
{ {
case ProductRefillMode.OneByOne: case ProductRefillMode.OneByOne:
@ -630,9 +622,9 @@ displayFlavors: {displayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId}
private void CheckAndFixStock() 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)) 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) public void SetGameData(GameData newGameData)
{ {
gameData = newGameData; gameData = newGameData;
} ReShuffle(gameData.ShopStock);
CheckStock(gameData.ShopStock);
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<ProductData>(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);
} }
} }

View File

@ -37,7 +37,7 @@ public class MarketManager : MonoBehaviour
ShopClosedCompositeDisposable.AddTo(this); ShopClosedCompositeDisposable.AddTo(this);
customerRewardTimerUpdateSubject.AddTo(this); customerRewardTimerUpdateSubject.AddTo(this);
vipTimerUpdateSubject.AddTo(this); vipTimerUpdateSubject.AddTo(this);
market = Market.Instance; market = WorldMarketManager.Instance.GetCurrentCityMarket();
SoundManager.Instance.PlayBGM("bgm_marketing"); SoundManager.Instance.PlayBGM("bgm_marketing");
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using MyGame.Scenes.marketing.Scripts;
using MyGame.Scripts; using MyGame.Scripts;
using UniRx; using UniRx;
using UnityEngine; using UnityEngine;
@ -36,7 +37,7 @@ public class ProductManagement : MonoBehaviour
state.AddTo(this); state.AddTo(this);
state.Value = ManagementState.None; state.Value = ManagementState.None;
Market.Instance.IsPause.Value = true; WorldMarketManager.Instance.IsPause.Value = true;
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Management)) if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Management))
@ -303,6 +304,6 @@ public class ProductManagement : MonoBehaviour
private void OnDestroy() private void OnDestroy()
{ {
Market.Instance.IsPause.Value = false; WorldMarketManager.Instance.IsPause.Value = false;
} }
} }

View File

@ -133,7 +133,7 @@ myItems {string.Join(",", gameData.ShopCustomizeMyItems.Select(x => x.ToString()
var customizeLevelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopCustomizeLevelData>(Const.ShopCustomizeLevelDataSheet); var customizeLevelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopCustomizeLevelData>(Const.ShopCustomizeLevelDataSheet);
var level = customizeLevelList.LastOrDefault(data => data.point <= gameData.ShopCustomizePoint)?.level ?? 1; var level = customizeLevelList.LastOrDefault(data => data.point <= gameData.ShopCustomizePoint)?.level ?? 1;
gameData.ShopCustomizeLevel = level; gameData.ShopCustomizeLevel = level;
Market.Instance.UpdateBonus(GetBonusList(gameData.ShopCustomizeLevel)); WorldMarketManager.Instance.UpdateBonus(GetBonusList(gameData.ShopCustomizeLevel));
} }
/* /*

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Linq; using System.Linq;
using I2.Loc; using I2.Loc;
using MyGame.Scenes.marketing.Scripts;
using MyGame.Scripts; using MyGame.Scripts;
using UniRx; using UniRx;
using UnityEngine; using UnityEngine;
@ -200,7 +201,7 @@ public class RecipeDetailView : MonoBehaviour
{ {
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
// 店頭の空き確認 // 店頭の空き確認
if (data.volume <= Market.ShopStockCount - gameData.ShopStock.Count) if (data.volume <= WorldMarketManager.ShopStockCount - gameData.ShopStock.Count)
{ {
return true; return true;
} }

View File

@ -1,6 +1,7 @@
using System; using System;
using UnityEngine; using UnityEngine;
using GameAnalyticsSDK; using GameAnalyticsSDK;
using MyGame.Scenes.marketing.Scripts;
public sealed class AdManager : SingletonMonoBehaviour<AdManager> { public sealed class AdManager : SingletonMonoBehaviour<AdManager> {
@ -154,8 +155,8 @@ public sealed class AdManager : SingletonMonoBehaviour<AdManager> {
SoundManager.Instance.StopSE(); SoundManager.Instance.StopSE();
_cacheSeEnabled = SoundManager.Instance.IsEnabled(SoundType.SE); _cacheSeEnabled = SoundManager.Instance.IsEnabled(SoundType.SE);
SoundManager.Instance.SaveEnabledSE(false); SoundManager.Instance.SaveEnabledSE(false);
_marketPause = Market.Instance.IsPause.Value; _marketPause = WorldMarketManager.Instance.IsPause.Value;
Market.Instance.IsPause.Value = true; WorldMarketManager.Instance.IsPause.Value = true;
if(Time.timeScale > 0.0f){ if(Time.timeScale > 0.0f){
_timeScale = Time.timeScale; _timeScale = Time.timeScale;
// TimeManager.Instance.Stop(); // TimeManager.Instance.Stop();
@ -165,9 +166,9 @@ public sealed class AdManager : SingletonMonoBehaviour<AdManager> {
SoundManager.Instance.ReplayBGM(); SoundManager.Instance.ReplayBGM();
SoundManager.Instance.SaveEnabledSE(_cacheSeEnabled); 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){ if(_timeScale > 0.0f){
Time.timeScale = _timeScale; Time.timeScale = _timeScale;