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; }
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); }
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); }
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); }
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(); }
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; } }
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); }
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); }