using Jovian.SaveSystem; using Nox.Core; using Nox.Game; using Nox.Game.UI; using System.Collections.Generic; namespace Nox.UI { public class CharacterCreationView : IMenuView { public ISaveSystem SaveSystem { get; } private readonly CharacterCreationReference characterCreationReference; private readonly MenuGameStateData menuGameStateData; private readonly GameDataState gameDataState; private readonly PartySettings partySettings; private readonly ICharacterSystems characterSystems; private List characterCreationRequests; public CharacterCreationView( CharacterCreationReference characterCreationReference, MenuGameStateData menuGameStateData, ISaveSystem saveSystem, GameDataState gameDataState, PartySettings partySettings, ICharacterSystems characterSystems) { SaveSystem = saveSystem; this.characterCreationReference = characterCreationReference; this.menuGameStateData = menuGameStateData; this.gameDataState = gameDataState; this.partySettings = partySettings; this.characterSystems = characterSystems; } public void Initialize() { characterCreationReference.startGameButton.onClick.AddListener(() => menuGameStateData.startGameRequests?.Invoke(PlayMode.Adventure)); } public void CreateParty() { var partyCreatorModel = new PartyCreatorModel(characterSystems.CharacterFactory, characterSystems.PartyFactory, characterCreationRequests, partySettings); var party = partyCreatorModel.CreatePartyForNewRun(); gameDataState.ActiveParty = party; } public void Tick() { throw new System.NotImplementedException(); } public void Show() { throw new System.NotImplementedException(); } public void Hide() { throw new System.NotImplementedException(); } public void Dispose() { throw new System.NotImplementedException(); } } }