public void recalculateAddonNumber()
    {
        attrAddInfo.clear();
        List <Card> cards = IntensifyCardManager.Instance.getFoodCard();

        if (cards != null)
        {
            foreach (Card item in cards)
            {
                //计算附加经验
                attrAddInfo.HpExp  += item.getHPExp();
                attrAddInfo.AttExp += item.getATTExp();
                attrAddInfo.DefExp += item.getDEFExp();
                attrAddInfo.MagExp += item.getMAGICExp();
                attrAddInfo.DexExp += item.getAGILEExp();
            }
        }

        //附加属性统计
        Card mainCard = IntensifyCardManager.Instance.getMainCard();

        if (mainCard != null)
        {
            // 附加前的等级
            attrAddInfo.OldHpGrade  = mainCard.getHPGrade();
            attrAddInfo.OldAttGrade = mainCard.getATTGrade();
            attrAddInfo.OldDefGrade = mainCard.getDEFGrade();
            attrAddInfo.OldMagGrade = mainCard.getMAGICGrade();
            attrAddInfo.OldDexGrade = mainCard.getAGILEGrade();
            attrAddInfo.oldHpExp    = mainCard.getHPExp();
            attrAddInfo.oldAttExp   = mainCard.getATTExp();
            attrAddInfo.oldDefExp   = mainCard.getDEFExp();
            attrAddInfo.oldMagExp   = mainCard.getMAGICExp();
            attrAddInfo.oldDexExp   = mainCard.getAGILEExp();

            // 附加后的等级
            int tmpHpGrade  = Card.getAttrAddGrade(attrAddInfo.HpExp + mainCard.getHPExp());
            int tmpAttGrade = Card.getAttrAddGrade(attrAddInfo.AttExp + mainCard.getATTExp());
            int tmpDefGrade = Card.getAttrAddGrade(attrAddInfo.DefExp + mainCard.getDEFExp());
            int tmpMagGrade = Card.getAttrAddGrade(attrAddInfo.MagExp + mainCard.getMAGICExp());
            int tmpDexGrade = Card.getAttrAddGrade(attrAddInfo.DexExp + mainCard.getAGILEExp());
            // 增加的附加等级
            attrAddInfo.HpGrade  = tmpHpGrade - attrAddInfo.OldHpGrade;
            attrAddInfo.AttGrade = tmpAttGrade - attrAddInfo.OldAttGrade;
            attrAddInfo.DefGrade = tmpDefGrade - attrAddInfo.OldDefGrade;
            attrAddInfo.MagGrade = tmpMagGrade - attrAddInfo.OldMagGrade;
            attrAddInfo.DexGrade = tmpDexGrade - attrAddInfo.OldDexGrade;
            setIncBarActive(true);
            // 更新滚动条
            UpdateHpIncbarCtrl();
            UpdateAttIncbarCtrl();
            UpdateDefIncbarCtrl();
            UpdateMagIncbarCtrl();
            UpdateDexIncbarCtrl();
        }
        else
        {
            setIncBarActive(false);
        }
        updateInfo();
    }
    public void intensify()
    {
        Card        tmpMainCard     = IntensifyCardManager.Instance.getMainCard();
        AttrAddInfo tempAttrAddinfo = new AttrAddInfo();

        tempAttrAddinfo.clear();
        List <Card> tmpFoodCards = IntensifyCardManager.Instance.getFoodCard();

        if (tmpFoodCards != null)
        {
            foreach (Card item in tmpFoodCards)
            {
                //计算附加经验
                tempAttrAddinfo.HpExp  += item.getHPExp();
                tempAttrAddinfo.AttExp += item.getATTExp();
                tempAttrAddinfo.DefExp += item.getDEFExp();
                tempAttrAddinfo.MagExp += item.getMAGICExp();
                tempAttrAddinfo.DexExp += item.getAGILEExp();
            }
        }
        if (tmpMainCard != null)
        {
            isHaveMaxLv = null;
            int maxlv = EXPSampleManager.Instance.getMaxLevel(EXPSampleManager.SID_USER_ATTR_ADD_EXP) - 1;
            if (tempAttrAddinfo.HpExp > 0 && tmpMainCard.getHPExp() >= EXPSampleManager.Instance.getMaxExp(EXPSampleManager.SID_USER_ATTR_ADD_EXP))
            {
                isHaveMaxLv = Language("Intensify_Addon_Err01", maxlv.ToString());
            }
            else if (tempAttrAddinfo.AttExp > 0 && tmpMainCard.getATTExp() >= EXPSampleManager.Instance.getMaxExp(EXPSampleManager.SID_USER_ATTR_ADD_EXP))
            {
                isHaveMaxLv = Language("Intensify_Addon_Err02", maxlv.ToString());
            }
            else if (tempAttrAddinfo.DefExp > 0 && tmpMainCard.getDEFExp() >= EXPSampleManager.Instance.getMaxExp(EXPSampleManager.SID_USER_ATTR_ADD_EXP))
            {
                isHaveMaxLv = Language("Intensify_Addon_Err03", maxlv.ToString());
            }
            else if (tempAttrAddinfo.MagExp > 0 && tmpMainCard.getMAGICExp() >= EXPSampleManager.Instance.getMaxExp(EXPSampleManager.SID_USER_ATTR_ADD_EXP))
            {
                isHaveMaxLv = Language("Intensify_Addon_Err04", maxlv.ToString());
            }
            else if (tempAttrAddinfo.DexExp > 0 && tmpMainCard.getAGILEExp() >= EXPSampleManager.Instance.getMaxExp(EXPSampleManager.SID_USER_ATTR_ADD_EXP))
            {
                isHaveMaxLv = Language("Intensify_Addon_Err05", maxlv.ToString());
            }
        }
        else
        {
            MaskWindow.UnlockUI();
            return;
        }
        CallBack cb = () => {
            IntensifyCardManager.Instance.addOnRestorePrize = null;
            win.intensifyButton.disableButton(true);
            win.selectFoodButton.disableButton(true);
            win.oneKeyButton.disableButton(true);
            UiManager.Instance.applyMask();
            AttributeFPort aas = FPortManager.Instance.getFPort("AttributeFPort") as AttributeFPort;
            aas.access(sacrificeRotCtrl.mainShower.card.uid, sacrificeRotCtrl.createFoodList(), addonFinish);              //(第一个参数,主卡uid,第二个参数,食物卡uid,第三个参数回调)
        };

        if (!string.IsNullOrEmpty(isHaveMaxLv))
        {
            UiManager.Instance.createMessageWindowByTwoButton(isHaveMaxLv, (MessageHandle msg) => {
                if (msg.buttonID == MessageHandle.BUTTON_LEFT)
                {
                    MaskWindow.UnlockUI();
                    return;
                }
                cb();
            });
        }
        else
        {
            cb();
        }
    }