デバッグオプション追加

This commit is contained in:
kimura 2022-12-02 17:35:30 +09:00
parent e5478e1451
commit 966c678b32
2 changed files with 1647 additions and 46 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using I2.Loc; using I2.Loc;
using MyGame.Scenes.marketing.Scripts; using MyGame.Scenes.marketing.Scripts;
using MyGame.Scenes.WorldMap.Scripts;
using MyGame.Scripts; using MyGame.Scripts;
using UniRx; using UniRx;
using UnityEngine; using UnityEngine;
@ -43,8 +44,10 @@ public class DebugOptionManager : MonoBehaviour
[SerializeField] private Toggle vipRewardToggle; [SerializeField] private Toggle vipRewardToggle;
[SerializeField] private InputField coinCount; [SerializeField] private InputField coinCount;
[SerializeField] private InputField heartCount; [SerializeField] private InputField heartCount;
[SerializeField] private InputField latestCityHeartCount;
[SerializeField] private InputField shopCustomizeCoinCount; [SerializeField] private InputField shopCustomizeCoinCount;
[SerializeField] private Dropdown shopLevelDropdown; [SerializeField] private Dropdown shopLevelDropdown;
[SerializeField] private Dropdown cityShopLevelDropdown;
[SerializeField] private Dropdown bulkOrderDropdown; [SerializeField] private Dropdown bulkOrderDropdown;
[SerializeField] private Dropdown autoCookDropdown; [SerializeField] private Dropdown autoCookDropdown;
[SerializeField] private Button resetWorldMapButton; [SerializeField] private Button resetWorldMapButton;
@ -61,6 +64,7 @@ public class DebugOptionManager : MonoBehaviour
if (!LocalCacheManager.Exists(DebugPrevSceneTag)) if (!LocalCacheManager.Exists(DebugPrevSceneTag))
{ {
TransitionManager.Instance.LoadScene(GameScenes.Main); TransitionManager.Instance.LoadScene(GameScenes.Main);
return;
} }
SoundManager.Instance.StopBGM(); SoundManager.Instance.StopBGM();
var prevScene = LocalCacheManager.Load<GameScenes>(DebugPrevSceneTag); var prevScene = LocalCacheManager.Load<GameScenes>(DebugPrevSceneTag);
@ -87,19 +91,19 @@ public class DebugOptionManager : MonoBehaviour
resetFieldButton.OnClickAsObservable().Subscribe(_ => resetFieldButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.PlantLineDataList = new List<PlantLineData> cityGameData.PlantLineDataList = new List<PlantLineData>
{ {
new PlantLineData(PlantLineType.Center, CornFieldRank.Rank1), new PlantLineData(PlantLineType.Center, CornFieldRank.Rank1),
}; };
globalGameData.SeedlingDataList = new List<SeedlingProgressData>(); cityGameData.SeedlingDataList = new List<SeedlingProgressData>();
globalGameData.MachineLevel = 1; cityGameData.MachineLevel = 1;
globalGameData.CornSeed = 0; cityGameData.CornSeed = 0;
}).AddTo(this); }).AddTo(this);
resetMaterialButton.OnClickAsObservable().Subscribe(_ => resetMaterialButton.OnClickAsObservable().Subscribe(_ =>
{ {
// 所持素材 // 所持素材
globalGameData.Material.Clear(); cityGameData.Material.Clear();
// レシピ // レシピ
globalGameData.MyRecipes = GetMyRecipe(globalGameData.ViewedShopLevel, true); globalGameData.MyRecipes = GetMyRecipe(globalGameData.ViewedShopLevel, true);
// フライパン // フライパン
@ -108,7 +112,7 @@ public class DebugOptionManager : MonoBehaviour
resetTankButton.OnClickAsObservable().Subscribe(_ => resetTankButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.InitTank(); cityGameData.InitTank();
}).AddTo(this); }).AddTo(this);
refillManyProductButton.OnClickAsObservable().Subscribe(_ => refillManyProductButton.OnClickAsObservable().Subscribe(_ =>
@ -121,11 +125,11 @@ public class DebugOptionManager : MonoBehaviour
// CookingResult.AddStock(new ProductData(){volume = 5, id = 1}, ProductRarity.Gold); // CookingResult.AddStock(new ProductData(){volume = 5, id = 1}, ProductRarity.Gold);
// CookingResult.AddStock(new ProductData(){volume = 5, id = 1}, ProductRarity.Rainbow); // CookingResult.AddStock(new ProductData(){volume = 5, id = 1}, ProductRarity.Rainbow);
// CookingResult.AddStock(new ProductData(){volume = 20, id = 2}, ProductRarity.Silver); // CookingResult.AddStock(new ProductData(){volume = 20, id = 2}, ProductRarity.Silver);
if (globalGameData.StorageTanks.Count < 2) if (cityGameData.StorageTanks.Count < 2)
{ {
globalGameData.StorageTanks.Add(new StorageTank(){Capacity = Const.TankCapacity}); cityGameData.StorageTanks.Add(new StorageTank(){Capacity = Const.TankCapacity});
} }
var flavor = globalGameData.StorageTanks[0].FlavorId; var flavor = cityGameData.StorageTanks[0].FlavorId;
if (flavor < 1) if (flavor < 1)
{ {
flavor = 1; flavor = 1;
@ -140,22 +144,23 @@ public class DebugOptionManager : MonoBehaviour
refillLittleProductButton.OnClickAsObservable().Subscribe(_ => refillLittleProductButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.StorageTanks.ForEach(x => x.ClearStock()); cityGameData.StorageTanks.ForEach(x => x.ClearStock());
// CookingResult.AddStock(new ProductData(){volume = 5, id = 1}, ProductRarity.Yellow); // CookingResult.AddStock(new ProductData(){volume = 5, id = 1}, ProductRarity.Yellow);
CookingResult.AddStock(new ProductData(){volume = 3, id = 2}, ProductRarity.Copper); CookingResult.AddStock(new ProductData(){volume = 3, id = 2}, ProductRarity.Copper);
}).AddTo(this); }).AddTo(this);
bulkOrderResetButton.OnClickAsObservable().Subscribe(_ => bulkOrderResetButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.AchievedOrderLevel = 0; cityGameData.AchievedOrderLevel = 0;
globalGameData.OrderIdInProgress = 0; cityGameData.OrderIdInProgress = 0;
globalGameData.CancelOrderId = 0; cityGameData.CancelOrderId = 0;
globalGameData.CompletedProductList.Clear(); cityGameData.CompletedProductList.Clear();
}).AddTo(this); }).AddTo(this);
shopLevelUpResetButton.OnClickAsObservable().Subscribe(_ => shopLevelUpResetButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.ViewedShopLevel = 0; globalGameData.ViewedShopLevel = 0;
cityGameData.ViewedShopLevel = 0;
}).AddTo(this); }).AddTo(this);
dailyMissionResetButton.OnClickAsObservable().Subscribe(_ => dailyMissionResetButton.OnClickAsObservable().Subscribe(_ =>
@ -171,13 +176,13 @@ public class DebugOptionManager : MonoBehaviour
normalMissionResetButton.OnClickAsObservable().Subscribe(_ => normalMissionResetButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.AchievedMission.Clear(); cityGameData.AchievedMission.Clear();
globalGameData.ResetNormalTotalCount(); cityGameData.ResetNormalTotalCount();
}).AddTo(this); }).AddTo(this);
autoCookCompleteButton.OnClickAsObservable().Subscribe(_ => autoCookCompleteButton.OnClickAsObservable().Subscribe(_ =>
{ {
globalGameData.AutoCookFinishTime = DateTime.UtcNow.ToBinary(); cityGameData.AutoCookFinishTime = DateTime.UtcNow.ToBinary();
}).AddTo(this); }).AddTo(this);
shopRecipeCompleteButton.OnClickAsObservable().Subscribe(_ => shopRecipeCompleteButton.OnClickAsObservable().Subscribe(_ =>
@ -250,6 +255,13 @@ public class DebugOptionManager : MonoBehaviour
globalGameData.Heart = Int32.Parse(x); globalGameData.Heart = Int32.Parse(x);
}).AddTo(this); }).AddTo(this);
// 最新の都市のハート数調整
latestCityHeartCount.text = $"{GameDataManager.GetCityGameData(GameDataUtils.GetLatestCityId()).Heart}";
latestCityHeartCount.OnValueChangedAsObservable().Subscribe(x =>
{
GameDataManager.GetCityGameData(GameDataUtils.GetLatestCityId()).Heart = Int32.Parse(x);
}).AddTo(this);
shopCustomizeCoinCount.text = $"{globalGameData.ShopCustomizeCoin}"; shopCustomizeCoinCount.text = $"{globalGameData.ShopCustomizeCoin}";
shopCustomizeCoinCount.OnValueChangedAsObservable().Subscribe(x => shopCustomizeCoinCount.OnValueChangedAsObservable().Subscribe(x =>
{ {
@ -277,19 +289,40 @@ public class DebugOptionManager : MonoBehaviour
globalGameData.MyRecipes = GetMyRecipe(shopLevelData.shopLevel); globalGameData.MyRecipes = GetMyRecipe(shopLevelData.shopLevel);
heartCount.text = $"{globalGameData.Heart}"; heartCount.text = $"{globalGameData.Heart}";
}).AddTo(this); }).AddTo(this);
/*
*
*/
if (GameDataManager.GameData.CurrentCityId == Const.DefaultCityId) cityShopLevelDropdown.interactable = false;
cityShopLevelDropdown.ClearOptions();
var cityShopLevelList = SpreadsheetDataManager.Instance.GetBaseDataList<CityShopLevelData>(Const.CityShopLevelDataSheet);
cityShopLevelList = cityShopLevelList.Where(data => data.cityId == GameDataManager.GameData.CurrentCityId).ToList();
cityShopLevelDropdown.AddOptions(cityShopLevelList.Select(data => data.shopLevel.ToString()).ToList());
cityShopLevelDropdown.value = cityGameData.ViewedShopLevel - 1;
cityShopLevelDropdown.OnValueChangedAsObservable()
.Skip(1)
.DistinctUntilChanged()
.Subscribe(x =>
{
var shopLevelData = shopLevelList.First(data => data.shopLevel == x + 1);
globalGameData.ViewedShopLevel = shopLevelData.shopLevel;
globalGameData.Heart = shopLevelData.heart;
globalGameData.MyRecipes = GetMyRecipe(shopLevelData.shopLevel);
heartCount.text = $"{globalGameData.Heart}";
}).AddTo(this);
/* /*
* *
*/ */
bulkOrderDropdown.ClearOptions(); bulkOrderDropdown.ClearOptions();
var bulkOrderList = SpreadsheetDataManager.Instance.GetBaseDataList<BulkOrderData>(Const.BulkOrderDataSheet); var bulkOrderList = BulkOrder.GetCityOrderList(GameDataManager.GameData.CurrentCityId);
var nextOrderList = bulkOrderList var nextOrderList = bulkOrderList
.Where(data => data.shopLevel <= globalGameData.ViewedShopLevel) .Where(data => data.shopLevel <= cityGameData.ViewedShopLevel)
.ToList(); .ToList();
if (nextOrderList.Count > 0) if (nextOrderList.Count > 0)
{ {
var len = nextOrderList.Count; var len = nextOrderList.Count;
var index = nextOrderList.FindIndex(data => data.id == globalGameData.OrderIdInProgress); var index = nextOrderList.FindIndex(data => data.id == cityGameData.OrderIdInProgress);
bulkOrderDropdown.AddOptions(nextOrderList.Select(data => $"id:{data.id}").ToList()); bulkOrderDropdown.AddOptions(nextOrderList.Select(data => $"id:{data.id}").ToList());
// 現在のIDをデフォで設定 // 現在のIDをデフォで設定
if (index != -1) if (index != -1)
@ -302,14 +335,14 @@ public class DebugOptionManager : MonoBehaviour
.Subscribe(x => .Subscribe(x =>
{ {
// オーダー達成状況をリセット // オーダー達成状況をリセット
globalGameData.DeliveredOrder.Clear(); cityGameData.DeliveredOrder.Clear();
globalGameData.AchievedOrderLevel = nextOrderList[x].shopLevel - 1; cityGameData.AchievedOrderLevel = nextOrderList[x].shopLevel - 1;
// 1つ前のオーダーを現在のオーダーに設定 // 1つ前のオーダーを現在のオーダーに設定
var prevOrderId = x - 1 < 0 ? 0 : nextOrderList[x - 1].id; var prevOrderId = x - 1 < 0 ? 0 : nextOrderList[x - 1].id;
globalGameData.OrderIdInProgress = globalGameData.CancelOrderId = prevOrderId; cityGameData.OrderIdInProgress = cityGameData.CancelOrderId = prevOrderId;
if (nextOrderList[x].maxOrder > 1) globalGameData.DeliveredOrder.Add(prevOrderId); if (nextOrderList[x].maxOrder > 1) cityGameData.DeliveredOrder.Add(prevOrderId);
// 即座に通知を発生 // 即座に通知を発生
globalGameData.OrderConditionCount = 99999; cityGameData.OrderConditionCount = 99999;
}).AddTo(this); }).AddTo(this);
} }
@ -319,24 +352,32 @@ public class DebugOptionManager : MonoBehaviour
autoCookDropdown.ClearOptions(); autoCookDropdown.ClearOptions();
var autoCookList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet); var autoCookList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
autoCookDropdown.AddOptions(autoCookList.Select(data => data.level.ToString()).ToList()); autoCookDropdown.AddOptions(autoCookList.Select(data => data.level.ToString()).ToList());
autoCookDropdown.value = globalGameData.AutoCookLevel - 1; autoCookDropdown.value = cityGameData.AutoCookLevel - 1;
autoCookDropdown.OnValueChangedAsObservable() autoCookDropdown.OnValueChangedAsObservable()
.Skip(1) .Skip(1)
.DistinctUntilChanged() .DistinctUntilChanged()
.Subscribe(x => .Subscribe(x =>
{ {
globalGameData.AutoCookUsesCount = 0; cityGameData.AutoCookUsesCount = 0;
globalGameData.AutoCookLevel = autoCookList[x].level; cityGameData.AutoCookLevel = autoCookList[x].level;
// level1ならチュートリアル復活 // level1ならチュートリアル復活
if (globalGameData.AutoCookLevel == 1) if (cityGameData.AutoCookLevel == 1)
{ {
globalGameData.FinishedFlags &= ~TutorialFlag.AutoCook; cityGameData.FinishedFlags &= ~TutorialFlag.AutoCook;
globalGameData.AutoCookFinishTime = DateTime.UtcNow.ToBinary(); cityGameData.AutoCookFinishTime = DateTime.UtcNow.ToBinary();
globalGameData.AutoCookProducts = Array.Empty<int>(); cityGameData.AutoCookProducts = Array.Empty<int>();
globalGameData.AutoCookUsesCount = 0; cityGameData.AutoCookUsesCount = 0;
} }
}).AddTo(this); }).AddTo(this);
resetWorldMapButton.OnClickAsObservable().Subscribe(_ =>
{
globalGameData.CityGameDataKeyValues = new CityGameDataDict.CityGameDataKeyValue[]{};
globalGameData.OnDeserialized();
globalGameData.PartTimerElapsed = 0;
globalGameData.PartTimerLevel = 1;
WorldMap.ChangeCity(Const.DefaultCityId);
}).AddTo(this);
// debugfielddata // debugfielddata
// gameData.PlantLines = new List<PlantLineData> // gameData.PlantLines = new List<PlantLineData>