Added to Dialogue schema (#84)

* Update dialogue_schema.xsd with better condition elements

Improved support for the condition system, plus some other tweaks

* Update dialogue_schema.xsd
This commit is contained in:
TerrificTrifid 2022-04-12 17:27:25 -05:00 committed by GitHub
parent f7d0bac568
commit 0eb667864d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,7 +8,7 @@
<xs:element name="NameField" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the dialogue tree
The name of the character, used for the interaction prompt. Set to "SIGN" for the prompt "Read", or "RECORDING" for "Play Recording"
</xs:documentation>
</xs:annotation>
</xs:element>
@ -36,14 +36,7 @@
<xs:element name="EntryCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The condition that needs to be met in order to get to this node
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTargetShipLogCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
A ship log fact that must be revealed in order to get to this node
The condition that needs to be met in order for the dialogue to begin at this node. There must be one node that uses "DEFAULT"
</xs:documentation>
</xs:annotation>
</xs:element>
@ -54,17 +47,45 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RevealFacts" type="RevealFacts" minOccurs="0">
<xs:annotation>
<xs:documentation>
Facts to reveal when the player sees this dialogue node
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueOptionsList" type="DialogueOptionsList" minOccurs="0">
<xs:annotation>
<xs:documentation>
A list of options to show to the player once the character is one talking
A list of options to show to the player once the character is done talking
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RevealFacts" type="RevealFacts" minOccurs="0">
<xs:annotation>
<xs:documentation>
Facts to reveal when the player goes through this dialogue node
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SetCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Set a new condition that will only last for the current loop
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SetPersistentCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Set a new persistent condition that will last indefinitely in the current save, unless cancelled or deleted
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTargetShipLogCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
A ship log fact that must be revealed in order to proceed to the DialogueTarget
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTarget" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
The name of the DialogueNode to go to after this node. Mutually exclusive with DialogueOptionsList here
</xs:documentation>
</xs:annotation>
</xs:element>
@ -113,17 +134,38 @@
<!-- Dialogue Option Info -->
<xs:complexType name="DialogueOption">
<xs:sequence>
<xs:element name="RequiredPersistentCondition" type="xs:string" minOccurs="0">
<xs:element name="RequiredPersistentCondition" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Require a prior condition to be met to show this option
Require a persistent condition to be met to show this option
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CancelledPersistentCondition" type="xs:string" minOccurs="0">
<xs:element name="CancelledPersistentCondition" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Hide this option if a condition has been met
Hide this option if a persistent condition has been met
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RequiredCondition" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Require a (single-loop) condition to be met to show this option
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CancelledCondition" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Hide this option if a (single-loop) condition has been met
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RequiredLogCondition" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Require a ship log fact to be known to show this option
</xs:documentation>
</xs:annotation>
</xs:element>
@ -134,7 +176,21 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTarget" type="xs:string">
<xs:element name="ConditionToSet" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Set a condition when this option is chosen
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ConditionToCancel" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Cancel a condition when this option is chosen
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTarget" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
The name of the DialogueNode to go to when this option is selected
@ -144,4 +200,4 @@
</xs:sequence>
</xs:complexType>
</xs:schema>
</xs:schema>