タンクデータ対応

This commit is contained in:
kimura 2022-10-07 20:13:40 +09:00
parent b7e7351eaa
commit 290027f4ea
1 changed files with 15 additions and 16 deletions

View File

@ -19,19 +19,7 @@ public class ProductManagement : MonoBehaviour
[SerializeField] private GameObject tastingDisabledObject; [SerializeField] private GameObject tastingDisabledObject;
[SerializeField] private ProductManagementView view; [SerializeField] private ProductManagementView view;
private readonly ReactiveProperty<ManagementState> state = new ReactiveProperty<ManagementState>(); private readonly ReactiveProperty<ManagementState> state = new ReactiveProperty<ManagementState>();
// tank price list
private static readonly List<int> PriceList = new List<int>
{
0,
500,
1000,
3000,
5000,
7000,
9000
};
private void Start() private void Start()
{ {
state.AddTo(this); state.AddTo(this);
@ -48,6 +36,17 @@ public class ProductManagement : MonoBehaviour
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
}); });
} }
var currentCityId = GameDataManager.GameData.CurrentCityId;
var tankPriceList = SpreadsheetDataManager.Instance.GetBaseDataList<TankPriceData>(Const.TankPriceDataSheet);
var cityTankPriceList = tankPriceList.Where(data => data.cityId == currentCityId).ToList();
if (cityTankPriceList.Count == 0)
{
cityTankPriceList = tankPriceList.Where(data => data.cityId == 0).ToList();
}
var priceList = cityTankPriceList
.OrderBy(data => data.number)
.Select(data => data.price).ToList();
CoinManager.Instance.ChangeCoin(gameData.Coin); CoinManager.Instance.ChangeCoin(gameData.Coin);
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
@ -75,7 +74,7 @@ public class ProductManagement : MonoBehaviour
gameData.StorageTanks = gameData.StorageTanks.OrderBy(tank => tank.IsEmpty).ToList(); gameData.StorageTanks = gameData.StorageTanks.OrderBy(tank => tank.IsEmpty).ToList();
// タンク設定 // タンク設定
var tankList = view.SetTanks(PriceList); var tankList = view.SetTanks(priceList);
var rarityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<RarityData>(Const.RarityDataSheet); var rarityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<RarityData>(Const.RarityDataSheet);
var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet); var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet); var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
@ -89,7 +88,7 @@ public class ProductManagement : MonoBehaviour
tankView.SetState(isSmallest ? TankState.Lock : TankState.Unavailable); tankView.SetState(isSmallest ? TankState.Lock : TankState.Unavailable);
// タンク購入 // タンク購入
var shopData = shopDataList.First(data => data.id == Const.ShopTankId); var shopData = shopDataList.First(data => data.id == Const.ShopTankId);
var price = PriceList[tankView.TankNumber - 1]; var price = priceList[tankView.TankNumber - 1];
// 購入可否 // 購入可否
tankView.SetCanBuy(price <= CoinManager.Instance.OwnCoin); tankView.SetCanBuy(price <= CoinManager.Instance.OwnCoin);
@ -112,7 +111,7 @@ public class ProductManagement : MonoBehaviour
if (tankView.TankNumber + 1 <= tankList.Count) if (tankView.TankNumber + 1 <= tankList.Count)
{ {
tankList[tankView.TankNumber].SetState(TankState.Lock); tankList[tankView.TankNumber].SetState(TankState.Lock);
tankList[tankView.TankNumber].SetCanBuy(PriceList[tankView.TankNumber] <= CoinManager.Instance.OwnCoin); tankList[tankView.TankNumber].SetCanBuy(priceList[tankView.TankNumber] <= CoinManager.Instance.OwnCoin);
} }
} }