using System; namespace Nox.Game { public static class DefaultCharacterSystemsFactory { public static ICharacterSystems Create(int maxPartySize, PerkRegistry perkRegistry, CharacterRegistry characterRegistry) { IPerkFactory perkFactory = new PerkFactory(perkRegistry); ICharacterAttributesFactory attributesFactory = new CharacterAttributesFactory(characterRegistry); ICharacterStatsFactory statsFactory = new CharacterStatsFactory(); ICharacterFactory characterFactory = new CharacterFactory(attributesFactory, statsFactory, perkFactory); IPartyFactory partyFactory = new PartyFactory(new PartyFactoryOptions { minPartySize = 1, maxPartySize = maxPartySize, enforceUniqueCharacterIds = true }); return new CharacterSystems(perkFactory, characterFactory, partyFactory); } } }