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);
            }
        }
示例#2
0
 public Action BuyItem()
 {
     return(() => { playerData.DecreaseScore(shipPrice); playerData.GetOwnedShipsIDs().Add(this.shipId); });
 }