Example #1
0
    /// <summary>
    /// 获取商品购买限制
    /// </summary>
    /// <param name="mallItemId">商品id</param>
    /// <param name="limitData">限制类型 优先级 NotEnough>UnShelve>SoldOut>Vip>CharacterLv</param>
    /// <param name="marketGridLimitDes">是否为黑市格子限制描述</param>
    /// <returns></returns>
    public bool TryGetMallItemPurchaseLimitType(uint mallItemId, out MallDefine.PurchaseLimitData limitData
                                                , bool marketGridLimitDes = true, bool packageFullCheck = true)
    {
        if (!MallReady)
        {
            InitMallData();
        }
        bool success = false;

        limitData = new MallDefine.PurchaseLimitData();
        MallDefine.MallLocalData local = MallDefine.MallLocalData.Create(mallItemId);
        if (null == local)
        {
            return(success);
        }
        //限制判断
        if (packageFullCheck && DataManager.Manager <KnapsackManager>().IsSimpleKanpsackFull())
        {
            limitData.limitType = MallDefine.PurchaseLimitType.NotEnough;
            //1、背包空间
            limitData.limitDes = "背包已满";
            success            = true;
        }
        else if (local.LocalMall.vipLev != 0 &&
                 Client.ClientGlobal.Instance().MainPlayer.GetProp((int)Client.PlayerProp.Vip) < local.LocalMall.vipLev)
        {
            //2、vip
            limitData.limitType = MallDefine.PurchaseLimitType.Vip;
            limitData.limitDes  = (marketGridLimitDes) ? string.Format("VIP{0}可购", local.LocalMall.vipLev) : string.Format("需要VIP{0}才可购买", local.LocalMall.vipLev);
            success             = true;
        }
        else if (local.LocalMall.lev != 0 &&
                 Client.ClientGlobal.Instance().MainPlayer.GetProp((int)Client.CreatureProp.Level) < local.LocalMall.lev)
        {
            //3、主角等级
            limitData.limitType = MallDefine.PurchaseLimitType.CharacterLv;
            limitData.limitDes  = (marketGridLimitDes) ? string.Format("{0}级才可购", local.LocalMall.lev) : string.Format("需要达到{0}级才可购买", local.LocalMall.lev);
            success             = true;
        }
        //else if (IsMallItemSoldOut(mallItemId.))
        //{
        //    //4、是否售罄
        //    limitData.limitType = MallDefine.PurchaseLimitType.SoldOut;
        //    limitData.limitDes = "该商品已售罄";
        //    success = true;
        //}
        else if (IsMallItemUnShelve(mallItemId))
        {
            //5、是否下架
            limitData.limitType = MallDefine.PurchaseLimitType.UnShelve;
            limitData.limitDes  = "该商品已下架";
            success             = true;
        }
        return(success);
    }
Example #2
0
 /// <summary>
 /// 购买商品
 /// </summary>
 /// <param name="mallItemId">商品唯一id</param>
 /// <param name="storeType">商店类型</param>
 /// <param name="num">购买数量</param>
 public void PurchaseMallItem(uint mallItemId, uint storeType, int num, uint pos = 0)
 {
     if (!MallReady)
     {
         InitMallData();
     }
     MallDefine.PurchaseLimitData purchaselimitData = null;
     //购买限制检测
     if (TryGetMallItemPurchaseLimitType(mallItemId, out purchaselimitData, false))
     {
         TipsManager.Instance.ShowTips(purchaselimitData.limitDes);
         return;
     }
     if (null != Sender)
     {
         Sender.PurchaseMallItemReq(mallItemId, storeType, (uint)num, pos);
     }
 }
Example #3
0
    public override void SetGridData(object data)
    {
        base.SetGridData(data);
        ResetInfoGrid();
        if (null == data)
        {
            return;
        }
        this.mallInfo = (GameCmd.DynaStorePosInfo)data;
        MallDefine.MallLocalData localData = DataManager.Manager <MallManager>().GetMallLocalDataByMallItemId(mallInfo.baseid);
        if (null == localData)
        {
            Debug.LogError(string.Format("UIBlackMarketGrid SetGridData faield,localData errir baseId:{0}", mallInfo.baseid));
            return;
        }

        MallDefine.PurchaseLimitData limitData = null;
        string limitDes = "";

        if (DataManager.Manager <MallManager>().TryGetMallItemPurchaseLimitType(localData.MallId, out limitData, packageFullCheck: false) &&
            (limitData.limitType == MallDefine.PurchaseLimitType.CharacterLv ||
             limitData.limitType == MallDefine.PurchaseLimitType.Vip))
        {
            limitDes = limitData.limitDes;
        }
        if (null != m_labName)
        {
            m_labName.text = localData.LocalItem.Name;
        }

        //bool fightPowerUp = false;
        //if (localData.LocalItem.IsEquip
        //    && DataManager.Manager<EquipManager>().IsEquipNeedFightPowerMask(localData.LocalItem.BaseId, out fightPowerUp))
        //{
        //    SetFightPower(true, fightPowerUp);
        //}

        SetBorder(true, localData.LocalItem.BorderIcon);
        SetIcon(true, localData.LocalItem.Icon);
        bool enable = (localData.LocalMall.pileNum > 1) ? true : false;

        SetNum(enable, localData.LocalMall.pileNum.ToString());
        SetLimit(limitDes);
        SetSoldOut((mallInfo.buy_flag == 1) ? true : false);
        if (null != this.cost && null != this.costIcon)
        {
            MallDefine.CurrencyData cost
                = new MallDefine.CurrencyData((GameCmd.MoneyType)localData.LocalMall.moneyType, localData.LocalMall.buyPrice);
            string costIconName = (null != cost) ? MallDefine.GetCurrencyIconNameByType(cost.CType) : "";
            UIManager.GetAtlasAsyn(costIconName, ref m_costCASD, () =>
            {
                if (null != this.costIcon)
                {
                    this.costIcon.atlas = null;
                }
            }, this.costIcon);
            string costString = (null != cost) ? localData.LocalMall.buyPrice.ToString() : "0";
            this.cost.text = costString;
        }

        //SetFightUp(false);
        if (localData.LocalItem.IsMuhon)
        {
            SetMuhonMask(true, Muhon.GetMuhonStarLevel(localData.LocalItem.BaseId));
            SetMuhonLv(true, Muhon.GetMuhonLv(localData.LocalItem));
        }
        else if (localData.LocalItem.IsRuneStone)
        {
            SetRuneStoneMask(true, (uint)localData.LocalItem.Grade);
        }
        else if (localData.LocalItem.IsChips)
        {
            SetChips(true);
        }
    }