Example #1
0
    private void OnTavernBuyOK(PComItemList ret, int itemID, int itemCount, TavernBuyAction buyAction)
    {
        // ui显示
        Debug.Log("OnTavernBuyOK");

        List <ItemInfo> list = new List <ItemInfo>();

        bool needRequestBagList  = false;
        bool needRequestHeroList = false;

        foreach (var item in ret.item)
        {
            ItemInfo itemInfo = new ItemInfo();
            itemInfo.Deserialize(item);


            if (itemInfo.Cfg.Type == (int)ItemType.CARD)
            {
                // 如果是英雄卡的话
                HeroInfo heroInfo = UserManager.Instance.GetHeroInfoByUnitID(itemInfo.Cfg.MatchHero);
                if (heroInfo != null)
                {
                    // 转换为灵魂石
                    //                    needRequestBagList = true;
                    //                    ItemInfo souldInfo = new ItemInfo();
                    //                    souldInfo.ConfigID = heroInfo.Cfg.Cost;
                    //                    souldInfo.Number = itemInfo.Cfg.SoulStoneNum;
                    //                    list.Add(itemInfo);
                }
                else
                {
                    list.Add(itemInfo);

                    // 获得新英雄
                    needRequestHeroList = true;
                }
            }
            else
            {
                if (!item.isFixGet)
                {
                    list.Add(itemInfo);
                }
            }
        }

        UIManager.Instance.OpenWindow <UITavernGetItemView>(list, itemID, itemCount, buyAction);

        // 添加物品
        UserManager.Instance.AddItem(ret, true);

        if (needRequestHeroList)
        {
            UserManager.Instance.RequestUserInfo();
        }
    }
Example #2
0
    // 请求自己的公会数据
    public void RequestGuildInfo()
    {
        Net.Send(eCommand.ADJUST_PLAYER_LEVEL, (buffer) =>
        {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.ADJUST_PLAYER_LEVEL))
            {
                return;
            }

            UIManager.Instance.RefreshWindow <UIGuildInfoView>();
        });
    }
Example #3
0
    private void OnMsgSysAddGood(byte[] buffer)
    {
        PComItemList ret = Net.Deserialize <PComItemList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.SYS_ADD_GOOD))
        {
            return;
        }

        UserManager.Instance.AddItem(ret, false);

        // 刷新ui
        UIManager.Instance.RefreshWindow <UINewBagView>();
        EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
    }
Example #4
0
    // 酒馆抽卡,元宝10次
    public void RequestTavernGoldBuy10()
    {
        NetworkManager.Instance.Send(eCommand.TEN_CONTINUE_DIAMOND_LUCK_DRAW, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.TEN_CONTINUE_DIAMOND_LUCK_DRAW))
            {
                return;
            }

            OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_GOLD_ITEM_ID, 10, TavernBuyAction.BUY_GOLD_10);
            UserManager.Instance.CostMoney(GameConfig.LUCK_DRAW_GOLD_10_COST, PriceType.GOLD);

            RefreshUI();
        });
    }
Example #5
0
    private void OnMsgGetKnapsackInfo(byte[] buffer)
    {
        PComItemList ret = Net.Deserialize <PComItemList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_KNAPSACK_INFO))
        {
            return;
        }

        // 添加物品
        ItemList.Clear();
        AddItem(ret, false);

        UIManager.Instance.RefreshWindow <UINewBagView>();
    }
Example #6
0
    // 酒馆抽卡,银两1次
    public void RequestTavernMoneyBuy1()
    {
        NetworkManager.Instance.Send(eCommand.SIGLE_GOLD_LUCK_DRAW, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.SIGLE_GOLD_LUCK_DRAW))
            {
                return;
            }

            OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_MONEY_ITEM_ID, 1, TavernBuyAction.BUY_MONEY_1);

            UserManager.Instance.CostMoney(GameConfig.LUCK_DRAW_MONEY_1_COST, PriceType.MONEY);

            RefreshUI();
        });
    }
Example #7
0
    // 酒馆抽卡,元宝免费
    public void RequestTavernGoldFreeBuy()
    {
        NetworkManager.Instance.Send(eCommand.FREE_DIAMOND_LUCK_DRAW, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.FREE_DIAMOND_LUCK_DRAW))
            {
                return;
            }

            OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_GOLD_ITEM_ID, 1, TavernBuyAction.BUY_GOLD_1);

            GoldLeftCount        = Mathf.Max(0, GoldLeftCount - 1);
            GoldNextFreeTime     = GameConfig.LUCK_DRAW_GOLD_FREE_CD;
            GoldNextFreeSyncTime = Time.realtimeSinceStartup;

            RefreshUI();
        });
    }
Example #8
0
    // 请求领取最高排名奖励
    public void RequestGetHighAward(int highID)
    {
        PCMInt data = new PCMInt();

        data.arg = highID;

        NetworkManager.Instance.Send(eCommand.ATHTECLIC_RANK_AWARD_OBTAIN, data, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.ATHTECLIC_RANK_AWARD_OBTAIN))
            {
                return;
            }

            MyHighAwardList[highID] = true;
            UserManager.Instance.AddItemWithUI(ret);
            UIManager.Instance.RefreshWindow <UIPVPAwardView>();
        });
    }
Example #9
0
    // 有一个界面提示获得新物品
    public void AddItemWithUI(PComItemList ret)
    {
        List <ItemInfo> list = new List <ItemInfo>();

        foreach (var item in ret.item)
        {
            ItemInfo itemInfo = new ItemInfo();
            itemInfo.Deserialize(item);
            if (!item.isFixGet)
            {
                list.Add(itemInfo);
            }
        }

        UIManager.Instance.OpenWindow <UIGetItemView>(list);

        // 添加物品
        AddItem(ret, true);
    }
Example #10
0
    public void AddItem(PComItemList data, bool isNewItem)
    {
        // 添加物品
        List <ItemInfo> list = new List <ItemInfo>();

        foreach (var item in data.item)
        {
            if (item.type == (eItem)ItemType.MONEY)
            {
                // 货币类型
                if (item.cfgId == GameConfig.ITEM_CONFIG_ID_MONEY)
                {
                    Money += item.num;
                }
                else if (item.cfgId == GameConfig.ITEM_CONFIG_ID_WOOD)
                {
                    Wood += item.num;
                }
                else if (item.cfgId == GameConfig.ITEM_CONFIG_ID_STONE)
                {
                    Stone += item.num;
                }
                else if (item.cfgId == GameConfig.ITEM_CONFIG_ID_GOLD)
                {
                    Gold += item.num;
                }
                continue;
            }
            else if (item.type == (eItem)ItemType.CARD)
            {
                continue;
            }

            ItemInfo itemInfo = new ItemInfo();
            itemInfo.Deserialize(item);
            list.Add(itemInfo);
        }

        AddItem(list, isNewItem);
    }
Example #11
0
    // 购买物品
    public void RequestBuyItem(ShopType shopType, int shopItemID, bool isFixGet)
    {
        ShopItemInfo info = ShopItemInfo(shopType, shopItemID, isFixGet);

        if (info == null)
        {
            return;
        }

        if (GetMoney(info.PriceType) < info.Price)
        {
            UIUtil.ShowMsgFormat("MSG_SHOP_MONEY_LIMIT");
            return;
        }

        PBuyGood data = new PBuyGood();

        data.shopType = (int)shopType;
        data.goodId   = shopItemID;
        data.isFix    = isFixGet;

        NetworkManager.Instance.Send(eCommand.BUY_SHOP_GOOD, data, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.BUY_SHOP_GOOD))
            {
                return;
            }

            info.IsSoldOut = true;
            UserManager.Instance.AddItemWithUI(ret);
            CostMoney(info.Price, info.PriceType);
            UIManager.Instance.RefreshWindow <UINewBagView>();
            UIManager.Instance.RefreshWindow <UIShopView>();
            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
        });
    }
Example #12
0
    // 使用物品
    public void ReqUseItem(long itemID)
    {
        PUseCommonItem data = new PUseCommonItem();

        data.comItem.Add(new PComItem {
            id  = itemID,
            num = 1,
        });

        Net.Send(eCommand.USE_PROP_TO_GAINGOOD, data, (buffer) => {
            PComItemList ret = Net.Deserialize <PComItemList>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.USE_PROP_TO_GAINGOOD))
            {
                return;
            }

            UseItem(itemID, 1);

            AddItem(ret, true);

            EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE);
            UIManager.Instance.RefreshWindow <UINewBagView>();
        });
    }