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.