リファクタ

This commit is contained in:
kimura 2022-04-19 17:57:31 +09:00
parent 3d599a4eff
commit 980ed76a58
1 changed files with 8 additions and 12 deletions

View File

@ -84,16 +84,11 @@ public class ProductManagement : MonoBehaviour
if (tankView.TankNumber > gameData.StorageTanks.Count) if (tankView.TankNumber > gameData.StorageTanks.Count)
{ {
// 価格の一番小さいタンクのみ購入できるようにする // 価格の一番小さいタンクのみ購入できるようにする
if (tankView.TankNumber == gameData.StorageTanks.Count + 1) var isSmallest = tankView.TankNumber == gameData.StorageTanks.Count + 1;
{ tankView.SetState(isSmallest ? TankState.Lock : TankState.Unavailable);
tankView.SetState(TankState.Lock);
}
else
{
tankView.SetState(TankState.Unavailable);
}
// タンク購入 // タンク購入
var shopData = shopDataList.First(data => data.id == Const.ShopTankId); var shopData = shopDataList.First(data => data.id == Const.ShopTankId);
shopData.price = PriceList[tankView.TankNumber - 1];
// 購入可否 // 購入可否
tankView.SetCanBuy(shopData.price <= CoinManager.Instance.OwnCoin); tankView.SetCanBuy(shopData.price <= CoinManager.Instance.OwnCoin);
@ -103,10 +98,10 @@ public class ProductManagement : MonoBehaviour
.TakeWhile(_ => tankView.State.Value == TankState.Lock || tankView.State.Value == TankState.Unavailable) .TakeWhile(_ => tankView.State.Value == TankState.Lock || tankView.State.Value == TankState.Unavailable)
.Subscribe(_ => .Subscribe(_ =>
{ {
Action<int> purchaseAction = amount => void PurchaseAction(int amount)
{ {
// タンク追加 // タンク追加
gameData.StorageTanks.Add(new StorageTank() {Capacity = Const.TankCapacity}); gameData.StorageTanks.Add(new StorageTank { Capacity = Const.TankCapacity });
tankView.SetData(gameData.StorageTanks[tankView.TankNumber - 1]); tankView.SetData(gameData.StorageTanks[tankView.TankNumber - 1]);
tankView.SetState(TankState.Unlock); tankView.SetState(TankState.Unlock);
CoinManager.Instance.SubCoin(shopData.price); CoinManager.Instance.SubCoin(shopData.price);
@ -118,9 +113,10 @@ public class ProductManagement : MonoBehaviour
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);
} }
}; }
shopData.price = PriceList[tankView.TankNumber - 1]; shopData.price = PriceList[tankView.TankNumber - 1];
ShopItemPurchaseView.ShowDialog((shopData, 0), purchaseAction); ShopItemPurchaseView.ShowDialog((shopData, 0), PurchaseAction);
}).AddTo(tankView); }).AddTo(tankView);
} }
else else