예제 #1
0
    void RefreshCostUI(TransExpType ttype)
    {
        if (ttype != TransExpType.None)
        {
            int newLevel = 0;
            if (m_LeftRideData != null)
            {
                if (m_RightRideData != null)
                {
                    newLevel = CaculateLevel(m_LeftRideData, m_RightRideData, ttype);
                }

                m_label_PTxiaohao.text = GetCost(m_LeftRideData, TransExpType.Normal).ToString();
                m_label_WMxiaohao.text = GetCost(m_LeftRideData, TransExpType.Perfect).ToString();
            }
            else
            {
                GetOldRideUIGo().SetActive(false);
                m_label_PTxiaohao.text = "0";
                m_label_WMxiaohao.text = "0";
            }

            if (m_RightRideData != null)
            {
                SetRightNewLevel();
            }
            else if (m_RightRideData == null)
            {
                GetNewRideUIGo().SetActive(false);
            }
        }
    }
예제 #2
0
    void SetRightNewLevel()
    {
        if (m_LeftRideData != null && m_RightRideData != null)
        {
            TransExpType ttype = TransExpType.None;
            if (m_toggle_ptchuancheng.value)
            {
                ttype = TransExpType.Normal;
            }
            else if (m_toggle_wmchuancheng.value)
            {
                ttype = TransExpType.Perfect;
            }

            int level = CaculateLevel(m_LeftRideData, m_RightRideData, ttype);
            m_label_New_level_After.text  = level.ToString();
            m_label_New_level_After.color = level == m_RightRideData.level ? Color.white : Color.green;
            m_label_New_speed_After.text  = RideData.GetSpeedById_Level(m_RightRideData.baseid, level).ToString() + "%";
            m_label_New_speed_After.color = level == m_RightRideData.level ? Color.white : Color.green;
        }
        else
        {
            m_label_New_level_After.text = "0";
            m_label_New_speed_After.text = "0";
        }
    }
예제 #3
0
    int GetCost(RideData leftRideData, TransExpType type)
    {
        int cost = 0;
        int rate = GameTableManager.Instance.GetGlobalConfig <int>("PassOnCostRide", ((int)type * 10).ToString());
        int exp  = GetRideAllExp(leftRideData);

        cost = Mathf.CeilToInt(exp * 1f / rate);
        return(cost);
    }
예제 #4
0
    int CaculateLevel(RideData left, RideData right, TransExpType type)
    {
        int rate = GameTableManager.Instance.GetGlobalConfig <int>("PassOnRateRide", ((int)type * 10).ToString());

        int level = right.level;

        int leftRideExp = GetRideAllExp(left);

        if (leftRideExp <= 0)
        {
            return(level);
        }
        int leftExp = Mathf.CeilToInt(leftRideExp * rate * 0.01f) + right.exp;

        table.RideFeedData feeddata = GameTableManager.Instance.GetTableItem <table.RideFeedData>(right.baseid, level);
        while (feeddata != null)
        {
            leftExp -= (int)feeddata.upExp;
            if (leftExp >= 0)
            {
                level++;
                if (leftExp > 0)
                {
                    feeddata = GameTableManager.Instance.GetTableItem <table.RideFeedData>(right.baseid, level);
                    if (feeddata == null)
                    {
                        level--;
                    }
                }
                else
                {
                    feeddata = null;
                }
            }
            else
            {
                feeddata = null;
            }
        }
        return(level);
    }
예제 #5
0
    public int OnSelectRide(UIRideGrid grid)
    {
        RideData rideData = grid.RideData;

        if (m_RightRideData != null && grid.TransExpSelect == 2)
        {
            OnUnselectRight(); return(0);
        }
        else if (m_LeftRideData != null && grid.TransExpSelect == 1)
        {
            OnUnselectLeft(); return(0);
        }
        else if (m_LeftRideData == null)
        {
            if (rideData.id == DataManager.Manager <RideManager>().Auto_Ride)
            {
                TipsManager.Instance.ShowTips(LocalTextType.Ride_Inherit_chuzhanzhongdezuoqiwufachuancheng);
                return(0);
            }

            if (m_RightRideData != null && m_RightRideData.id == rideData.id)
            {
                TipsManager.Instance.ShowTips(LocalTextType.Ride_Inherit_bunengxuanzetongyigezuoqijinxingchuancheng);

                return(0);
            }
            m_LeftRideData = rideData;
            GetOldRideUIGo().SetActive(true);

            m_widget_old_select.gameObject.SetActive(false);
            m_widget_new_select.gameObject.SetActive(m_RightRideData == null);
            m_label_Old_level_Before.text = rideData.level.ToString();
            m_label_Old_level_After.text  = "0";
            m_label_Old_name.text         = rideData.name;
            m_label_Old_speed_Before.text = rideData.GetSpeed().ToString() + "%";
            m_label_Old_speed_After.text  = RideData.GetSpeedById_Level(rideData.baseid, 0) + "%";

            if (m__Old_icon != null)
            {
                UIManager.GetTextureAsyn(rideData.icon
                                         , ref iconOldAtlas, () =>
                {
                    if (null != m__Old_icon)
                    {
                        m__Icon.mainTexture = null;
                    }
                }, m__Old_icon
                                         , true);


                UISprite border = m__Old_icon.cachedTransform.parent.Find("IconBox").GetComponent <UISprite>();
                if (border != null)
                {
                    UIManager.GetAtlasAsyn(rideData.QualityBorderIcon
                                           , ref borderOldAtlas
                                           , () =>
                    {
                        if (null != border)
                        {
                            border.atlas = null;
                        }
                    }
                                           , border
                                           , true);
                }
            }


            TransExpType ttype = TransExpType.None;
            if (m_toggle_ptchuancheng.value)
            {
                ttype = TransExpType.Normal;
            }
            else if (m_toggle_wmchuancheng.value)
            {
                ttype = TransExpType.Perfect;
            }

            RefreshCostUI(ttype);

            return(1);
        }
        else if (m_RightRideData == null)
        {
            if (m_LeftRideData != null && m_LeftRideData.id == rideData.id)
            {
                TipsManager.Instance.ShowTips(LocalTextType.Ride_Inherit_bunengxuanzetongyigezuoqijinxingchuancheng);
                return(0);
            }
            m_RightRideData = rideData;
            GetNewRideUIGo().SetActive(true);
            m_widget_new_select.gameObject.SetActive(false);
            m_label_New_level_Before.text = m_RightRideData.level.ToString();
            m_label_New_name.text         = rideData.name;
            m_label_New_speed_Before.text = m_RightRideData.GetSpeed().ToString() + "%";

            if (m__New_icon != null)
            {
                UIManager.GetTextureAsyn(rideData.icon
                                         , ref iconNewdAtlas, () =>
                {
                    if (null != m__New_icon)
                    {
                        m__New_icon.mainTexture = null;
                    }
                }, m__New_icon, true);


                UISprite border = m__New_icon.cachedTransform.parent.Find("IconBox").GetComponent <UISprite>();
                if (border != null)
                {
                    UIManager.GetAtlasAsyn(rideData.QualityBorderIcon
                                           , ref borderNewAtlas, () =>
                    {
                        if (null != border)
                        {
                            border.atlas = null;
                        }
                    }, border, true);
                }
            }
            SetRightNewLevel();

            return(2);
        }
        return(0);
    }