예제 #1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="dItemID"></param>
    /// <param name="posIndex">装备索引 0~5</param>
    /// <param name="solderierInfo"></param>
    public void SetData(int dItemID, int posIndex, SoldierInfo solderierInfo)
    {
        m_iItemID     = dItemID;
        m_soldierInfo = solderierInfo;
        m_iPosIndex   = posIndex;
        m_itemTypeID  = SoldierM.GetSoldierEquip(solderierInfo.SoldierTypeID, solderierInfo.Quality, posIndex);
        if (m_itemTypeID == 0)
        {
            NGUIUtil.DebugLog(string.Format(" SoldierTypeID={0},Quality={1},EquipIndex={2} 装备静态数据未配置", solderierInfo.SoldierTypeID, solderierInfo.Quality, posIndex));
            return;
        }
        if (m_iItemID == 0)//当未穿装备时
        {
            ItemTypeInfo info = ItemDC.SearchItem(m_itemTypeID);
            if (info != null)
            {
                m_iItemID    = info.ID;
                m_itemTypeID = info.itemType;
                m_icon       = info.m_Icon;
            }
            else
            {
                s_itemtypeInfo sInfo = ItemM.GetItemInfo(m_itemTypeID);
                if (sInfo != null)
                {
                    m_icon = sInfo.icon;
                }
                else
                {
                    NGUIUtil.DebugLog("itemTypeID =" + m_itemTypeID + " 未配置");
                }
            }
        }
        else//已装备
        {
            ItemTypeInfo info1 = ItemDC.GetItem(m_iItemID);
            if (info1 == null || info1.Positon == 0)
            {
                NGUIUtil.DebugLog("获取已装备的信息失败 itemID =" + m_iItemID);
                return;
            }
            m_icon = info1.m_Icon;
            if (info1 != null)
            {
                m_iEquipQuality = info1.m_Quality;
            }
        }
        int itemTypeid = 0;

        m_equipmentPutType = SoldierM.CheckCanPutEquip(solderierInfo, dItemID, posIndex, ref itemTypeid);
        SetUI();
    }
예제 #2
0
    /// <summary>
    /// 炮弹兵装备格的状态
    /// </summary>
    /// <returns>The can put equip.</returns>
    /// <param name="info">Info.</param>
    /// <param name="EquipID">Equip I.</param>
    /// <param name="index">Index.</param>
    /// <param name="itemTypeID">Item type I.</param>
    public static EquipmentPutType CheckCanPutEquip(SoldierInfo info, int EquipID, int index, ref int itemTypeID)
    {
        itemTypeID = SoldierM.GetSoldierEquip(info.SoldierTypeID, info.Quality, index);

        if (EquipID == 0)
        {
            ItemTypeInfo ItemInfo = ItemDC.SearchItem(itemTypeID);
            if (ItemInfo != null)
            {
                if (info.Level >= ItemInfo.m_level)
                {
                    return(EquipmentPutType.CanPut);
                }
                else
                {
                    return(EquipmentPutType.HaveCannot);
                }
            }
            else
            {
                s_itemtypeInfo sInfo = ItemM.GetItemInfo(itemTypeID);

                List <KeyValue> needSubEquip = new List <KeyValue>();
                int             needCoin     = 0;
                bool            canCombine   = ItemM.GetCombineEquipNeed(itemTypeID, ref needSubEquip, ref needCoin);
                if (canCombine)
                {
                    if (ItemDC.CheckItemsEnough(needSubEquip))
                    {
                        if (needCoin < UserDC.GetCoin())
                        {
                            if (info.Level >= sInfo.level)
                            {
                                return(EquipmentPutType.CanCombinePut);
                            }
                            else
                            {
                                return(EquipmentPutType.CanCombine);
                            }
                        }
                        else
                        {
                            return(EquipmentPutType.CanCombine);
                        }
                    }
                    else if (!ItemDC.CheckItemsEnough(needSubEquip))
                    {
                        return(EquipmentPutType.ReadyCombine);
                    }
                    else
                    {
                        return(EquipmentPutType.None);
                    }
                }
                else
                {
                    return(EquipmentPutType.NoCanCombine);
                }
            }
        }
        else
        {
            return(EquipmentPutType.HavePut);
        }
    }