コード例 #1
0
        /// <summary>
        /// 通过[战魂类型]二分快速查表
        /// </summary>
        /// <param name="petType">战魂类型</param>
        /// <returns></returns>
        public static IEnumerable <PetRecommendDataBase> Query(this List <PetRecommendDataBase> sorted, uint petType)
        {
            var key = new PetRecommendDataBase()
            {
                petType = petType
            };
            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]);
            }
        }
コード例 #2
0
        /// <summary>
        /// 通过[战魂类型 + 战魂性格]二分快速查表
        /// </summary>
        /// <param name="petType">战魂类型</param>
        /// <param name="petCharacter">战魂性格</param>
        /// <returns></returns>
        public static PetRecommendDataBase Query(this List <PetRecommendDataBase> sorted, uint petType, uint petCharacter)
        {
            var key = new PetRecommendDataBase()
            {
                petType = petType, petCharacter = petCharacter
            };
            var comparer = new Comparer2();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(PetRecommendDataBase));
        }
コード例 #3
0
ファイル: PetLearnSkill.cs プロジェクト: zuojiashun/src
    void InitScrollView()
    {
        if (CurPet == null)
        {
            return;
        }
        m_btn_skill_item.gameObject.SetActive(false);
        List <SkillDatabase> upList   = GameTableManager.Instance.GetTableList <SkillDatabase>();
        List <SkillDatabase> typeList = upList.FindAll(x => { return(x.petType == (int)CurType && x.wdLevel == 1); });

        if (CurType == PetSkillType.Recommend)
        {
            typeList.Clear();
            PetDataBase pdb = GameTableManager.Instance.GetTableItem <PetDataBase>(petDataManager.CurPet.PetBaseID);
            if (pdb == null)
            {
                Log.Error("db is null");
                return;
            }
            int character            = CurPet.GetProp((int)PetProp.Character);
            PetRecommendDataBase rdb = GameTableManager.Instance.GetTableItem <PetRecommendDataBase>((uint)pdb.petType, character);
            if (rdb == null)
            {
                Log.Error("rdb is null");
                return;
            }
            if (rdb != null)
            {
                string   idStr   = rdb.skillArray;
                string[] idArray = idStr.Split('_');
                foreach (var str in idArray)
                {
                    int id = 0;
                    if (int.TryParse(str, out id))
                    {
                        SkillDatabase db = GameTableManager.Instance.GetTableItem <SkillDatabase>((uint)id, 1);
                        if (db != null)
                        {
                            typeList.Add(db);
                        }
                    }
                }
            }
        }

        m_typeList = typeList;
        if (null != m_ctor_skill_scrollview)
        {
            if (!m_bInitSkillCreator)
            {
                m_bInitSkillCreator = true;
                GameObject go = m_btn_skill_item.gameObject;
                go.SetActive(false);
                m_ctor_skill_scrollview.RefreshCheck();
                m_ctor_skill_scrollview.Initialize <PetSkillItem>(go, OnUpdateUIGrid, OnUIGridEventDlg);
            }
            m_ctor_skill_scrollview.CreateGrids(typeList.Count);
        }

        bool bReset = false;

        CurSkillDataBase = typeList[0];

        SetPetItemHighLight();
    }