/* methods */
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="card">主卡片</param>
 /// <param name="attrAddInfo">附加属性信息对象</param>
 /// <param name="closeCallback">关闭回调方法</param>
 public void Initialize(Card card, AttrAddInfo attrAddInfo, CallBack continueCallback)
 {
     this.card             = card;
     this.continueCallback = continueCallback;
     cardAttrContent.Initialize(this, card);
     cardAttrContent.gameObject.SetActive(true);
     cardAttrUpContent.Initialize(card, attrAddInfo);
 }
    /// <summary>
    /// 更新属性升级条目
    /// </summary>
    /// <param name="attrAddInfo"></param>
    public void updateAttrLevelUpItem(Card card, AttrAddInfo attrAddInfo)
    {
        if (card == null || attrAddInfo == null)
        {
            return;
        }
        updateActiveByAll(false);
        int  index     = 0;
        bool isUpLevel = false;

        if (attrAddInfo.HpExp > 0)
        {
            int oldHpAttr = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.OldHpGrade, AttributeType.hp);
            int hpAttr    = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.HpGrade, AttributeType.hp);
            isUpLevel = items[index].updateAttributes(index, AttrChangeType.HP, attrAddInfo.oldHpExp, card.getHPExp(), oldHpAttr, hpAttr);
            index++;
        }
        if (attrAddInfo.AttExp > 0)
        {
            int oldAttAttr = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.OldAttGrade, AttributeType.attack);
            int attAttr    = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.AttGrade, AttributeType.attack);
            isUpLevel = items[index].updateAttributes(index, AttrChangeType.ATTACK, attrAddInfo.oldAttExp, card.getATTExp(), oldAttAttr, attAttr);
            index++;
        }
        if (attrAddInfo.DefExp > 0)
        {
            int oldDefAttr = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.OldDefGrade, AttributeType.defecse);
            int defAttr    = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.DefGrade, AttributeType.defecse);
            isUpLevel = items[index].updateAttributes(index, AttrChangeType.DEFENSE, attrAddInfo.oldDefExp, card.getDEFExp(), oldDefAttr, defAttr);
            index++;
        }
        if (attrAddInfo.MagExp > 0)
        {
            int oldMagAttr = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.OldMagGrade, AttributeType.magic);
            int magAttr    = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.MagGrade, AttributeType.magic);
            isUpLevel = items[index].updateAttributes(index, AttrChangeType.MAGIC, attrAddInfo.oldMagExp, card.getMAGICExp(), oldMagAttr, magAttr);
            index++;
        }
        if (attrAddInfo.DexExp > 0)
        {
            int oldDexAttr = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.OldDexGrade, AttributeType.agile);
            int dexAttr    = CardManagerment.Instance.getCardAppendAttr(attrAddInfo.DexGrade, AttributeType.agile);
            isUpLevel = items[index].updateAttributes(index, AttrChangeType.AGILE, attrAddInfo.oldDexExp, card.getAGILEExp(), oldDexAttr, dexAttr);
            index++;
        }
        isShowPrizeUpdate = true;
        if (isUpLevel)
        {
            waitShowPrizeTime = 1.5f;
        }
    }
 /* methods */
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="role">卡片</param>
 public void Initialize(Card card, AttrAddInfo attrAddInfo)
 {
     updateAttrLevelUpItem(card, attrAddInfo);
 }
    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();
        }
    }