예제 #1
0
    public bool IsKnightCanUP()
    {
        bool bCanUP = false;
        uint lv     = DataManager.Manager <RideManager>().KnightLevel;

        HoursemanShipUPLevel updb = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv + 1);

        if (updb == null)
        {//最高等级
            return(false);
        }
        if (m_knightLevelUPIdList == null)
        {
            m_knightLevelUPIdList = GameTableManager.Instance.GetGlobalConfigKeyList("Knight_ExpItem");
        }
        if (m_knightLevelUPIdList != null)
        {
            foreach (var item in m_knightLevelUPIdList)
            {
                uint itemID = 0;
                if (uint.TryParse(item, out itemID))
                {
                    int num = DataManager.Manager <ItemManager>().GetItemNumByBaseId(itemID);
                    if (num > 0)
                    {
                        bCanUP = true;
                        break;
                    }
                }
            }
        }
        return(bCanUP);
    }
예제 #2
0
        /// <summary>
        /// 通过[等级]二分快速查表
        /// </summary>
        /// <param name="levelID">等级</param>
        /// <returns></returns>
        public static HoursemanShipUPLevel Query(this List <HoursemanShipUPLevel> sorted, uint levelID)
        {
            var key = new HoursemanShipUPLevel()
            {
                levelID = levelID
            };
            var comparer = new Comparer1();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(HoursemanShipUPLevel));
        }
예제 #3
0
 void SetNextAttr(HoursemanShipUPLevel db, Color c)
 {
     if (db == null)
     {
         return;
     }
     m_label_jingliNum.text   = db.jingshen.ToString();
     m_label_zhiliNum.text    = db.zhili.ToString();
     m_label_minjieNum.text   = db.minjie.ToString();
     m_label_tiliNum.text     = db.tizhi.ToString();
     m_label_liliangNum.text  = db.liliang.ToString();
     m_label_jingliNum.color  = c;
     m_label_zhiliNum.color   = c;
     m_label_minjieNum.color  = c;
     m_label_tiliNum.color    = c;
     m_label_liliangNum.color = c;
 }
예제 #4
0
    public bool IsKnightCanBreak()
    {
        bool bCanBreak = false;
        uint rank      = DataManager.Manager <RideManager>().KnightBreakLevel;
        uint curExp    = DataManager.Manager <RideManager>().KnightExp;
        uint lv        = DataManager.Manager <RideManager>().KnightLevel;

        HoursemanShipUPLevel  updb   = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv);
        HoursemanShipUPDegree nextdb = GameTableManager.Instance.GetTableItem <HoursemanShipUPDegree>(rank + 1);

        if (nextdb != null && updb.breakLevel != 0 && curExp >= updb.uplevelexp)
        {
            int num = DataManager.Manager <ItemManager>().GetItemNumByBaseId(nextdb.breakItemID);
            if (num >= nextdb.itemNum)
            {
                bCanBreak = true;
            }
        }
        return(bCanBreak);
    }
예제 #5
0
    public bool IsShowRideRedPoint()
    {
        uint rank   = DataManager.Manager <RideManager>().KnightBreakLevel;
        uint curExp = DataManager.Manager <RideManager>().KnightExp;
        uint lv     = DataManager.Manager <RideManager>().KnightLevel;

        HoursemanShipUPLevel updb = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv + 1);

        if (updb == null)
        {
            return(false);
        }
        HoursemanShipUPDegree nextdb = GameTableManager.Instance.GetTableItem <HoursemanShipUPDegree>(rank + 1);

        if (nextdb != null && updb.breakLevel != 0 && curExp >= updb.uplevelexp)
        {
            return(IsKnightCanBreak());
        }
        else
        {
            return(IsKnightCanUP());
        }
    }
예제 #6
0
    void InitAttrUI()
    {
        uint lv                 = DataManager.Manager <RideManager>().KnightLevel;
        uint curExp             = DataManager.Manager <RideManager>().KnightExp;
        uint totalExp           = curExp;
        HoursemanShipUPLevel db = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv);

        if (db != null)
        {
            SetCurAttr(db, m_beforeColor);
            totalExp = db.uplevelexp;
        }
        //if(db.breakLevel != 0)
        //{
        //    SetNextAttr(db, m_beforeColor);
        //}
        //else
        {
            HoursemanShipUPLevel nextDb = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv + 1);
            if (nextDb != null)
            {
                SetNextAttr(nextDb, m_afterColor);
            }
            else
            {
                SetNextAttr(db, m_afterColor);
                SetCurAttr(db, m_afterColor);
            }
        }
        m_label_levelNum.text  = lv.ToString();
        m_label_exp2Label.text = string.Format("{0}/{1}", curExp, totalExp);
        if (totalExp != 0)
        {
            float fv = curExp * 1.0f / totalExp;
            m_slider_Exp2Slider.value = fv;
        }
    }
예제 #7
0
    void InitRankUI()
    {
        uint rank   = DataManager.Manager <RideManager>().KnightBreakLevel;
        uint curExp = DataManager.Manager <RideManager>().KnightExp;
        uint lv     = DataManager.Manager <RideManager>().KnightLevel;
        HoursemanShipUPDegree db = GameTableManager.Instance.GetTableItem <HoursemanShipUPDegree>(rank);

        if (db != null)
        {
            SetCurRank(db, m_beforeColor);
        }
        HoursemanShipUPLevel  updb   = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv);
        HoursemanShipUPDegree nextdb = GameTableManager.Instance.GetTableItem <HoursemanShipUPDegree>(rank + 1);

        if (nextdb != null && updb.breakLevel != 0 && curExp >= updb.uplevelexp)
        {
            SetNextRank(nextdb, m_afterColor);
        }
        else
        {
            SetCurRank(db, m_beforeColor);
            SetNextRank(db, m_beforeColor);
        }
    }
예제 #8
0
    void ShowMaxAndBreak()
    {
        uint lv     = DataManager.Manager <RideManager>().KnightLevel;
        uint curExp = DataManager.Manager <RideManager>().KnightExp;
        HoursemanShipUPLevel nextDb = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv + 1);

        if (nextDb != null)
        {
            m_trans_Max.gameObject.SetActive(false);
            HoursemanShipUPLevel db = GameTableManager.Instance.GetTableItem <HoursemanShipUPLevel>(lv);
            if (db != null)
            {
                if (db.breakLevel != 0 && curExp >= db.uplevelexp)
                {
                    m_trans_LevelUp.gameObject.SetActive(false);
                    m_trans_LevelBreak.gameObject.SetActive(true);
                }
                else
                {
                    //没有突破成功的消息发下来  只能通过按钮隐现来判断是突破还是升级
                    if (!m_trans_LevelUp.gameObject.activeSelf)
                    {
                        AddParticle();
                    }
                    m_trans_LevelUp.gameObject.SetActive(true);
                    m_trans_LevelBreak.gameObject.SetActive(false);
                }
            }
        }
        else
        {
            m_trans_Max.gameObject.SetActive(true);
            m_trans_LevelUp.gameObject.SetActive(false);
            m_trans_LevelBreak.gameObject.SetActive(false);
        }
    }