void BuyBuff(ShopBuff item) { PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus(); if (!item.HasReachedItemMax().Invoke()) { PlayErrorSound(); alertMessageManager.SetAlertMessage(itemMaxReachedMsg); return; } if (PlayerHasEnoughFundsToBuy(item.buffPrice)) { playerScore -= item.buffPrice; item.BuyItem().Invoke(); playerData.DecreaseScore(item.buffPrice); PlayerStatusService.SavePlayerStatus(playerData); LoadPlayerData(); item.DeselectObject(); selectedObjectManager.RemoveSelectedObject(); PlayBuySound(); } else { PlayErrorSound(); alertMessageManager.SetAlertMessage(notEnoughMoneyMsg); } }
public Action BuyItem() { return(() => { playerData.DecreaseScore(shipPrice); playerData.GetOwnedShipsIDs().Add(this.shipId); }); }