public void SetData(MallTableItem node, uint subId)
    {
        ItemTableItem itemItem = ItemManager.GetItemRes(node.itemId);

        if (itemItem == null)
        {
            Debug.LogError("找不到物品id" + node.itemId + "对应的物品");
            return;
        }
        SetIcon(itemItem.picname);
        SetMoneyType((ProceedsType)node.processType);

        if (subId > node.mallItems.Length)
        {
            return;
        }

        MallItemInfo mii = node.mallItems[subId];

        if (mii == null)
        {
            return;
        }

        SetCurPrice(mii.processNow);
        SetDiscount(mii.processOrignal, mii.processNow);
        countLb.text = mii.count.ToString();

        totalTimes = node.limitTimes;
    }
Exemple #2
0
    void OpenGroupItemsForm(int resId)
    {
        if (mlastGroupResId == resId)
        {
            dGroupObj.SetActive(true);

            //if (isOpenFromOtherForm)
            //    this.mView.SetActive(true);

            return;
        }

        mlastGroupResId = resId;

        MallTableItem item = Module.MallTable[resId] as MallTableItem;

        if (item == null)
        {
            Debug.LogError("错误了");
            return;
        }

        int i     = 0;
        int count = Module.GetItemNumByMallId(resId);

        for ( ; i < count; i++)
        {
            if (item.mallItems[i].count > 0)
            {
                CreateGroupItem(item, i);
            }
            else
            {
                if (mGroupItemLists.ContainsKey(i))
                {
                    mGroupItemLists[i].gameObject.SetActive(false);
                }
            }
        }

        for (int m = i; m < mGroupItemLists.Count; m++)
        {
            mGroupItemLists[m].gameObject.SetActive(false);
        }

        ItemTableItem tableItem = ItemManager.GetItemRes(item.itemId);

        if (tableItem == null)
        {
#if UNITY_EDITOR
            GameDebug.LogError("物品表中缺少ID为" + item.itemId + "的物品");
#endif
            return;
        }

        dGroupObj.SetActive(true);
        dDetailLb.text = item.detail;

        dGrid.repositionNow = true;
    }
    /// <summary>
    /// 获取每个商品打包的物品个数,如果result=1,表示没打包;
    /// </summary>
    /// <param name="resId"></param>
    /// <returns></returns>
    public int GetItemNumByMallId(int resId)
    {
        if (!MallTable.ContainsKey(resId))
        {
            return(0);
        }

        MallTableItem item = MallTable[resId] as MallTableItem;

        if (item == null)
        {
            return(0);
        }

        int result = 0;

        foreach (MallItemInfo info in item.mallItems)
        {
            if (info.count > 0)
            {
                result++;
            }
        }

        return(result);
    }
Exemple #4
0
    void BuyMallItem(int resId, int subId)
    {
        MallTableItem item = Module.MallTable[resId] as MallTableItem;

        if (item == null)
        {
            return;
        }

        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        //有钱没;
        MallItemInfo info = item.mallItems[subId];
        ProceedsType pt   = (ProceedsType)item.processType;

        if (pdm.GetProceeds(pt) < info.processNow)
        {
            //PromptUIManager.Instance.AddNewPrompt(ShopModule.GetBuyMoneyNotEnougthStr(pt));
            PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, ShopModule.GetBuyMoneyNotEnougthStr(pt)));
            return;
        }

        //次数够了没;
        switch (mModule.GetLimitTypeByID(resId))
        {
        case MallLimitType.ERROR:
            GameDebug.LogError("数据错误");
            return;

        case MallLimitType.NONE:
            break;

        case MallLimitType.DAY:
        case MallLimitType.FOREVER:
            if (mModule.GetPlayerBuyTimes(resId) >= item.limitTimes)
            {
                //PromptUIManager.Instance.AddNewPrompt(StringHelper.GetString("buy_no_time"));
                PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("buy_no_time")));
                return;
            }
            break;
        }

        MallBuyItemAction param = new MallBuyItemAction();

        param.ResId  = resId;
        param.SubIdx = subId;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_MALL_BUY, param);
    }
Exemple #5
0
    void CreateMallItem(MallTableItem item, MallSubTableType type = MallSubTableType.None)
    {
        GameObject go = WindowManager.Instance.CloneGameObject(mMallItemPrefab);

        if (go == null)
        {
            return;
        }

        go.SetActive(true);

        go.name = (item == null) ? "504" : item.resId.ToString();

        MallItemUI mallItem = new MallItemUI(go);

        switch (type)
        {
        case MallSubTableType.HotSale:
            go.transform.parent     = rGrid.transform;
            go.transform.localScale = Vector3.one;
            mallItem.ShowHuiSprite(false);
            mHotItems.Add(mallItem);
            //rGrid.repositionNow = true;
            break;

        case MallSubTableType.LimitCount:
            go.transform.parent     = xGrid.transform;
            go.transform.localScale = Vector3.one;
            mLimitItems.Add(mallItem);
            //xGrid.repositionNow = true;
            break;

        default:
            GameDebug.LogError("商城商品所在分栏错误");
            break;
        }

        if (item != null)
        {
            if (!mAllItemsLists.ContainsKey(item.resId))
            {
                mAllItemsLists.Add(item.resId, mallItem);
            }
        }

        mallItem.SetData(item);
        UIEventListener.Get(go).onClick = onMallItemClick;
    }
    public MallLimitType GetLimitTypeByID(int resId)
    {
        if (!MallTable.ContainsKey(resId))
        {
            return(MallLimitType.ERROR);
        }

        MallTableItem item = MallTable[resId] as MallTableItem;

        if (item == null)
        {
            return(MallLimitType.ERROR);
        }

        return((MallLimitType)item.limitType);
    }
    public int GetItemIdByMallId(int resId)
    {
        if (!MallTable.ContainsKey(resId))
        {
            return(-1);
        }

        MallTableItem item = MallTable[resId] as MallTableItem;

        if (item == null)
        {
            return(-1);
        }

        return(item.itemId);
    }
    public BetterList <MallTableItem> GetEffectMallItems()
    {
        BetterList <MallTableItem> list = new BetterList <MallTableItem>();

        //foreach (MallTableItem item in MallTable)
        foreach (int key in MallTable.Keys)
        {
            MallTableItem item = MallTable[key] as MallTableItem;
            if (item == null)
            {
                continue;
            }

            if (item.saleType == 1)
            {
                list.Add(item);
            }
        }

        return(list);
    }
Exemple #9
0
    void onMallBuy(EventBase ev)
    {
        MallUIEvent mallEvent = ev as MallUIEvent;

        if (mallEvent == null || !Module.MallTable.ContainsKey(mallEvent.resId))
        {
            return;
        }

        int resId = mallEvent.resId;
        int subId = mallEvent.subId;

        MallTableItem item = Module.MallTable[resId] as MallTableItem;

        uint count = item.mallItems[subId].count;

        string content = StringHelper.GetString("egg_get_item") + ItemManager.getItemNameWithColor(item.itemId) + " X ";

        PopTipManager.Instance.AddNewTip(content + count);

        updateMallUI();
    }
Exemple #10
0
    void CreateGroupItem(MallTableItem item, int idx)
    {
        GameObject go = null;

        if (!mGroupItemLists.ContainsKey(idx))
        {
            go = WindowManager.Instance.CloneGameObject(mGroupItemPrefab);
        }
        else
        {
            go = mGroupItemLists[idx].gameObject;
        }

        if (go == null)
        {
            return;
        }

        go.SetActive(true);
        go.name                 = item.resId + "_" + idx;
        go.transform.parent     = dGrid.transform;
        go.transform.localScale = Vector3.one;

        MallGroupItemUI mallItem = new MallGroupItemUI(go);

        mallItem.SetData(item, (uint)idx);
        UIEventListener.Get(go).onClick = onGroupItemClick;


        if (!mGroupItemLists.ContainsKey(idx))
        {
            mGroupItemLists.Add(idx, mallItem);
        }
        else
        {
            mGroupItemLists[idx] = mallItem;
        }
    }
Exemple #11
0
    void OpenBuyForm(int resId)
    {
        PlayerDataModule playerModule = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (playerModule == null)
        {
            GameDebug.LogError("player data is null!");
            return;
        }

        if (!Module.MallTable.ContainsKey(resId))
        {
            return;
        }

        MallTableItem item = Module.MallTable[resId] as MallTableItem;
        //EventDelegate.Add(gBuyBtn.onClick, OnBuyClick);

        ItemTableItem tableItem = ItemManager.GetItemRes(item.itemId);

        if (tableItem == null)
        {
#if UNITY_EDITOR
            GameDebug.LogError("物品表中缺少ID为" + item.itemId + "的物品");
#endif
            return;
        }

        if (!mAllItemsLists.ContainsKey(resId))
        {
            return;
        }

        MallItemUI itemUI = mAllItemsLists[resId] as MallItemUI;
        if (itemUI == null || !itemUI.MallCanOpenBuyForm)
        {
            return;
        }

        //gNameLb.text = tableItem.name;
        gNameLb.text       = ItemManager.getItemNameWithColor(item.itemId);
        gItemDetailLb.text = tableItem.desc;
        gGetDetailLb.text  = tableItem.desc0;
        UIAtlasHelper.SetSpriteImage(gIconSp, tableItem.picname, true);
        UIAtlasHelper.SetSpriteByMoneyType(gMoneySp, (ProceedsType)item.processType);
        gMoneySp.transform.localScale = new Vector3(0.5f, 0.5f, 1f);

        uint moneyNum = item.mallItems[0].processNow;
        if (playerModule.GetProceeds((ProceedsType)item.processType) < moneyNum)
        {
            gMoneyLb.text = StringHelper.StringWithColor(FontColor.Red, moneyNum.ToString());
        }
        else
        {
            gMoneyLb.text = moneyNum.ToString();
        }

        gItemTypeLb.text = ItemManager.GetItemTypeStr(item.itemId);

        gBuyObj.SetActive(true);
    }
Exemple #12
0
    public void SetData(MallTableItem node)
    {
        if (node == null)
        {
            SetName("");

            huiSp.gameObject.SetActive(true);
            nullLb.gameObject.SetActive(true);

            icon.gameObject.SetActive(false);
            moneyLb.gameObject.SetActive(false);
            moneySp.gameObject.SetActive(false);
            countLb.gameObject.SetActive(false);
            discountSp.gameObject.SetActive(false);
            discountLb.gameObject.SetActive(false);
            effectSp.gameObject.SetActive(false);
            orignalPriceLb.gameObject.SetActive(false);
            orignalPriceSp.gameObject.SetActive(false);
            limitTimesLb.gameObject.SetActive(false);
            limitTimesSp.gameObject.SetActive(false);

            return;
        }

        ItemTableItem itemItem = ItemManager.GetItemRes(node.itemId);

        if (itemItem == null)
        {
            Debug.LogError("找不到物品id" + node.itemId + "对应的物品");
            return;
        }
        //SetName(itemItem.name);
        SetName(ItemManager.getItemNameWithColor(node.itemId));
        SetIcon(itemItem.picname);
        SetMoneyType((ProceedsType)node.processType);

        uint priceOrig = node.mallItems[0].processOrignal;
        uint priceNow  = node.mallItems[0].processNow;

        curPrice = priceNow;

        SetOrignalPrice(priceOrig);
        SetCurPrice(priceNow);

        totalTimes = node.limitTimes;
        switch ((MallLimitType)node.limitType)
        {
        case MallLimitType.NONE:
            limitTimesLb.gameObject.SetActive(false);
            limitTimesSp.gameObject.SetActive(false);
            break;

        case MallLimitType.DAY:
        case MallLimitType.FOREVER:
            limitTimesLb.gameObject.SetActive(true);
            limitTimesSp.gameObject.SetActive(true);
            break;
        }
        countLb.text = "x" + node.mallItems[0].count.ToString();
        int saleNum = (int)((float)priceNow / (float)priceOrig * 10f);

        discountLb.text = saleNum + "折";

        bool isShow = priceNow < priceOrig;

        discountSp.gameObject.SetActive(isShow);
        discountLb.gameObject.SetActive(isShow);
        effectSp.gameObject.SetActive(isShow);
        orignalPriceLb.gameObject.SetActive(false);
        orignalPriceSp.gameObject.SetActive(false);
        nullLb.gameObject.SetActive(false);
    }