public AttributeStats(AttributeStats stats) { FieldInfo[] fields1 = this.GetType().GetFields(); FieldInfo[] fields2 = stats.GetType().GetFields(); for (int i = 0; i < fields1.Length; i++) { fields1[i].SetValue(this, (float)fields2[i].GetValue(stats)); } }
public static AttributeStats operator-(AttributeStats stats1, AttributeStats stats2) { AttributeStats stats = new AttributeStats(); FieldInfo[] fields = stats.GetType().GetFields(); FieldInfo[] fields1 = stats1.GetType().GetFields(); FieldInfo[] fields2 = stats2.GetType().GetFields(); for (int i = 0; i < fields.Length; i++) { fields[i].SetValue(stats, (int)fields1[i].GetValue(stats1) - (int)fields2[i].GetValue(stats2)); } return(stats); }