Пример #1
0
    /// <summary>
    /// 设置格子
    /// </summary>
    /// <param name="attr">属性</param>
    /// <param name="totalProtectAttrNum">保护属性总条数</param>
    /// <param name="selectNum">选择数量</param>
    /// <param name="callback"></param>
    public void SetGridView(GameCmd.PairNumber attr, bool select, int fillNum = 0, int needNum = 0
                            , Action <uint> callback = null)
    {
        ResetInfoGrid();
        RuneStone rs = null;
        uint      runeStoneBaseId = 0;

        AttrId = attr.id;
        EquipManager emgr = DataManager.Manager <EquipManager>();

        if (emgr.TryGetRuneStoneIdByEffectId(emgr.TransformAttrToEffectId(attr), out runeStoneBaseId))
        {
            rs = DataManager.Manager <ItemManager>().GetTempBaseItemByBaseID <RuneStone>(runeStoneBaseId, ItemDefine.ItemDataType.RuneStone);
        }
        else
        {
            Engine.Utility.Log.Error("TryGetRuneStoneIdByEffectId failed attr pair = [id,{0}]-[value,{1}]", attr.id, attr.value);
        }
        m_uint_rsId = rs.BaseId;
        if (null != this.attrDes)
        {
            this.attrDes.text = emgr.GetAttrDes(attr);
        }

        if (null != this.m_labPortectDes)
        {
            this.m_labPortectDes.text = string.Format("消耗符石档次:{0}档", rs.Grade);
        }
        if (null != m_toggle)
        {
            m_toggle.value = select;
        }
        SetIcon(true, rs.Icon);
        SetBorder(true, rs.BorderIcon);
        int holdNum = (int)DataManager.Manager <ItemManager>().GetItemNumByBaseId(runeStoneBaseId);

        SetRuneStoneMask(true, (uint)rs.Grade);
        if (select && fillNum < needNum)
        {
            SetNotEnoughGet(true);
        }
        if (null != m_labNum)
        {
            if (select)
            {
                this.m_labNum.text = ItemDefine.BuilderStringByHoldAndNeedNum((uint)fillNum, (uint)needNum);
            }
            else
            {
                this.m_labNum.text = holdNum.ToString();
            }
        }

        if (this.changeCallback != callback)
        {
            this.changeCallback = callback;
        }
    }