namespace Nox.Game { public interface ICharacterSystems { IPerkFactory PerkFactory { get; } IModifiersFactory ModifiersFactory { get; } ICharacterFactory CharacterFactory { get; } IPartyFactory PartyFactory { get; } } public sealed class CharacterSystems : ICharacterSystems { public CharacterSystems(IPerkFactory perkFactory, IModifiersFactory modifiersFactory, ICharacterFactory characterFactory, IPartyFactory partyFactory) { ModifiersFactory = modifiersFactory; PerkFactory = perkFactory; CharacterFactory = characterFactory; PartyFactory = partyFactory; } public IPerkFactory PerkFactory { get; } public IModifiersFactory ModifiersFactory { get; } public ICharacterFactory CharacterFactory { get; } public IPartyFactory PartyFactory { get; } } }