added portraits and others

This commit is contained in:
Sebastian Bularca
2026-04-05 22:37:09 +02:00
parent c2bbf30a73
commit 419201f2a5
19 changed files with 910 additions and 28 deletions

View File

@@ -80,11 +80,11 @@ namespace Nox.Core {
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 portraitsHolder = Addressables.LoadAssetAsync<PortraitsHolder>("PortraitsHolder").WaitForCompletion();
var characterSystems = CharacterSystemsFactory.Create(partySettings, characterBaseSettings, perKRegistry, characterRegistry, modifiersRegistry);
mainMenuView = new MainMenuView(assetHandle.Result, menuGameStateData, saveSystem, gameDataState, partySettings, characterSystems);
mainMenuView = new MainMenuView(assetHandle.Result, menuGameStateData, saveSystem, gameDataState, partySettings, characterSystems, portraitsHolder);
mainMenuView.Initialize();
mainMenuView.Show();
IsGameStateInitialized = true;

View File

@@ -15,6 +15,7 @@ namespace Nox.UI {
public TMP_Dropdown raceDropdown;
public TMP_Dropdown classDropdown;
public TMP_Dropdown perksDropdown;
public TextMeshProUGUI pointsToDistribute;
public AttributeReference[] attributeReference;
public StatReference[] statReference;

View File

@@ -18,25 +18,27 @@ namespace Nox.UI {
private readonly GameDataState gameDataState;
private readonly PartySettings partySettings;
private readonly ICharacterSystems characterSystems;
private readonly PortraitsHolder portraitsHolder;
private List<CharacterCreationRequest> characterCreationRequests;
private Action canStartCheck;
private GameLogView gameLogView;
private InGameLogger inGameLogger;
public CharacterCreationView(
CharacterCreationReference characterCreationReference,
public CharacterCreationView(CharacterCreationReference characterCreationReference,
MenuGameStateData menuGameStateData,
ISaveSystem saveSystem,
GameDataState gameDataState,
PartySettings partySettings,
ICharacterSystems characterSystems) {
ICharacterSystems characterSystems,
PortraitsHolder portraitsHolder) {
SaveSystem = saveSystem;
this.characterCreationReference = characterCreationReference;
this.menuGameStateData = menuGameStateData;
this.gameDataState = gameDataState;
this.partySettings = partySettings;
this.characterSystems = characterSystems;
this.portraitsHolder = portraitsHolder;
}
public void Initialize() {
@@ -89,7 +91,7 @@ namespace Nox.UI {
gameDataState.ActiveParty = party;
inGameLogger.Log("Character Creation Results:");
inGameLogger.Log($"Protagonist: {party.Protagonist.Name}", "FFBF00");
inGameLogger.Log($"Protagonist: {party.Protagonist.Name}", "#FFBF00");
inGameLogger.Log($"Protagonist Race: {party.Protagonist.Race}");
inGameLogger.Log($"Protagonist Class: {party.Protagonist.Class}");
inGameLogger.Log($"Companions: {party.Companions.Count}");

View File

@@ -0,0 +1,6 @@
using UnityEngine;
[CreateAssetMenu(fileName = "PortraitsHolder", menuName = "Nox/Database/UI/PortraitsHolder")]
public class PortraitsHolder : ScriptableObject {
public Sprite[] portraits;
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1a49ac7886b19d34e9ecb10b8543bf9f

View File

@@ -17,25 +17,26 @@ namespace Nox.UI {
private readonly GameDataState gameDataState;
private readonly PartySettings partySettings;
private readonly ICharacterSystems characterSystems;
private readonly PortraitsHolder portraitsHolder;
private MainMenuReference mainMenuReference;
private CharacterCreationReference characterCreationReference;
private CharacterCreationView characterCreationView;
private AsyncOperationHandle<GameObject> charCreationHandle;
public MainMenuView(
MenuPrefabsContainer menuPrefabsContainer,
public MainMenuView(MenuPrefabsContainer menuPrefabsContainer,
MenuGameStateData menuGameStateData,
ISaveSystem saveSystem,
GameDataState gameDataState,
PartySettings partySettings,
ICharacterSystems characterSystems
) {
ICharacterSystems characterSystems,
PortraitsHolder portraitsHolder) {
this.menuPrefabsContainer = menuPrefabsContainer;
this.menuGameStateData = menuGameStateData;
this.saveSystem = saveSystem;
this.gameDataState = gameDataState;
this.partySettings = partySettings;
this.characterSystems = characterSystems;
this.portraitsHolder = portraitsHolder;
}
public void Initialize() {
if(!mainMenuReference) {
@@ -64,7 +65,7 @@ namespace Nox.UI {
charCreationHandle = Addressables.InstantiateAsync(menuPrefabsContainer.characterCreationReference);
var result = charCreationHandle.WaitForCompletion();
characterCreationReference =result.GetComponent<CharacterCreationReference>();
characterCreationView = new CharacterCreationView(characterCreationReference, menuGameStateData, saveSystem, gameDataState, partySettings, characterSystems);
characterCreationView = new CharacterCreationView(characterCreationReference, menuGameStateData, saveSystem, gameDataState, partySettings, characterSystems, portraitsHolder);
characterCreationView.Initialize();
characterCreationView.Show();
}

View File

@@ -6,5 +6,6 @@ namespace Nox.UI {
public class MenuPrefabsContainer : ScriptableObject {
public AssetReference mainMenuReference;
public AssetReference characterCreationReference;
public AssetReferenceT<PortraitsHolder> portraitsHolder;
}
}