自動調理ワールド対応
This commit is contained in:
parent
8b2f64ad3e
commit
faa0f8c56e
|
@ -20,14 +20,14 @@ namespace MyGame.Scenes.Main.Scripts
|
||||||
[SerializeField] private AutoCookPopcornView[] popcorns;
|
[SerializeField] private AutoCookPopcornView[] popcorns;
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
|
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
|
||||||
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel);
|
var autoCookData = autoCookDataList.First(data => data.level == cityGameData.AutoCookLevel);
|
||||||
|
|
||||||
// アイテムのリスト生成
|
// アイテムのリスト生成
|
||||||
var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
|
var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
|
||||||
var productCount = Mathf.CeilToInt((float)autoCookData.earnCount / Const.TankCapacity);
|
var productCount = Mathf.CeilToInt((float)autoCookData.earnCount / Const.TankCapacity);
|
||||||
var earnIds = gameData.AutoCookProducts.Take(productCount).ToArray();
|
var earnIds = cityGameData.AutoCookProducts.Take(productCount).ToArray();
|
||||||
var earnProductArray = productList
|
var earnProductArray = productList
|
||||||
.Where(data => earnIds.Contains(data.id))
|
.Where(data => earnIds.Contains(data.id))
|
||||||
.Select(data => new ProductData(data, 1){volume = Const.TankCapacity})
|
.Select(data => new ProductData(data, 1){volume = Const.TankCapacity})
|
||||||
|
@ -41,7 +41,7 @@ namespace MyGame.Scenes.Main.Scripts
|
||||||
earnProductArray.Last().volume = lastProductAmount;
|
earnProductArray.Last().volume = lastProductAmount;
|
||||||
|
|
||||||
// タンクの空き確認
|
// タンクの空き確認
|
||||||
var emptyTankCount = gameData.StorageTanks.Count(tank => tank.IsEmpty);
|
var emptyTankCount = cityGameData.StorageTanks.Count(tank => tank.IsEmpty);
|
||||||
var discardProductList = new List<ProductData>();
|
var discardProductList = new List<ProductData>();
|
||||||
|
|
||||||
// 価格が高い順に破棄対象にする
|
// 価格が高い順に破棄対象にする
|
||||||
|
@ -59,7 +59,7 @@ namespace MyGame.Scenes.Main.Scripts
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 空以外の補充可能な空きがあるタンクを優先して判定する
|
// 空以外の補充可能な空きがあるタンクを優先して判定する
|
||||||
if (gameData.StorageTanks.Exists(data => !data.IsEmpty && data.FlavorId == productData.id && data.Capacity - data.Stock >= productData.volume))
|
if (cityGameData.StorageTanks.Exists(data => !data.IsEmpty && data.FlavorId == productData.id && data.Capacity - data.Stock >= productData.volume))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -107,15 +107,15 @@ namespace MyGame.Scenes.Main.Scripts
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自動調理セーブ
|
// 自動調理セーブ
|
||||||
gameData.AutoCookProducts = Array.Empty<int>();
|
cityGameData.AutoCookProducts = Array.Empty<int>();
|
||||||
var maxLevel = autoCookDataList.Last().level;
|
var maxLevel = autoCookDataList.Last().level;
|
||||||
if (gameData.AutoCookLevel < maxLevel)
|
if (cityGameData.AutoCookLevel < maxLevel)
|
||||||
{
|
{
|
||||||
gameData.AutoCookUsesCount++;
|
cityGameData.AutoCookUsesCount++;
|
||||||
if (gameData.AutoCookUsesCount >= autoCookData.clearCount)
|
if (cityGameData.AutoCookUsesCount >= autoCookData.clearCount)
|
||||||
{
|
{
|
||||||
gameData.AutoCookUsesCount = 0;
|
cityGameData.AutoCookUsesCount = 0;
|
||||||
gameData.AutoCookLevel++;
|
cityGameData.AutoCookLevel++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
|
|
|
@ -26,10 +26,10 @@ namespace MyGame.Scenes.Main.Scripts
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
|
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
|
||||||
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel);
|
var autoCookData = autoCookDataList.First(data => data.level == cityGameData.AutoCookLevel);
|
||||||
var remainingTime = DateTime.FromBinary(gameData.AutoCookFinishTime).Subtract(DateTime.UtcNow);
|
var remainingTime = DateTime.FromBinary(cityGameData.AutoCookFinishTime).Subtract(DateTime.UtcNow);
|
||||||
|
|
||||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue