using System; using System.Linq; namespace Nox.Game { public interface ICharacterStatsFactory { EntityStats Create(EntityAttributes attributes); } public sealed class CharacterStatsFactory : ICharacterStatsFactory { private readonly CharacterRegistry characterRegistry; public CharacterStatsFactory(CharacterRegistry characterRegistry) { this.characterRegistry = characterRegistry; } public EntityStats Create(EntityAttributes attributes) { if(attributes.attributes.All(a => a.value != 0)) { throw new ArgumentOutOfRangeException( "attributes cannot be zero or negative.", new ArgumentException() ); } //TODO: Create stats based on attributes // int maxHealth = options.baseHealth + attributes.might * options.mightHealthBonus; // int maxStamina = options.baseStamina + // attributes.might * options.mightStaminaBonus + // attributes.knowledge * options.knowledgeStaminaBonus; return new EntityStats { }; } } }