Esempio n. 1
0
    public void RestoreChangeAttri(Character target)
    {
        float scale = buffdata.Scale;

        if (scale.Equals(0f) == false)
        {
            iTween.ScaleTo(target.gameObject, owner.SrcScale, 0.4f);
        }

        JsonData valueJson = null;
        JsonData growJson  = null;

        try
        {
            valueJson = JsonMapper.ToObject(buffdata.Value);
            growJson  = JsonMapper.ToObject(buffdata.Grow);
        }
        catch (System.Exception)
        {
#if UNITY_EDITOR
            MessageBox.Show("buff参数错误", "buff(" + id + ") " + "Value和Grow参数错误");
            Debug.Log("buff(" + id + ") " + "Value和Grow参数错误");
#endif
            return;
        }

        if (valueJson.IsArray && growJson.IsArray)
        {
            for (int i = 0; i < valueJson.Count; ++i)
            {
                int       v        = (int)((float)valueJson[i][1] + (float)growJson[i] * (float)lv);
                AttriType attrType = (AttriType)((int)valueJson[i][0]);
                switch (attrType)
                {
                case AttriType.ATK:
                {
                    target.ATK = target.ATK - v;
                } break;

                case AttriType.HP:
                {
                    float hpPer = (float)target.HP / (float)target.MaxHp;
                    target.MaxHp = target.MaxHp - v;
                    target._SetHp((int)(target.MaxHp * hpPer));
                } break;

                case AttriType.AS:
                {
                    target.AS = target.AS - v;
                } break;

                case AttriType.DEF:
                {
                    target.DEF = target.DEF - v;
                } break;

                case AttriType.AngerGrow:
                {
                    target.AngerGrow = target.AngerGrow - v;
                } break;

                case AttriType.CRI:
                {
                    target.CRI = target.CRI - v;
                } break;

                case AttriType.AVD:
                {
                    target.AVD = target.AVD - v;
                } break;

                case AttriType.CRIR:
                {
                    target.CRIRate = target.CRIRate - v;
                } break;

                default:
                {
                } break;
                }
            }
        }
    }
Esempio n. 2
0
    public void ChangeAttri(Character target)
    {
        float scale = buffdata.Scale;

        if (scale.Equals(0f) == false)
        {
            iTween.ScaleTo(target.gameObject, new Vector3(scale, scale, scale), 0.4f);
        }

        JsonData valueJson = null;
        JsonData growJson  = null;

        try
        {
            valueJson = JsonMapper.ToObject(buffdata.Value);
            growJson  = JsonMapper.ToObject(buffdata.Grow);
        }
        catch (System.Exception)
        {
#if UNITY_EDITOR
            MessageBox.Show("buff参数错误", "buff(" + id + ") " + "Value和Grow参数错误");
            Debug.Log("buff(" + id + ") " + "Value和Grow参数错误");
#endif
            return;
        }

        if (valueJson.IsArray && growJson.IsArray)
        {
#if UNITY_EDITOR
            if (valueJson.Count != growJson.Count)
            {
                MessageBox.Show("buff参数错误", "buff(" + id + ") " + "Value和Grow数量不匹配");
                End();
                return;
            }
#endif
            for (int i = 0; i < valueJson.Count; ++i)
            {
#if UNITY_EDITOR
                if (valueJson[i].Count != 2)
                {
                    MessageBox.Show("buff参数错误", "buff(" + id + ") " + "Value参数错误");
                    End();
                    return;
                }
#endif
                int v = (int)((float)valueJson[i][1] + (float)growJson[i] * (float)lv);

                AttriType attrType = (AttriType)((int)valueJson[i][0]);
                switch ((AttriType)attrType)
                {
                case AttriType.ATK:
                {
                    target.ATK = target.ATK + v;
                } break;

                case AttriType.HP:
                {
                    float per = (float)target.HP / (float)target.MaxHp;
                    target.MaxHp = target.MaxHp + v;
                    target._SetHp((int)(target.MaxHp * per));
                } break;

                case AttriType.AS:
                {
                    target.AS = target.AS + v;
                } break;

                case AttriType.DEF:
                {
                    target.DEF = target.DEF + v;
                } break;

                case AttriType.Anger:
                {
                    target.Anger = target.Anger + v;
                    if (target.camp == CampType.Friend)
                    {
                        Fight.Inst.UpdateFriendAnger(target);
                    }
                } break;

                case AttriType.AngerGrow:
                {
                    target.AngerGrow = target.AngerGrow + v;
                } break;

                case AttriType.CRI:
                {
                    target.CRI = target.CRI + v;
                } break;

                case AttriType.AVD:
                {
                    target.AVD = target.AVD + v;
                } break;

                case AttriType.CRIR:
                {
                    target.CRIRate = target.CRIRate + v;
                } break;

#if UNITY_EDITOR
                default:
                {
                    MessageBox.Show("buff参数错误", "buff(" + id + ") " + "Value参数错误");
                    End();
                    return;
                }
#endif
                }
            }
        }
    }