Ejemplo n.º 1
0
        /// <summary>
        /// 通过[宠物品质]二分快速查表
        /// </summary>
        /// <param name="quality">宠物品质</param>
        /// <returns></returns>
        public static IEnumerable <PetGuiYuanDataBase> Query(this List <PetGuiYuanDataBase> sorted, uint quality)
        {
            var key = new PetGuiYuanDataBase()
            {
                quality = quality
            };
            var comparer = new Comparer1();
            var from     = sorted.BinarySearch(key, comparer);

            if (from < 0)
            {
                yield break;
            }
            var to = from + 1;

            while (from > 0 && comparer.Compare(key, sorted[from - 1]) == 0)
            {
                from--;
            }
            while (to < sorted.Count && comparer.Compare(key, sorted[to]) == 0)
            {
                to++;
            }
            for (var i = from; i < to; i++)
            {
                yield return(sorted[i]);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 通过[宠物品质 + 成长状态]二分快速查表
        /// </summary>
        /// <param name="quality">宠物品质</param>
        /// <param name="growStatus">成长状态</param>
        /// <returns></returns>
        public static PetGuiYuanDataBase Query(this List <PetGuiYuanDataBase> sorted, uint quality, uint growStatus)
        {
            var key = new PetGuiYuanDataBase()
            {
                quality = quality, growStatus = growStatus
            };
            var comparer = new Comparer2();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(PetGuiYuanDataBase));
        }
Ejemplo n.º 3
0
    bool CheckItem()
    {
        PetDataBase pdb = petDataManager.GetPetDataBase(CurPet.PetBaseID);

        if (pdb == null)
        {
            Log.Error("pdb is null id is " + CurPet.PetBaseID.ToString());
            return(false);
        }
        int status = CurPet.GetProp((int)PetProp.PetGuiYuanStatus);
        PetGuiYuanDataBase guiyuandb = GameTableManager.Instance.GetTableItem <PetGuiYuanDataBase>(pdb.petQuality, status);

        if (guiyuandb != null)
        {
            if (!MainPlayerHelper.IsHasEnoughMoney(ClientMoneyType.Gold, guiyuandb.consumeMoney))
            {
                StopGuiyuan();
                DataManager.Manager <Mall_HuangLingManager>().ShowExchange((uint)ErrorEnum.NotEnoughGold, ClientMoneyType.Gold, "提示", "去兑换", "取消");
                return(false);
            }
        }


        int count = DataManager.Manager <ItemManager>().GetItemNumByBaseId(m_nItemID);

        if (count <= 0)
        {
            if (autoConsume)
            {
                if (!ShowColdLabel(m_nItemID))
                {
                    StopGuiyuan();
                    TipsManager.Instance.ShowTipsById(5);
                    return(false);
                }
            }
            else
            {
                StopGuiyuan();
                TipsManager.Instance.ShowTipsById(6);
                return(false);
            }
        }
        return(true);
    }
Ejemplo n.º 4
0
    void InitData()
    {
        if (CurPet == null)
        {
            //  Log.Error(" curpet is null");
            return;
        }
        PetDataBase pdb = petDataManager.GetPetDataBase(CurPet.PetBaseID);

        if (pdb == null)
        {
            Log.Error("pdb is null id is " + CurPet.PetBaseID.ToString());
            return;
        }
        // DataManager.Manager<UIManager>().SetSpriteDynamicIcon(m_sprite_guiyuantopicon, pdb.icon);
        UIManager.GetTextureAsyn(pdb.icon, ref m_guiyuantopIconAsynSeed, () =>
        {
            if (null != m__guiyuantopicon)
            {
                m__guiyuantopicon.mainTexture = null;
            }
        }, m__guiyuantopicon, false);
        Transform bgTrans = m__guiyuantopicon.transform.Find("pingzhi_box");

        if (bgTrans)
        {
            UISprite bgSpr = bgTrans.GetComponent <UISprite>();
            if (bgSpr)
            {
                //    string bgSpriteName = ItemDefine.GetItemBorderIcon(pdb.flag);
                //    DataManager.Manager<UIManager>().SetSpriteDynamicIcon(bgSpr, bgSpriteName);
                UIManager.GetQualityAtlasAsyn(pdb.flag, ref m_guiyuanQualityAsynSeed, () =>
                {
                    if (null != bgSpr)
                    {
                        bgSpr.atlas = null;
                    }
                }, bgSpr);
            }
        }
        int status = CurPet.GetProp((int)PetProp.PetGuiYuanStatus);
        PetGuiYuanDataBase guiyuandb = GameTableManager.Instance.GetTableItem <PetGuiYuanDataBase>(pdb.petQuality, status);

        if (guiyuandb != null)
        {
            m_label_guiyuanCommon_xiaohaogold.text = guiyuandb.consumeMoney.ToString();
        }
        int secondKey = 0;

        if (status == (int)PetGrowState.Perfect)
        {
            secondKey = 1;
        }
        List <uint> itemList = GameTableManager.Instance.GetGlobalConfigList <uint>("GYItem", secondKey.ToString());

        if (pdb == null)
        {
            Log.Error(" petdata base is null baseid is " + CurPet.PetBaseID.ToString());
            return;
        }
        uint itemID = 0;
        uint qua    = pdb.petQuality;

        if (qua == 8)
        {
            itemID = itemList[1];
        }
        else
        {
            itemID = itemList[0];
        }

        m_nItemID = itemID;
        int itemCount = DataManager.Manager <ItemManager>().GetItemNumByBaseId(itemID);

        ShowColdLabel(itemID);
        ItemDataBase db = GameTableManager.Instance.GetTableItem <ItemDataBase>(itemID);

        if (db != null)
        {
            m_label_guiyuanCommon_name.text = db.itemName;
        }

        UIItem.AttachParent(m__guiyuanCommon_icon.transform, itemID, (uint)itemCount, ShowGuiYuanGetWayCallBack);
        m_label_guiyuanCommon_number.text = StringUtil.GetNumNeedString(itemCount, 1);


        if (status == (int)PetGrowState.Perfect)
        {
            m_label_guiyuannotingtext.text = DataManager.Manager <TextManager>().GetLocalText(LocalTextType.Local_Txt_Pet_guiyuanmanjineirong);
            ShowGaojiContainer(true);
            m_label_putongtitletext.text = CommonData.GetLocalString("原天赋");
            m_label_gaojititletext.text  = CommonData.GetLocalString("新天赋");
            m_sprite_titlebg.gameObject.SetActive(true);
            m_label_putongjiebian.gameObject.SetActive(true);
            m_label_gaojijiebian.gameObject.SetActive(true);
            int commonLv = CurPet.GetProp((int)PetProp.CommonJieBianLv);
            m_label_putongjiebian.text = DataManager.Manager <PetDataManager>().GetJieBianString(commonLv);
            int advLv = CurPet.GetProp((int)PetProp.AdvaceJieBianLv);
            m_label_gaojijiebian.text = DataManager.Manager <PetDataManager>().GetJieBianString(advLv);
            m_trans_zuidajiebian.gameObject.SetActive(true);

            m_label_maxjiebian.text = pdb.maxJiebian;

            m_trans_PtGuiyuanGrowCotainer.gameObject.SetActive(false);
        }
        else
        {
            m_label_guiyuannotingtext.text = DataManager.Manager <TextManager>().GetLocalText(LocalTextType.Local_Txt_Pet_guiyuanweimanjineirong);
            ShowGaojiContainer(false);
            m_sprite_titlebg.gameObject.SetActive(false);
            m_label_putongtitletext.text = CommonData.GetLocalString("洗炼");
            m_label_gaojititletext.text  = CommonData.GetLocalString("洗炼");
            m_label_putongjiebian.gameObject.SetActive(false);
            m_label_gaojijiebian.gameObject.SetActive(false);
            m_trans_zuidajiebian.gameObject.SetActive(false);
            m_trans_PtGuiyuanGrowCotainer.gameObject.SetActive(true);
        }
        InitGaojiData();
    }