private void CallChangedAll(Trait trait)
 {
     foreach (var item in trait.UsedAttributs())
     {
         AttributeChanged(this, item);
     }
     foreach (var item in trait.UsedValues())
     {
         ValueChanged(this, item);
     }
     foreach (var item in trait.UsedResources())
     {
         ResourceChanged(this, item);
     }
     foreach (var item in trait.GetTawBonus())
     {
         TaWChanged?.Invoke(this, item.Key);
     }
     foreach (var item in trait.GetATBonus())
     {
         ATChanged?.Invoke(this, item.Key);
     }
     foreach (var item in trait.GetPABonus())
     {
         PAChanged?.Invoke(this, item.Key);
     }
     foreach (var item in trait.GetBLBonus())
     {
         BLChanged?.Invoke(this, item.Key);
     }
     APInvestChanged?.Invoke(this, GetAPInvested());
     APEarnedChanged?.Invoke(this, GetAPEarned());
 }