Modding:Conversations: Difference between revisions

5,851 bytes added ,  03:23, 5 February 2022
Add delegate table
m (not quite time yet)
(Add delegate table)
Line 128: Line 128:
== Delegates ==
== Delegates ==
Unique to conversations are their delegate attributes such as <code>IfHaveQuest="What's Eating the Watervine?"</code> or <code>GiveItem="Joppa Recoiler"</code>.<br/>
Unique to conversations are their delegate attributes such as <code>IfHaveQuest="What's Eating the Watervine?"</code> or <code>GiveItem="Joppa Recoiler"</code>.<br/>
These are distinguished between two types: Predicates which control whether an element is accessible, and Actions which perform some task when the element is selected.<br/>
These are distinguished between two types (there's a secret third option explained later): Predicates which control whether an element is accessible, and Actions which perform some task when the element is selected.<br/>
After the Deep Jungle update these are now for the most part agnostic as to what their parent element is.
After the Deep Jungle update these are now for the most part agnostic as to what their parent element is.


Line 228: Line 228:


==Tables==
==Tables==
Below will be some non-exhaustive tables with descriptions of existing parts, events and delegates if you check back in a bit.
Below are non-exhaustive tables of existing parts, events and delegates.
===Delegates===
An Inverse predicate can be invoked with <code>IfNot</code> to negate its value.<br />
A Speaker delegate can be invoked with <code>IfSpeaker</code> to target the speaker game object.<br />
If both are applicable then it can also be invoked with <code>IfNotSpeaker</code>.<br />
{| class="wikitable"
|-
! Name
! Type
! Description
! Inverse
! Speaker
|-
| IfHaveQuest
| Predicate
| Continue if the player has an active or finished quest by specified ID.
| Yes
| No
|-
| IfHaveActiveQuest
| Predicate
| Continue if the player has an active quest by specified ID.
| Yes
| No
|-
| IfFinishedQuest
| Predicate
| Continue if the player has a finished quest by specified ID.
| Yes
| No
|-
| IfFinishedQuestStep
| Predicate
| Takes a '~' separated value of "Quest ID~Step ID" and checks if the step is completed.
| Yes
| No
|-
| IfHaveObservation
| Predicate
| Continue if the player knows of any gossip or lore with the specified ID.
| Yes
| No
|-
| IfHaveObservationWithTag
| Predicate
| Continue if the player knows of any gossip or lore with the specified tag.
| Yes
| No
|-
| IfHaveSultanNoteWithTag
| Predicate
| Continue if the player knows any history of a sultan with the specified tag.
| Yes
| No
|-
| IfHaveVillageNote
| Predicate
| Continue if the player knows any history of a village with the specified ID.
| Yes
| No
|-
| IfHaveState
| Predicate
| Continue if any global game state has been set by specified ID.
| Yes
| No
|-
| IfTestState
| Predicate
| Evaluates an expression of format "ID Operator Value", for example "SlynthSettlementFaction = Joppa", comparing the global game state to the specified value.
| Yes
| No
|-
| IfLastChoice
| Predicate
| Continue if the last selected choice in this conversation has the specified ID.
| Yes
| No
|-
| IfCommand
| Predicate
| Fires an event on the element with the specified value as its command, continue if the result is set true by a consuming part.
| Yes
| No
|-
| IfReputationAtLeast
| Predicate
| Continue if the player has the specified reputation level or higher, valid entries are "Loved", "Liked", "Indifferent", "Disliked", and "Hated".
| Yes
| No
|-
| IfIn100
| Predicate
| Continues if the randomly rolled value is below or equal to the specified value.
| No
| No
|-
| IfGenotype
| Predicate
| Continues if the target is of the specified genotype.
| Yes
| Yes
|-
| IfSubtype
| Predicate
| Continues if the target is of the specified genotype.
| Yes
| Yes
|-
| IfTrueKin
| Predicate
| Continues if the target counts as a true kin and can implant cybernetics.
| Yes
| Yes
|-
| IfMutant
| Predicate
| Continues if the target counts as a mutant and can gain mutations.
| Yes
| Yes
|-
| IfHaveItem
| Predicate
| Continues if the target has an item of the specified blueprint in their inventory or equipped on their body.
| Yes
| Yes
|-
| IfWearingBlueprint
| Predicate
| Continues if the target has an item of the specified blueprint equipped on their body.
| Yes
| Yes
|-
| IfHaveBlueprint
| Predicate
| Continues if the target has an item of the specified blueprint in their inventory.
| Yes
| Yes
|-
| IfHavePart
| Predicate
| Continues if the target has a part by the specified class name. Mutations are a variant of a part that this is applicable to.
| Yes
| Yes
|-
| IfHaveTag
| Predicate
| Continues if the target's blueprint has the specified tag.
| Yes
| Yes
|-
| IfHaveProperty
| Predicate
| Continues if the target game object has the specified property.
| Yes
| Yes
|-
| IfHaveTagOrProperty
| Predicate
| Continues if the target has the specified tag or property.
| Yes
| Yes
|-
| IfLevelLessOrEqual
| Predicate
| Continues if the target is at or below the specified value.
| Yes
| Yes
|-
| FinishQuest
| Action
| Marks a quest by the specified ID as finished. This will not complete all the quest's steps.
| No
| No
|-
| FireEvent
| Action
| Takes a comma separated list of "EventID,Parameter1,Parameter2,Para..." and fires a constructed event on the target game object.
| No
| Yes
|-
| FireSystemsEvent
| Action
| Takes a comma separated list of "EventID,Parameter1,Parameter2,Para..." and fires a constructed event to all game systems.
| No
| No
|-
| SetStringState
| Action
| Takes a comma separated list of "GameStateID,Value" and sets the global game state to the specified value. If no value is specified the state is removed.
| No
| No
|-
| SetIntState
| Action
| Takes a comma separated list of "GameStateID,Value" and sets the global game state to the specified value. If no value is specified the state is removed.
| No
| No
|-
| AddIntState
| Action
| Takes a comma separated list of "GameStateID,Value" and adds the specified value to the global game state's value.
| No
| No
|-
| SetBooleanState
| Action
| Takes a comma separated list of "GameStateID,Value" and sets the global game state to the specified value. If no value is specified the state is removed.
| No
| No
|-
| ToggleBooleanState
| Action
| Toggles the boolean value of the global game state by specified ID.
| No
| No
|-
| SetStringProperty
| Action
| Sets a string property on the target game object.
| No
| Yes
|-
| SetIntProperty
| Action
| Sets an int property on the target game object.
| No
| Yes
|-
| RevealObservation
| Action
| Reveals a piece of gossip or lore by the specified ID.
| No
| No
|-
| StartQuest
| Part Generator
| Adds a QuestHandler part to the parent element with the Start action and specified QuestID.
| No
| No
|-
| CompleteQuestStep
| Part Generator
| Adds a QuestHandler part to the parent element with the Step action and specified "QuestID~StepID".
| No
| No
|-
| GiveItem
| Part Generator
| Adds a ReceiveItem part to the parent element with the specified comma separated blueprints.
| No
| No
|-
| TakeItem
| Part Generator
| Adds a TakeItem part to the parent element with the specified comma separated blueprints.
| No
| No
|}
 
 
{{Modding Navbox}}