Exemple #1
0
    bool AddPoint(string prop, int deltaPoint, bool isSlider = false)
    {
        UISlider      slider          = sliderDic[prop];
        Transform     lightblue       = slider.transform.Find("lightblue");
        PetAttrSlider lightblueSlider = lightblue.GetComponent <PetAttrSlider>();
        UILabel       addLabel        = null;

        if (labelAddPointDic.TryGetValue(prop, out addLabel))
        {
            uint baseValue = petDataManager.GetCurPetBaseProp(prop, true);

            int maxPoint   = CurPet.GetProp((int)PetProp.MaxPoint);
            int totalValue = (int)baseValue + maxPoint;
            int attrPoint  = GetAttrPoint(prop);
            int curPoint   = (int)(lightblueSlider.value * totalValue);

            int point = 0;
            if (addPointDic.TryGetValue(prop, out point))
            {
                if (deltaPoint > LeftPoint)
                {
                    deltaPoint = LeftPoint;
                }
                float initValue = (baseValue + attrPoint + point) * 1.0f / totalValue;
                if (LeftPoint == 0)
                {
                    if (!isSlider)
                    {
                        TipsManager.Instance.ShowTips(DataManager.Manager <TextManager>().GetLocalText(LocalTextType.Local_TXT_Notice_NoEnoughQianXiuPoint));
                        return(false);
                    }
                    Log.Error("没有潜能点可分配" + initValue.ToString());
                    LeftPoint = 0;
                    InitAddPointLabelData();
                    ///  lightblueSlider.value = initValue;
                    return(false);
                }
                //Log.Error( " prop is " + prop + " totalvalue " + totalValue.ToString() );
                //Log.LogGroup( "ZDY" , "潜能点可分配" + deltaPoint.ToString() + " curPoint = " + curPoint.ToString() + " attrPoint = " + attrPoint.ToString() + " point = " + point.ToString() );
                addPointDic[prop] = point + deltaPoint;
                LeftPoint        -= deltaPoint;
                InitAddLabelData();
                InitAddPointLabelData();
                RefreshWillAddLabel();

                return(true);
            }
            else
            {
                Log.Error("labelAddPointDic dosen't contain key {0}", prop);
            }
        }
        Log.Error("labelAddPointDic dosen't contain key {0}", prop);
        return(false);
    }
Exemple #2
0
    void InitSliderData()
    {
        foreach (var dic in sliderDic)
        {
            uint baseValue = petDataManager.GetCurPetBaseProp(dic.Key);
            int  maxPoint  = CurPet.GetProp((int)PetProp.MaxPoint);
            int  attrPoint = GetAttrPoint(dic.Key);
            if (baseValue > attrPoint)
            {
                baseValue = baseValue - (uint)attrPoint;
            }
            else
            {
                Log.Error("基础值小于添加值 不科学");
            }
            int totalValue = (int)baseValue + maxPoint;

            UISlider  slider      = dic.Value;
            Transform green       = slider.transform.Find("green");
            UISlider  greenSlider = slider;
            if (greenSlider != null)
            {
                float sliderValue = baseValue * 1.0f / totalValue;
                greenSlider.value = sliderValue;
            }
            Transform blue       = slider.transform.Find("blue");
            UISlider  blueSlider = blue.GetComponent <UISlider>();
            if (blueSlider != null)
            {
                float sliderValue = (baseValue + attrPoint) * 1.0f / totalValue;
                blueSlider.value = sliderValue;
            }
            Transform     lightblue       = slider.transform.Find("lightblue");
            PetAttrSlider lightblueSlider = lightblue.GetComponent <PetAttrSlider>();
            if (lightblueSlider != null)
            {
                int   addPoint    = addPointDic[dic.Key];
                float sliderValue = (baseValue + attrPoint + addPoint) * 1.0f / totalValue;

                finishSliderDic[dic.Key] = sliderValue;
                lightblueSlider.value    = sliderValue;
            }
        }
    }
Exemple #3
0
    bool DeletePoint(string prop, int deltaPoint, bool isSlider = false)
    {
        Log.Error("delete deltapoint is " + deltaPoint.ToString());
        UISlider      slider          = sliderDic[prop];
        Transform     lightblue       = slider.transform.Find("lightblue");
        PetAttrSlider lightblueSlider = lightblue.GetComponent <PetAttrSlider>();

        uint baseValue = petDataManager.GetCurPetBaseProp(prop, true);

        int   maxPoint   = CurPet.GetProp((int)PetProp.MaxPoint);
        int   totalValue = (int)baseValue + maxPoint;
        int   attrPoint  = GetAttrPoint(prop);
        float initValue  = (baseValue + attrPoint) * 1.0f / totalValue;

        if (lightblueSlider.value <= initValue)
        {
            if (!isSlider)
            {
                TipsManager.Instance.ShowTips("已经分配的潜能点不能重新分配");
                return(false);
            }
        }
        int point = addPointDic[prop];

        if (deltaPoint > point)
        {
            deltaPoint = point;
        }
        addPointDic[prop] = point - deltaPoint;
        if (addPointDic[prop] == 0)
        {
            int a = 0;
        }
        LeftPoint += deltaPoint;
        InitAddLabelData();
        InitAddPointLabelData();
        RefreshWillAddLabel();
        return(true);
    }
Exemple #4
0
    protected override void OnLoading()
    {
        base.OnLoading();
        if (CurPet == null)
        {
            return;
        }


        InitLabel();
        sliderDic.Add(FightCreatureProp.Strength.ToString(), m_slider_jiadian_liliang);
        sliderDic.Add(FightCreatureProp.Corporeity.ToString(), m_slider_jiadian_tili);
        sliderDic.Add(FightCreatureProp.Intelligence.ToString(), m_slider_jiadian_zhili);
        sliderDic.Add(FightCreatureProp.Spirit.ToString(), m_slider_jiadian_jingshen);
        sliderDic.Add(FightCreatureProp.Agility.ToString(), m_slider_jiadian_minjie);

        addPointDic.Add(FightCreatureProp.Strength.ToString(), 0);
        addPointDic.Add(FightCreatureProp.Corporeity.ToString(), 0);
        addPointDic.Add(FightCreatureProp.Intelligence.ToString(), 0);
        addPointDic.Add(FightCreatureProp.Spirit.ToString(), 0);
        addPointDic.Add(FightCreatureProp.Agility.ToString(), 0);

        finishSliderDic.Add(FightCreatureProp.Strength.ToString(), 0);
        finishSliderDic.Add(FightCreatureProp.Corporeity.ToString(), 0);
        finishSliderDic.Add(FightCreatureProp.Intelligence.ToString(), 0);
        finishSliderDic.Add(FightCreatureProp.Spirit.ToString(), 0);
        finishSliderDic.Add(FightCreatureProp.Agility.ToString(), 0);
        foreach (var dic in sliderDic)
        {
            UISlider      slider          = dic.Value;
            Transform     lightblue       = slider.transform.Find("lightblue");
            Transform     thumb           = slider.transform.Find("Thumb");
            PetAttrSlider lightblueSlider = lightblue.GetComponent <PetAttrSlider>();
            if (lightblueSlider == null)
            {
                lightblueSlider = lightblue.gameObject.AddComponent <PetAttrSlider>();
                lightblueSlider.foregroundWidget = lightblue.GetComponent <UIWidget>();
                lightblueSlider.thumb            = thumb;
            }
            uint initbaseValue = petDataManager.GetCurPetBaseProp(dic.Key, true);
            int  maxPoint      = CurPet.GetProp((int)PetProp.MaxPoint);
            LeftPoint = maxPoint;
            int   inittotalValue  = (int)initbaseValue + maxPoint;
            int   initattrPoint   = GetAttrPoint(dic.Key);
            float initsliderValue = (initbaseValue + initattrPoint) * 1.0f / inittotalValue;

            if (lightblueSlider != null)
            {
                lightblueSlider.InitData(initsliderValue, dic.Key);
                lightblueSlider.value = initsliderValue;
                //lightblueSlider.numberOfSteps =(int) (initbaseValue + initattrPoint);
                lightblueSlider.onDragFinished = () =>
                {
                    float fs = GetCurSliderValue(lightblueSlider.propStr);
                    lightblueSlider.value = fs;
                    finishSliderDic[lightblueSlider.propStr] = fs;
                };
                EventDelegate.Add(lightblueSlider.onChange, () =>
                {
                    maxPoint       = CurPet.GetProp((int)PetProp.MaxPoint);
                    uint baseValue = petDataManager.GetCurPetBaseProp(lightblueSlider.propStr, true);
                    int totalValue = (int)baseValue + maxPoint;
                    string propstr = lightblueSlider.propStr;

                    float fs        = lightblueSlider.value;
                    float tempValue = fs;
                    float oldValue  = finishSliderDic[propstr];
                    if (tempValue > oldValue)
                    {
                        float deltaValue = tempValue - oldValue;
                        int delta        = Mathf.RoundToInt(deltaValue * totalValue);
                        if (delta >= 1)
                        {
                            if (delta > LeftPoint)
                            {
                                delta = LeftPoint;
                                float sliderAddDelta = delta * 1.0f / totalValue;
                            }
                            if (!AddPoint(propstr, delta, true))
                            {
                                // lightblueSlider.value = oldValue;
                            }
                            else
                            {
                                tempValue = oldValue + delta * 1.0f / totalValue;
                                finishSliderDic[propstr] = tempValue;
                            }
                        }
                    }
                    if (tempValue < oldValue)
                    {
                        float deltaValue = oldValue - tempValue;
                        int delta        = Mathf.RoundToInt(deltaValue * totalValue);
                        if (delta >= 1)
                        {
                            int leftAddPoint = addPointDic[lightblueSlider.propStr];
                            if (delta > leftAddPoint)
                            {
                                delta = leftAddPoint;
                            }
                            if (delta <= 0)
                            {
                                return;
                            }
                            if (!DeletePoint(propstr, delta, true))
                            {
                                // lightblueSlider.value = oldValue;
                            }
                            else
                            {
                                tempValue = oldValue - delta * 1.0f / totalValue;
                                finishSliderDic[propstr] = tempValue;
                            }
                        }
                    }
                });
            }
        }
    }