internal static GameEntity CloseCompany(GameContext context, GameEntity e) { // pay to everyone PayDividends(context, e, e.companyResource.Resources.money); // fire everyone NotifyAboutProductSupportEnd(e, context); if (e.hasProduct) { Teams.DismissTeam(e, context); Markets.ReturnUsersWhenCompanyIsClosed(e, context); } RemoveAllPartnerships(e, context); foreach (var holding in GetDaughterCompanies(context, e.company.Id)) { DestroyBlockOfShares(context, holding, e.shareholder.Id); } e.ReplaceShareholders(new Dictionary <int, BlockOfShares>()); e.isAlive = false; return(e); }