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