Files
trail-into-darkness/Assets/Code/GameState/UI/CharacterCreationView.cs

58 lines
2.1 KiB
C#

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<CharacterCreationRequest> 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();
}
}
}