コード例 #1
0
 public void AddMana(float amount)
 {
     currentMana += amount;
     currentMana  = Mathf.Clamp(currentMana, 0, MaxMana);
     OnManaChanged?.Invoke(this, new OnManaChangedEventArgs {
         newCurrentManaAmount = (int)currentMana, maxManaAmount = MaxMana
     });
 }
コード例 #2
0
 public void ReduceMana(int manaReduce)
 {
     mana -= manaReduce;
     if (mana < 0)
     {
         mana = 0;
     }
     OnManaChanged?.Invoke(this, EventArgs.Empty);
 }
コード例 #3
0
    public void RecoverMana(int manaAmount)
    {
        mana += manaAmount;
        if (mana > maxMana)
        {
            mana = maxMana;
        }

        OnManaChanged?.Invoke(this, EventArgs.Empty);
    }
コード例 #4
0
 void HandleManaChanged(OnManaChanged e)
 {
     if (e.NewMana > maxMana)
     {
         maxMana             = e.NewMana;
         manaSlider.maxValue = maxMana;
     }
     manaSlider.value = e.NewMana;
     manaText.text    = $"{e.NewMana}/{maxMana}";
 }
コード例 #5
0
 public void RemoveMana(int amount)
 {
     if (amount > currentMana)
     {
         throw new ArgumentOutOfRangeException("mana");
     }
     currentMana -= amount;
     OnManaChanged?.Invoke(this, new OnManaChangedEventArgs {
         newCurrentManaAmount = (int)currentMana, maxManaAmount = MaxMana
     });
 }
コード例 #6
0
 public void Revived()
 {
     OnHealthChanged?.Invoke(HP, HP);
     OnManaChanged?.Invoke(MaxMana, MaxMana);
     if ((Monster == false && isSummon == false && Guard == false && Worker == false && Merchent == false))
     {
         if (isMyPanelOpen())
         {
             charData.updateText();
         }
     }
 }
コード例 #7
0
    public void LvlUp(int LeftOversXP)
    {
        if (Lvl < 51)
        {
            Lvl = Lvl + 1;
            GameObject go = Instantiate(lvlupEffect, this.transform.position, this.transform.rotation);
            go.transform.parent = GameObject.Find(this.name).transform;
            GameObject lvlupt = Instantiate(lvlupEffect) as GameObject;
            lvlupt.transform.SetParent(lvlup.transform, false);
            OnExpChanged?.Invoke(XP, 0);
            //CurrentHP = HP;
            CurrentMana = MaxMana;
            OnHealthChanged?.Invoke(HP, HP);
            OnManaChanged?.Invoke(MaxMana, MaxMana);
            if ((Monster == false && isSummon == false && Guard == false && Worker == false && Merchent == false))
            {
                if (isMyPanelOpen())
                {
                    charData.updateText();
                    upper.OnXPChanged(XP, 0);
                }
            }

            if (LeftOversXP < 0)
            {
                LeftOversXP = LeftOversXP * (-1);
            }
            XPMultiplier = 0;
            UpdateAllStats(Lvl, Lvl, Lvl);
            UpdateEXP();
            //update stats here too
            if (LeftOversXP > 0)
            {
                RecieveXP(LeftOversXP);
            }
        }
    }
コード例 #8
0
 void HandleManaChanged(OnManaChanged e)
 {
     isUseable   = e.NewMana >= manaCost;
     image.color = isUseable ? Color.white : disableColor;
 }
コード例 #9
0
ファイル: HealthSystem.cs プロジェクト: gonek1/TestGame
 public void SetupMana(int amount)
 {
     manaMax += amount;
     mana    += amount;
     OnManaChanged?.Invoke(this, EventArgs.Empty);
 }
コード例 #10
0
ファイル: HealthSystem.cs プロジェクト: gonek1/TestGame
 public void PlusMana(int amount)
 {
     mana = Mathf.Clamp(mana + amount, 0, manaMax);
     OnManaChanged?.Invoke(this, EventArgs.Empty);
 }