public void Affect(Trait t, double change) { double annoyancefactor = Owner.Annoyances[t]; if (annoyancefactor >= 0) change *= annoyancefactor; else if (annoyancefactor < 0) change /= annoyancefactor; change = t.CalculateAmount(change); impressions[t] += change; opinions[t] += (change / Ratio); }