// -----------------------------------------------------------------------------------
        // HeroPropertyChanged
        // -----------------------------------------------------------------------------------
        void HeroPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (panel == null)
            {
                return;
            }

            switch (e.PropertyName)
            {
            case "LV":
                levelText.text = Finder.txt.basicDerivedStatNames.LV + character.Level.ToString();
                UpdatePortrait();
                prevLV = character.Level;
                break;

            case "HP":
                healthSlider.value = RPGHelper.getPercentageValue(character.HP, character.MaxHP);
                UpdatePortrait();
                prevHP = character.HP;
                break;

            case "MP":
                manaSlider.value = RPGHelper.getPercentageValue(character.MP, character.MaxMP);
                UpdatePortrait();
                prevMP = character.MP;
                break;

            case "AttributePoints":
                pointsImg.gameObject.SetActive(character.AttributePoints > 0);
                break;

            case "Buffs":
                UpdateBuffs();
                break;

            case "XP":
                UpdatePortrait();
                prevXP = character.XP;
                break;
            }
        }
        // -----------------------------------------------------------------------------------
        // UpdateAll
        // -----------------------------------------------------------------------------------
        public void UpdateAll(bool flashing = true)
        {
            if (character == null)
            {
                return;
            }

            prevHP = character.HP;
            prevMP = character.MP;
            prevXP = character.XP;
            prevLV = character.Level;

            UpdatePortrait(false);

            nameText.text      = character.template.fullName;
            levelText.text     = Finder.txt.basicDerivedStatNames.LV + character.Level.ToString();
            healthSlider.value = RPGHelper.getPercentageValue(character.HP, character.MaxHP);
            manaSlider.value   = RPGHelper.getPercentageValue(character.MP, character.MaxMP);
            pointsImg.gameObject.SetActive(character.AttributePoints > 0);

            UpdateBuffs();
        }