Beispiel #1
0
    public void Buy()
    {
        if (_parameters.goldAmount < item.price)
        {
            return;
        }

        _parameters.goldAmount -= item.price;
        _moneyAmountText.text   = _parameters.goldAmount.ToString();

        if (badge != null)
        {
            if (counter == 0)
            {
                badge.gameObject.SetActive(true);
            }
            counter++;
            badge.text = counter.ToString();
        }

        _inventory.StashItem(item);

        _parameters.Save();

        _equipPanel.UpdateStash();

        OnItemBought?.Invoke();
    }
 public void Check()
 {
     _check = !_check;
     checkMark.SetActive(_check);
     SetParams(_check);
     parameters.Save();
     mixer.audioMixer.SetFloat(mixer.name, _check ? 0 : -80f);
 }
Beispiel #3
0
    private IEnumerator WinCoroutine()
    {
        musicSource.Stop();
        musicSource.clip = winMusic;
        musicSource.loop = false;

        DisableUI();

        PlayerMover mover = _player.GetComponent <PlayerMover>();

        mover.enabled = false;

        PlayerAnimator playerAnimator = _player.GetComponent <PlayerAnimator>();

        playerAnimator.SetSpeed(0);

        DestroySnowballs();

        yield return(new WaitForSecondsRealtime(waitTimeBeforeWin));

        // spin player and jump
        yield return(SpinAndJump(spinsAmount, spinTime, jumpHeight));

        musicSource.Play();

        // show score
        // TODO: animations and score
        winPanel.SetActive(true);
        winPanelMoneyText.text = $"Earned ${onWinGoldAmount}";

        yield return(null);

        int lastLocationFinished = parameters.finishedLevelsOnLocation[parameters.finishedLevelsOnLocation.Count - 1];

        if (lastLocationFinished >= 10)
        {
            parameters.finishedLevelsOnLocation.Add(0);
        }

        parameters.goldAmount += onWinGoldAmount;

        OpenLevel();
        parameters.Save();
    }
Beispiel #4
0
    public void UseItem()
    {
        if (inventoryButton == null)
        {
            Debug.LogError("Inventory button was not found");
            return;
        }

        Inventory inventory = parameters.inventory;

        foreach (ItemEffect effect in activeItem.effects)
        {
            switch (effect.name)
            {
            case "Heal":
                Heal((int)effect.value);
                break;

            default:
                Debug.LogError("Effect " + effect.name + " was not found");
                break;
            }
        }

        if (activeItem is ThrowableItem)
        {
            PlayerShooter shooter = _player.GetComponent <PlayerShooter>();
            shooter.nextSnowballPrefab = ((ThrowableItem)activeItem).throwablePrefab;
        }

        inventory.activeItemsEquipped.RemoveAt(itemIndex);
        parameters.Save();

        inventoryButton.OnPress();

        foreach (Transform button in transform.parent)
        {
            Destroy(button.gameObject);
        }
    }
 public void OnReturnToMenu()
 {
     _inventory.UnequipActiveItems();
     parameters.Save();
 }