タンクデータ対応

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

@ -20,18 +20,6 @@ public class ProductManagement : MonoBehaviour
[SerializeField] private ProductManagementView view;
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()
{
state.AddTo(this);
@ -49,6 +37,17 @@ public class ProductManagement : MonoBehaviour
});
}
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);
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
@ -75,7 +74,7 @@ public class ProductManagement : MonoBehaviour
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 productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);
@ -89,7 +88,7 @@ public class ProductManagement : MonoBehaviour
tankView.SetState(isSmallest ? TankState.Lock : TankState.Unavailable);
// タンク購入
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);
@ -112,7 +111,7 @@ public class ProductManagement : MonoBehaviour
if (tankView.TankNumber + 1 <= tankList.Count)
{
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);
}
}