private void Start() { judahBack.enabled = false; if (GameManager.GameManagerInstance != null) { OnChangeSpecialBgm += GameManager.GameManagerInstance.ChangeToSpecialBgm; OnGameEnded += GameManager.GameManagerInstance.GameOver; } if (PlayerAttack.PlayerAttackInstance != null) OnWeaponCollected += PlayerAttack.PlayerAttackInstance.ObtainWeapon; _invincibilityAnimator = GameObject.FindGameObjectWithTag("InvincibleStatus").GetComponent<Animator>(); _weaponDamage = WeaponBaseDamage; _isMovingRight = true; _extraPlayerLives = 0; _playerSpeed = BasePlayerSpeed; _playerLevel = 1; _weaponLevel = 1; _playerLevelUpReq = BaseLevelRequirement; _weaponLevelUpReq = BaseLevelRequirement; _animatorPlayer = GetComponent<Animator>(); _audioSource = GetComponents<AudioSource>(); _jumpCounter = 0; _currentMaxHealth = MaxHealth; _currentHealth = MaxHealth; healthBar.SetMaxValue(_currentHealth); healthBar.SetValue(_currentHealth); expBar.SetMaxValue(BaseLevelRequirement); expBar.SetValue(0); wepExpBar.SetMaxValue(BaseLevelRequirement); wepExpBar.SetValue(0); SetBarTextValue(ref playerHpUiValue, _currentHealth.ToString(), healthBar.GetCurrentMaxValue().ToString()); _playerLevelUpReq = BaseLevelRequirement; _weaponLevelUpReq = BaseLevelRequirement; }
private void GainExp(SliderScript bar, int expValue, ref int nextLevelExpReq, ref int currentBarLevel, ref TextMeshProUGUI textMeshProUGUI) { if (currentBarLevel >= MaxLevel) return; PlaySpecialSfx(PickupItemAudioClip); var barCurrentValue = bar.GetCurrentValue() + expValue; if (barCurrentValue >= bar.GetCurrentMaxValue()) { barCurrentValue -= nextLevelExpReq; bar.SetValue(barCurrentValue); nextLevelExpReq += NextLevelExpReqOffset; bar.SetMaxValue(nextLevelExpReq); ++currentBarLevel; switch (bar.tag) { case PlayerExpUiTag: playerLevel.text = currentBarLevel.ToString(); _currentMaxHealth += MaxHealth; healthBar.SetMaxValue(_currentMaxHealth); SetBarTextValue(ref playerHpUiValue, _currentHealth.ToString(), _currentMaxHealth.ToString()); break; case WepExpUiTag: _weaponDamage += WeaponBaseDamage; break; } if (currentBarLevel >= MaxLevel) { bar.SetValue(bar.GetCurrentMaxValue()); SetBarTextValue(ref textMeshProUGUI, MaxExpText, MaxExpText); return; } } else bar.SetValue(barCurrentValue); SetBarTextValue(ref textMeshProUGUI, barCurrentValue.ToString(), bar.GetCurrentMaxValue().ToString()); }