Skip to main content

DialogueOption

Struct DialogueOption 

Source
pub struct DialogueOption {
    pub label: String,
    pub tooltip: Option<String>,
    pub next: Option<DialogueId>,
    pub requires_flags: Vec<FlagId>,
    pub forbids_flags: Vec<FlagId>,
    pub requires_state: Vec<StateCompare>,
    pub effects: Vec<DialogueEffect>,
    pub happening: Option<Happening>,
}
Expand description

One selectable dialogue option.

Fields§

§label: String

Button label.

§tooltip: Option<String>

The full line this button is the caption of (DSL v0.8). Vanilla’s dialog button codec (CommonButtonData) carries an optional tooltip component beside label, and the client hangs it on the button as a real hover tooltip — so a caption on the button and the sentence the character actually says can both exist. Not subject to DW0331: a tooltip is not drawn on the 150 px button, it is wrapped at 170 px into its own hover box, so it never scrolls. Player-visible, so it translates like the label (dlg.<npc>.<node>.opt.<i>.tooltip).

§next: Option<DialogueId>

Next node; omitted closes the dialog.

§requires_flags: Vec<FlagId>

Flags that must be set for this option to be shown (DSL v0.4). Mirrors an objective’s requires_flags: an ungated option (empty) is unchanged; a gated option is hidden until every referenced flag has been set by a set-flag effect (quest or dialogue). Validation guarantees a flag-gated option cannot make a critical-path node unreachable (DW0191).

§forbids_flags: Vec<FlagId>

Negative flag gate (DSL v0.6): the option is hidden (and its /trigger handler inert) while ANY listed flag is set for the player — the dual of requires_flags. A forbids_flags-gated option counts as gated for the DW0191 deadlock guard: it can be suppressed at any point, so it cannot be the only completing path.

§requires_state: Vec<StateCompare>

Numeric gate terms (DSL v0.10, spec-0031): every listed comparison must hold for this gate to be open. The third field of the one gate, carried by every gate consumer — never by the verb that first wanted it. Default empty, so a pre-0.10 campaign is byte-identical.

§effects: Vec<DialogueEffect>

Effects fired when this option is chosen.

§happening: Option<Happening>

What choosing this option does to the story (spec-0025). Required for a story-weight beat — an option carrying a set-flag effect, which is how a player’s choice forks the world (DW0481). An option that only walks the tree or completes an objective needs none: the objective already declares one.

Implementations§

Source§

impl DialogueOption

Source

pub fn gate(&self) -> Gate<'_>

This option’s whole gate, as one value (DSL v0.10).

Trait Implementations§

Source§

impl Clone for DialogueOption

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DialogueOption

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for DialogueOption

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for DialogueOption

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for DialogueOption

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for DialogueOption

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for DialogueOption

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.