Dialogues EN - Drova-Modding/Drova-Modding-API GitHub Wiki

GUI

Il2CppNodeCanvas.DialogueTrees.UI.DS_DialogueUGUI

Handles typing sounds, how fast chars are written and initializes the text. Can play in general audios and seems to act as a bridge between UI and DialogeTree or DTNode(base class for all nodes in a tree)

Il2CppDrova.DialogueNew.DS_DialogueActor

The DialogueActor is for displaying the Portrait via a Sprite/Texture2D from the EntityInfo. It holds also the Name of the Actor and some references to the Actor.

Business Logic

Il2CppDrova.ActorIntentBhvr

Has a Hear and See Radius, so i guess, that is used to force a dialogue with a player.

Nodes

DS_Il2CppNodeCanvas.DialogueTrees.DS_StatementNode

A "Say Node", lets an actor speak. Technically its a container to wrap a Il2CppNodeCanvas.DialogueTrees.DS_Statement. In here you can adjust the look direction and it has a convenient method to set a new loca path. It also contains the actor which indicates the system who speaks.

Il2CppNodeCanvas.DialogueTrees.DS_Statement

Contains the localization path, a audio clip and a icon type. Possible icons are

 None,
 Trade,
 Fight,
 Quit,
 Back

Il2CppNodeCanvas.DialogueTrees.DS_MultipleChoiceNode

A multiple choice node, choices field needs to be set. The index of connections is identified by the choice index. Choices are a

Il2CppNodeCanvas.DialogueTrees.DS_MultipleChoiceNode.Choice

It contains of a DS_Statement and has the property isEndNode which should be set to true, if it ends the dialog on this choice (Most likely to end the conversation) The choice is also able to hold one condition, which is a Task (TODO)

Il2CppNodeCanvas.DialogueTrees.DS_InteractAABaseNode

Makes an actor play an interaction based on a AA_ABase interaction prefab game object. It can be a single or forever animation with waiting to finish or explicit setting a time.

Il2CppNodeCanvas.DialogueTrees.DS_HideDialogWindow

As the name tells, it hides the dialog window like when changing to different stance. Can also play a coroutine in the background.

Il2CppNodeCanvas.DialogueTrees.DS_ChangeStanceNode

Changes the stance of an actor, its almost identical to the interact base node, but it has a enum Il2CppDrova.Actor.EInteractionMode instead of taking a AA_ABase and doesn't require a bool to wait for finish or time to wait

Il2CppNodeCanvas.DialogueTrees.DS_GiveExp

Gives the player an amount of exp, mostly used after a quest has been done. Takes an int as exp

Il2CppNodeCanvas.DialogueTrees.DS_GiveItemNode

Gives a NPC/Void/Player from NPC/Void/Player an x amount of items. Could be used to exchange quest items or to spawn/give the player from the Npc something or if the npc does not have this item, than use void. If you don't want that the npc will contain the quest item in the inventory, than you would use the exchange mode from player to void.

Il2CppNodeCanvas.DialogueTrees.DS_DebugNode

Waits an x amount of time in seconds. It seems mostly used, when two DS_ChangeStanceNode appears in succession. Than shove one of the wait nodes between with 2 seconds as example.

Il2CppNodeCanvas.DialogueTrees.DS_SetFirstChapter

Sets the Gvar chapter to a number, to make the game aware that the first chapter started. Normally used by Asmus in the beginning.

Il2CppNodeCanvas.DialogueTrees.DS_SetFactionNode

Sets a faction for a player, requires a Faction scriptable object

Gvars

GVars can be placeholder content in a dialogue. They can be used to create dynamically dialogues with unknown content at runtime. But they also represent states in the GameWorld for Tasks to identify as an example if a Quest has been done.

  • $GVAR:EVars_Player.Name$ Player Name

Connections

Connections are a invisible line which ties nodes together to make a speak flow in one direction, which can than branch trough Multiple Choice Nodes.

Existing NPC Dialogues

Editing a NPC Dialogue at runtime make it persist for the entire playtrough. A playtrough is in this case as long as the game stays open. As soon as you closes the game, the changes on the Dialogue are lost.