Exemple #1
0
    /// <summary>
    /// 活力商品显示
    /// </summary>
    private void InitPowerShopUI()
    {
        int surplusNum_0 = 0;                    //可用次数

        goods = config.getAp_supplement_goods(); //活力补满商品的ID
        ShopTemplate shopDate = (ShopTemplate)DataTemplate.GetInstance().m_ShopTable.getTableData(goods);

        if (shopDate == null)
        {
            LogManager.Log("is Shop null !!!!");
            return;
        }
        m_NameTxt_0.text = GameUtils.getString(shopDate.getCommodityName());
        m_DesTxt_0.text  = GameUtils.getString(shopDate.getCommodityDes());

        //商品使用次数+Vip的使用次数
        surplusNum_0 = shopDate.getDailyMaxBuy() + vipData.getMaxBuyAp();
        //剩余使用次数
        Shopbuy shop = ObjectSelf.GetInstance().GetShopBuyInfoByShopId(goods);

        m_curSurpNum_0 = surplusNum_0 - shop.todaynum;

        _SurplusNumTxt_0.text = m_curSurpNum_0.ToString();
        _Icon_0.sprite        = UIResourceMgr.LoadSprite(common.defaultPath + shopDate.getResourceName());

        //消耗钻石显示
        m_conDiamNum        = DataTemplate.GetInstance().GetShopBuyCost(shopDate, shop.todaynum);
        _ConDiamNumTxt.text = m_conDiamNum.ToString();

        SetBtnColor(m_curSurpNum_0, _UserBtn_0, ObjectSelf.GetInstance().Gold);
    }
 void OnShopInfoChange(GameEvent ge)
 {
     if (ge != null)
     {
         Shopbuy sb = ge.data as Shopbuy;
         if (sb != null && sb.shopid == mItemUIs[0].GetDataId())
         {
             RefreshShopItemUI();
         }
     }
 }
Exemple #3
0
    void UpdateTotalResourceInfo(GameEvent ge)
    {
        if (ge == null)
        {
            return;
        }

        Shopbuy it = ge.data as Shopbuy;

        int stoneid = DataTemplate.GetInstance().GetGameConfig().getIdentify_stone_id();

        if (it == null || it.shopid != stoneid)
        {
            return;
        }

        UpdateUI();
    }
Exemple #4
0
    /// <summary>
    /// 获得最大购买次数---注意不会有阶梯价格的物品;
    /// </summary>
    /// <param name="shopId"></param>
    /// <param name="perPrice"></param>
    /// <returns></returns>
    public static int GetMaxBuyCount(int shopId, int perPrice)
    {
        ShopTemplate ShopT = DataTemplate.GetInstance().GetShopTemplateByID(shopId);

        if (ShopT == null)
        {
            LogManager.LogError("ShopTemplate is null id=" + shopId);
            return(-1);
        }

        List <int> times = new List <int>();
        //-----根据人物当前资源最大购买次数--------
        int  countByMoney = -1;
        long count        = -1;

        if (ObjectSelf.GetInstance().TryGetResourceCountById(ShopT.getCostType(), ref count))
        {
            countByMoney = (int)(count / perPrice);
            times.Add(countByMoney);
        }

        int     vipLv = ObjectSelf.GetInstance().VipLevel;
        Shopbuy sb    = ObjectSelf.GetInstance().GetShopBuyInfoByShopId(ShopT.getId());
        //-----根据人物当前vip每日限购最大购买次数--
        int countByDaily = -1;
        //-----根据人物当前vip总限购最大购买次数----
        int countByTotal = -1;

        if (IsShopBuyLimited(ShopT))
        {
            countByDaily = DataTemplate.GetInstance().GetShopItemDailyBuyTimes(ShopT, vipLv) - sb.todaynum;
            countByTotal = DataTemplate.GetInstance().GetShopItemDailyBuyTimes(ShopT, vipLv) - sb.buyallnum;

            times.Add(countByDaily);
            times.Add(countByTotal);
        }

        //默认最大购买次数;
        times.Add(999);

        return(Mathf.Max(0, Mathf.Min(times.ToArray())));
    }
    /// <summary>
    /// 设置信息,id表示表格id,type = 0表示对应shop表,1表示物品表;
    /// </summary>
    /// <param name="id"></param>
    /// <param name="type"></param>
    public void SetData(int id, int type)
    {
        mId   = id;
        mType = type;

        switch (type)
        {
        case 0:
            m_UseBtnTxt.text = GameUtils.getString("common_button_purchase");
            shopT            = DataTemplate.GetInstance().GetShopTemplateByID(id);
            m_IconImg.sprite = UIResourceMgr.LoadSprite(common.defaultPath + shopT.getResourceName());
            m_IconImg.SetNativeSize();
            m_TitleTxt.text = GameUtils.getString(shopT.getCommodityName());
            mHaveCount      = int.MaxValue;

            int max = DataTemplate.GetInstance().GetShopItemDailyBuyTimes(shopT, ObjectSelf.GetInstance().VipLevel);

            //剩余使用次数
            Shopbuy shop = ObjectSelf.GetInstance().GetShopBuyInfoByShopId(id);

            mRemineTimes = max - shop.todaynum;
            mCost        = DataTemplate.GetInstance().GetShopBuyCost(shopT, shop.todaynum);

            m_ReminTxt.text = mRemineTimes.ToString();
            m_CostTxt.text  = mCost.ToString();
            m_CostObj.SetActive(true);
            m_HaveObj.SetActive(false);

            long moneyCount = -1;
            if (ObjectSelf.GetInstance().TryGetResourceCountById(EM_RESOURCE_TYPE.Gold, ref moneyCount))
            {
                GameUtils.SetBtnSpriteGrayState(m_UseBtn, mRemineTimes <= 0 || mCost > moneyCount);
            }
            m_DetailTxt.text = GameUtils.getString(shopT.getCommodityDes());
            break;

        case 1:
            m_UseBtnTxt.text = GameUtils.getString("common_button_use");
            itemT            = DataTemplate.GetInstance().GetItemTemplateById(id);
            m_IconImg.sprite = UIResourceMgr.LoadSprite(common.defaultPath + itemT.getIcon());
            m_IconImg.SetNativeSize();
            m_TitleTxt.text = GameUtils.getString(itemT.getName());

            if (!ObjectSelf.GetInstance().TryGetItemCountById(EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_COMMON, id, ref mHaveCount))
            {
                mHaveCount = 0;
            }

            int max1 = ExplorePointModule.GetEPItemUseTimes(itemT, ObjectSelf.GetInstance().VipLevel);

            //剩余使用次数
            int useTimes = ObjectSelf.GetInstance().CommonItemContainer.GetItemUseTimes(EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_COMMON, id);

            mRemineTimes = max1 - Mathf.Max(0, useTimes);
            mCost        = 0;

            m_ReminTxt.text = mRemineTimes.ToString();
            m_CostTxt.text  = mCost.ToString();
            m_CostObj.SetActive(false);

            m_HaveTxt.text = (mHaveCount > 999 ? 999 : mHaveCount).ToString();
            m_HaveObj.SetActive(true);
            GameUtils.SetBtnSpriteGrayState(m_UseBtn, mRemineTimes <= 0 || mHaveCount <= 0);
            m_DetailTxt.text = GameUtils.getString(itemT.getDes());
            break;

        default:
            break;
        }
    }