forked from Shardstone/trail-into-darkness
Work on hooking the character system into the character creation
This commit is contained in:
@@ -104,18 +104,9 @@ namespace Nox.Core {
|
||||
|
||||
var adventureData = new AdventureData();
|
||||
|
||||
var characterBaseSettings = Addressables.LoadAssetAsync<StarterCharacterSettings>("CharacterBaseSettings").WaitForCompletion();
|
||||
var perKRegistry = Addressables.LoadAssetAsync<PerksRegistry>("PerksRegistry").WaitForCompletion();
|
||||
var characterRegistry = Addressables.LoadAssetAsync<CharacterRegistry>("CharacterRegistry").WaitForCompletion();
|
||||
var defaultPartySettings = Addressables.LoadAssetAsync<DefaultPartySettings>("DefaultPartySettings").WaitForCompletion();
|
||||
var modifiersRegistry = Addressables.LoadAssetAsync<ModifiersRegistry>("ModifiersRegistry").WaitForCompletion();
|
||||
|
||||
var characterSystems = DefaultCharacterSystemsFactory.Create(characterBaseSettings, perKRegistry, characterRegistry, modifiersRegistry);
|
||||
var partyCreatorModel = new PartyCreatorModel(characterSystems.CharacterFactory, characterSystems.PartyFactory, defaultPartySettings);
|
||||
|
||||
applicationStates = new Dictionary<GameState, IGameState> {
|
||||
[GameState.BootState] = new SplashGameState(bootstrapReferences, gameDataState),
|
||||
[GameState.MainMenu] = new MainMenuGameState(gameDataState, menuGameStateData, bootstrapReferences, saveSystem, partyCreatorModel, adventureData, gameLogStore),
|
||||
[GameState.MainMenu] = new MainMenuGameState(gameDataState, menuGameStateData, bootstrapReferences, saveSystem, adventureData, gameLogStore),
|
||||
[GameState.GameMode] = new GameModeGameState(gameDataState, bootstrapReferences, platform.PlatformSettings, saveSystem, sceneTransition, adventureData, gameLogStore),
|
||||
};
|
||||
createApplicationStateMarker.End();
|
||||
|
||||
@@ -21,7 +21,6 @@ namespace Nox.Core {
|
||||
private readonly MenuGameStateData menuGameStateData;
|
||||
private readonly BootstrapReferences bootstrapReferences;
|
||||
private readonly ISaveSystem saveSystem;
|
||||
private readonly PartyCreatorModel partyCreatorModel;
|
||||
private readonly IGameLogStore gameLogStore;
|
||||
private AdventureData adventureData;
|
||||
private Action<PlayMode> onStartGameRequested;
|
||||
@@ -34,14 +33,12 @@ namespace Nox.Core {
|
||||
MenuGameStateData menuGameStateData,
|
||||
BootstrapReferences bootstrapReferences,
|
||||
ISaveSystem saveSystem,
|
||||
PartyCreatorModel partyCreatorModel,
|
||||
AdventureData adventureData,
|
||||
IGameLogStore gameLogStore) {
|
||||
this.gameDataState = gameDataState;
|
||||
this.menuGameStateData = menuGameStateData;
|
||||
this.bootstrapReferences = bootstrapReferences;
|
||||
this.saveSystem = saveSystem;
|
||||
this.partyCreatorModel = partyCreatorModel;
|
||||
this.adventureData = adventureData;
|
||||
this.gameLogStore = gameLogStore;
|
||||
}
|
||||
@@ -49,8 +46,6 @@ namespace Nox.Core {
|
||||
public void EnterGameState() {
|
||||
IsGameStateInitialized = false;
|
||||
onStartGameRequested = mode => {
|
||||
var party = partyCreatorModel.CreatePartyForNewRun(companionCount: 4);
|
||||
gameDataState.ActiveParty = party;
|
||||
var sessions = saveSystem.GetAllSessions();
|
||||
gameDataState.activeSessionId = sessions.Count > 0
|
||||
? sessions[0].sessionId
|
||||
@@ -67,6 +62,7 @@ namespace Nox.Core {
|
||||
|
||||
gameDataState.ChangeGameState(GameState.GameMode);
|
||||
gameDataState.ChangePlayMode(saveData.activePlayMode);
|
||||
gameDataState.ActiveParty = saveData.activeParty;
|
||||
|
||||
};
|
||||
menuGameStateData.startGameRequests += onStartGameRequested;
|
||||
@@ -80,7 +76,15 @@ namespace Nox.Core {
|
||||
await sceneHandle.Result.ActivateAsync();
|
||||
var assetHandle = Addressables.LoadAssetAsync<MenuPrefabsContainer>(bootstrapReferences.menuPrefabsContainer);
|
||||
await assetHandle.Task;
|
||||
mainMenuView = new MainMenuView(assetHandle.Result, menuGameStateData, saveSystem);
|
||||
var characterBaseSettings = Addressables.LoadAssetAsync<StarterCharacterSettings>("CharacterBaseSettings").WaitForCompletion();
|
||||
var perKRegistry = Addressables.LoadAssetAsync<PerksRegistry>("PerksRegistry").WaitForCompletion();
|
||||
var characterRegistry = Addressables.LoadAssetAsync<CharacterRegistry>("CharacterRegistry").WaitForCompletion();
|
||||
var modifiersRegistry = Addressables.LoadAssetAsync<ModifiersRegistry>("ModifiersRegistry").WaitForCompletion();
|
||||
|
||||
var partySettings = Addressables.LoadAssetAsync<PartySettings>("DefaultPartySettings").WaitForCompletion();
|
||||
var characterSystems = CharacterSystemsFactory.Create(partySettings, characterBaseSettings, perKRegistry, characterRegistry, modifiersRegistry);
|
||||
|
||||
mainMenuView = new MainMenuView(assetHandle.Result, menuGameStateData, saveSystem, gameDataState, partySettings, characterSystems);
|
||||
mainMenuView.Initialize();
|
||||
IsGameStateInitialized = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user