Difference between revisions of "Starward Rogue:XML - Tutorial Definitions"

From Arcen Wiki
Jump to navigation Jump to search
m (Protected "Starward Rogue:XML - Tutorial Definitions" (‎[edit=legal] (indefinite) ‎[move=legal] (indefinite)))
m (Reverted edits by Maintenance script (talk) to last revision by Dominus Arbitrationis)
 
(8 intermediate revisions by 4 users not shown)
Line 13: Line 13:
  
 
== tutorial sub-node type: phase ==
 
== tutorial sub-node type: phase ==
 
the contents of this node (between the > and the <, so not including the attributes and the tag itself) will be parsed as a test chamber script when the phase is started
 
 
since the parsing doesn't happen until later, those contents will not be error-checked during the loading of the game
 
  
 
*starting_message
 
*starting_message
Line 22: Line 18:
 
**this also shows on the escape menu's bottom-right info block during this phase
 
**this also shows on the escape menu's bottom-right info block during this phase
  
[[Starward_Rogue:Main#XML_Documentation|Starward Rogue XML Documentation Main]]
+
== phase sub-node type: room ==
 +
 
 +
The contents of this node (between the > and the <, so not including the attributes and the tag itself) will be parsed as a test chamber script when the phase is started
 +
 
 +
Since the parsing doesn't happen until later, those contents will not be error-checked during the loading of the game
 +
 
 +
The script attribute must refer to a room whose type has RoomEntranceStyle.NSEW, WidthOnMap = 1, and HeightOnMap = 1. So Starting, Square, etc. If another room type is used it may work, or it may leave you stranded in doors that don't exist, or whatever.
 +
 
 +
*name (string, required)
 +
**used by room_connection to identify which rooms are being connected
 +
*x_offset_from_first_room (int), y_offset_from_first_room (int)
 +
**the position of the room relative to the first room; so 1,0 is directly east of the first room, 0,-1 is directly north of the first room, etc
 +
**if two rooms are supposed to be connected, they must be cardinally adjacent (no diagonals)
 +
**these are always 0,0 for the first room, even if you specify otherwise
 +
 
 +
== room sub-node type: message ==
 +
 
 +
There are up to eight different tutorial pads in a tutorial room, and the first message corresponds to the first pad, and so on (which one is the "first" pad, etc, is defined by the room script).
 +
 
 +
*text (string, required)
 +
**the tooltip text to display while the player is on the corresponding tutorial pad
 +
*voice (string, required)
 +
**the name of the voice file (in the Voice/ directory) to play when the player first steps onto the corresponding tutorial pad since loading (if they save and load within the tutorial, then step back onto one, they'll get the voice again)
 +
 
 +
== phase sub-node type: room_connection ==
 +
 
 +
*first_room_name (string, required), second_room_name (string, required)
 +
**the names of the two rooms to connect; they must be cardinally adjacent
  
[[Category:Starward Rogue]]
+
[[Category:Starward Rogue]][[Category:Starward Rogue XML]]

Latest revision as of 16:36, 25 October 2018

Each .xml file in the Configuration/Tutorials/ directory is parsed, and each child of the root node is read as a separate tutorial.

Each of those nodes will have 1 or more "phase" nodes, and each phase corresponds to a single room that is run in a way very similar to a test chamber

main nodes

  • name
    • the internal name the game will remember this tutorial by; if someone beats the tutorial and this name is later changed, the game will think it's a new (unbeaten) tutorial
  • display_name
    • the name that will be shown on the tutorial list to the player
  • end_message
    • the message shown to the player when this entire tutorial is successfully completed

tutorial sub-node type: phase

  • starting_message
    • the message shown to the player when this phase is started
    • this also shows on the escape menu's bottom-right info block during this phase

phase sub-node type: room

The contents of this node (between the > and the <, so not including the attributes and the tag itself) will be parsed as a test chamber script when the phase is started

Since the parsing doesn't happen until later, those contents will not be error-checked during the loading of the game

The script attribute must refer to a room whose type has RoomEntranceStyle.NSEW, WidthOnMap = 1, and HeightOnMap = 1. So Starting, Square, etc. If another room type is used it may work, or it may leave you stranded in doors that don't exist, or whatever.

  • name (string, required)
    • used by room_connection to identify which rooms are being connected
  • x_offset_from_first_room (int), y_offset_from_first_room (int)
    • the position of the room relative to the first room; so 1,0 is directly east of the first room, 0,-1 is directly north of the first room, etc
    • if two rooms are supposed to be connected, they must be cardinally adjacent (no diagonals)
    • these are always 0,0 for the first room, even if you specify otherwise

room sub-node type: message

There are up to eight different tutorial pads in a tutorial room, and the first message corresponds to the first pad, and so on (which one is the "first" pad, etc, is defined by the room script).

  • text (string, required)
    • the tooltip text to display while the player is on the corresponding tutorial pad
  • voice (string, required)
    • the name of the voice file (in the Voice/ directory) to play when the player first steps onto the corresponding tutorial pad since loading (if they save and load within the tutorial, then step back onto one, they'll get the voice again)

phase sub-node type: room_connection

  • first_room_name (string, required), second_room_name (string, required)
    • the names of the two rooms to connect; they must be cardinally adjacent