デバッグオプション追加

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