public static Dictionary <Essence.Type, float> CalculateInteractions(Essence.Type t1, Essence.Type t2) { var final = new Dictionary <Essence.Type, float>(); Essence.Type key; bool not_none = (t2 != Essence.Type.none); foreach (Essence.Type t in System.Enum.GetValues(typeof(Essence.Type))) { key = t; final[key] = Essence.GetInteractions(t).ContainsKey(t1) ? Essence.GetEffectivityValue(Essence.GetInteractions(t)[t1]) : 1f; //Debug.Log(t1.ToString() + " - " + key + ": " + final[key]); if (not_none) { if (Essence.GetInteractions(t).ContainsKey(t2)) { final[key] *= Essence.GetEffectivityValue(Essence.GetInteractions(t)[t2]); } //Debug.Log(t2.ToString() + " - " + key + ": " + final[key]); } } return(final); }