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; } } } }
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 } } } }