ChangeRelationAction class handles the relation changes and its after effects. Effective heroes are chosen in DiplomacyModel.GetHeroesForEffectiveRelation(Hero, Hero, out Hero, out Hero) function. will fire CampaignEvents.HeroRelationChanged event. To bypass its after effects, use Hero.SetPersonalRelation(Hero, int) directly. More...