add WorldMarketManager.cs

This commit is contained in:
kimura 2022-10-04 16:31:03 +09:00
parent ab19a2a70c
commit 25fc181b44
2 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UniRx;
using UnityEngine;
namespace MyGame.Scenes.marketing.Scripts
{
/// <summary>
/// 各都市のバックグラウンドでの販売を制御
/// </summary>
public class WorldMarketManager : SingletonMonoBehaviour<WorldMarketManager>
{
public static readonly int ShopStockCount = 20;
[SerializeField] private Market marketPrefab;
public readonly ReactiveProperty<bool> IsPause = new();
//cityIdごとにMarket保存
private readonly Dictionary<int, Market> cityMarketDict = new();
private void Start()
{
var market = Instantiate(marketPrefab, transform);
cityMarketDict.Add(Const.DefaultCityId, market);
}
public Market GetMarket(int cityId)
{
return cityMarketDict[Const.DefaultCityId];
}
public Market GetCurrentCityMarket()
{
return cityMarketDict[Const.DefaultCityId];
}
/// <summary>
/// 全マーケットアップデート
/// </summary>
/// <param name="bonusList"></param>
public void UpdateBonus(Dictionary<ShopCustomizeBonusCategory, (int bonusLevel, int value)> bonusList)
{
cityMarketDict[Const.DefaultCityId].UpdateBonus(bonusList);
}
public void ResetGameData(GameData gameData)
{
cityMarketDict[Const.DefaultCityId].ResetGameData(gameData);
}
public static void StockFlavorLog(int cityId = -1)
{
if (GameDataManager.GetCityGameData(cityId) is not {} cityGameData)
{
cityGameData = GameDataManager.GetCurrentCityGameData();
}
var shopStockString = "";
shopStockString += $@"tank count:{cityGameData.StorageTanks.Count}
tank {cityGameData.StorageTanks.Aggregate("", (s, tank) => $"{s}, flavor:{tank.FlavorId}({tank.Stock})")}
";
foreach (var data in SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet))
{
var shopStockCount = cityGameData.ShopStock.FindAll(x => x.FlavorId == data.id).Count;
var tank = cityGameData.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

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 314dd9be490e4a168cc6b93170088eeb
timeCreated: 1664507764