using System.Collections.Generic; namespace Nox.Game { public class PartyCreatorModel { private readonly ICharacterFactory characterFactory; private readonly IPartyFactory partyFactory; public PartyCreatorModel(ICharacterFactory characterFactory, IPartyFactory partyFactory, DefaultPartySettings defaultPartySettings) { this.characterFactory = characterFactory; this.partyFactory = partyFactory; } public PartyDefinition CreatePartyForNewRun(int companionCount) { var protagonist = characterFactory.CreateCustomProtagonist(new CustomCharacterCreationRequest { id = "protagonist", displayName = "The Warden", attributes = new EntityAttributes(), perksData = new PerksData(){ perks = new List() } }); CharacterTemplate[] companionTemplates = { // new() { // id = "companion-bruiser", // displayName = "Rook", // attributes = new EntityAttributes { might = 5, reflex = 2, knowledge = 1 }, // perksData = new PerksData(){ // perks = new List() // } // }, // new() { // id = "companion-scout", // displayName = "Sable", // attributes = new EntityAttributes { might = 2, reflex = 5, knowledge = 1 }, // perksData = new PerksData(){ // perks = new List() // } // }, // new() { // id = "companion-scholar", // displayName = "Quill", // attributes = new EntityAttributes { might = 1, reflex = 2, knowledge = 5 }, // perksData = new PerksData(){ // perks = new List() // } // }, // new() { // id = "companion-vanguard", // displayName = "Brant", // attributes = new EntityAttributes { might = 4, reflex = 3, knowledge = 2 }, // perksData = new PerksData(){ // perks = new List() // } // }, // new() { // id = "companion-tracker", // displayName = "Mira", // attributes = new EntityAttributes { might = 2, reflex = 4, knowledge = 3 }, // perksData = new PerksData(){ // perks = new List() // } // } }; var companions = new List(); for(var i = 0; i < companionCount && i < companionTemplates.Length; i++) { companions.Add(characterFactory.CreateFromTemplate(companionTemplates[i], CharacterRole.Companion)); } return partyFactory.Create(protagonist, companions); } } }