Ejemplo n.º 1
0
        /// <summary>
        /// 通过[技能ID]二分快速查表
        /// </summary>
        /// <param name="skillId">技能ID</param>
        /// <returns></returns>
        public static RideSkillDes Query(this List <RideSkillDes> sorted, uint skillId)
        {
            var key = new RideSkillDes()
            {
                skillId = skillId
            };
            var comparer = new Comparer1();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(RideSkillDes));
        }
Ejemplo n.º 2
0
    public void ShowUI(SkillTipsType type, ProtoBuf.IExtensible db, int lv = 0)
    {
        if (type == SkillTipsType.Ride)
        {
            RideSkillDes skilldb = (RideSkillDes)db;
            if (skilldb == null)
            {
                return;
            }
            m_label_name.text  = skilldb.skillName;
            m_label_CDNum.text = CommonData.GetLocalString("冷却时间:") + skilldb.skillCD.ToString() + CommonData.GetLocalString("秒");
            // m_label_ManaCostNum.text = skilldb.costrepletion.ToString();
            m_label_result.text = skilldb.skillDesc;
            string showStr = CommonData.GetLocalString("饱食度消耗:") + skilldb.costrepletion.ToString();
            m_label_ManaLabel.text = showStr;
//             m_sprite_iconspr.atlas = DataManager.Manager<UIManager>().GetAtlasByIconName(skilldb.skillIcon);
//             m_sprite_iconspr.spriteName = skilldb.skillIcon;
            UIManager.GetTextureAsyn(skilldb.skillIcon, ref m_curIconAsynSeed, () =>
            {
                if (null != m__iconspr)
                {
                    m__iconspr.mainTexture = null;
                }
            }, m__iconspr);
            // DataManager.Manager<UIManager>().SetSpriteDynamicIcon(m_sprite_iconspr, skilldb.skillIcon, true, true);
            m_label_skillstate.text = CommonData.GetLocalString("通用");
            m_label_attackdis.text  = CommonData.GetLocalString("攻击距离:无");
            m_label_level.gameObject.SetActive(false);
        }
        else
        {
            m_label_level.gameObject.SetActive(true);
            SkillDatabase skilldb = (SkillDatabase)db;
            if (skilldb == null)
            {
                return;
            }
            if (type == SkillTipsType.Pet)
            {
                string showStr = CommonData.GetLocalString("道具消耗:") + GetItemStr(skilldb.skillPlayCostItem);
                m_label_ManaLabel.text = showStr;

                m_label_skillstate.text = DataManager.Manager <PetDataManager>().GetSkillTypeStr((PetSkillType)skilldb.petType);
                GameCmd.PetSkillObj obj = DataManager.Manager <PetDataManager>().GetCurPetSkillInfo(skilldb.wdID);
                if (obj != null)
                {
                    m_label_level.text = obj.lv.ToString();
                }
                else
                {
                    m_label_level.text = lv.ToString();
                }
            }
            else
            {
                string showStr = CommonData.GetLocalString("法力消耗:") + skilldb.costsp.ToString();
                m_label_ManaLabel.text = showStr;
                SkillInfo sinfo = DataManager.Manager <LearnSkillDataManager>().GetOwnSkillInfoById(skilldb.wdID);
                if (sinfo != null)
                {
                    m_label_level.text = sinfo.level.ToString();
                }
                else
                {
                    m_label_level.text = lv.ToString();
                }
                m_label_skillstate.text = DataManager.Manager <LearnSkillDataManager>().GetStatus(skilldb.dwSkillSatus);
            }
            m_label_name.text  = skilldb.strName;
            m_label_CDNum.text = CommonData.GetLocalString("冷却时间:") + skilldb.dwIntervalTime.ToString() + CommonData.GetLocalString("秒");
            if (type == SkillTipsType.Player)
            {
                uint   minusCd = DataManager.Manager <LearnSkillDataManager>().GetHeartCd(skilldb.wdID);
                uint   cd      = skilldb.dwIntervalTime - minusCd;
                string cdStr   = cd.ToString();
                if (minusCd != 0)
                {
                    cdStr = ColorManager.GetColorString(49, 170, 240, 255, cdStr);
                }
                m_label_CDNum.text = CommonData.GetLocalString("冷却时间:") + cdStr + CommonData.GetLocalString("秒");
                string heartDes = DataManager.Manager <LearnSkillDataManager>().GetHeartDes(skilldb.wdID);
                m_label_result.text = skilldb.strDesc + "\n" + ColorManager.GetColorString(49, 170, 240, 255, heartDes);
            }
            else
            {
                m_label_result.text = skilldb.strDesc;
            }
            // DataManager.Manager<UIManager>().SetSpriteDynamicIcon(m_sprite_iconspr, skilldb.iconPath, true, true);
            UIManager.GetTextureAsyn(skilldb.iconPath, ref m_curIconAsynSeed, () =>
            {
                if (null != m__iconspr)
                {
                    m__iconspr.mainTexture = null;
                }
            }, m__iconspr);
//             m_sprite_iconspr.atlas = DataManager.Manager<UIManager>().GetAtlasByIconName( skilldb.iconPath);
//             m_sprite_iconspr.spriteName = skilldb.iconPath;
            m_label_attackdis.text = CommonData.GetLocalString("攻击距离:") + skilldb.dwAttackDis + CommonData.GetLocalString("米");
        }
    }