DestinyTalentNodeDefinition class
Talent Grids on items have Nodes. These nodes have positions in the talent grid's UI, and contain "Steps" (DestinyTalentNodeStepDefinition), one of whom will be the "Current" step. The Current Step determines the visual properties of the node, as well as what the node grants when it is activated. See DestinyTalentGridDefinition for a more complete overview of how Talent Grids work, and how they are used in Destiny 2 (and how they were used in Destiny 1).
- Annotations
-
- @JsonSerializable()
Constructors
- DestinyTalentNodeDefinition()
-
DestinyTalentNodeDefinition.fromJson(Map<
String, dynamic> json) -
factory
Properties
- autoUnlocks ↔ bool?
-
If true, this node will automatically unlock when the Talent Grid's level reaches the required level of the current step of this node.
getter/setter pair
- binaryPairNodeIndex ↔ int?
-
At one point, Talent Nodes supported the idea of "Binary Pairs": nodes that overlapped each other visually, and where activating one deactivated the other. They ended up not being used, mostly because Exclusive Sets are almost a superset of this concept, but the potential for it to be used still exists in theory.
If this is ever used, this will be the index into the DestinyTalentGridDefinition.nodes property for the node that is the binary pair match to this node. Activating one deactivates the other.
getter/setter pair
- column ↔ int?
-
The visual "column" where the node should be shown in the UI. If negative, the node is hidden.
getter/setter pair
-
exclusiveWithNodeHashes
↔ List<
int> ? -
The nodeHash values for nodes that are in an Exclusive Set with this node.
See DestinyTalentGridDefinition.exclusiveSets for more info about exclusive sets.
Again, note that these are nodeHashes and not nodeIndexes.
getter/setter pair
- groupHash ↔ int?
-
As of Destiny 2, nodes can exist as part of "Exclusive Groups". These differ from exclusive sets in that, within the group, many nodes can be activated. But the act of activating any node in the group will cause "opposing" nodes (nodes in groups that are not allowed to be activated at the same time as this group) to deactivate.
See DestinyTalentExclusiveGroup for more information on the details. This is an identifier for this node's group, if it is part of one.
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- ignoreForCompletion ↔ bool?
-
Comes from the talent grid node style: if true, then this node should be ignored for determining whether the grid is complete.
getter/setter pair
- isRandom ↔ bool?
-
If this is true, the node's step is determined randomly rather than the first step being chosen.
getter/setter pair
- isRandomRepurchasable ↔ bool?
-
If this is true, the node can be "re-rolled" to acquire a different random current step. This is not used, but still exists for a theoretical future of talent grids.
getter/setter pair
- lastStepRepeats ↔ bool?
-
At one point, Nodes were going to be able to be activated multiple times, changing the current step and potentially piling on multiple effects from the previously activated steps. This property would indicate if the last step could be activated multiple times.
This is not currently used, but it isn't out of the question that this could end up being used again in a theoretical future.
getter/setter pair
- layoutIdentifier ↔ String?
-
A string identifier for a custom visual layout to apply to this talent node. Unfortunately, we do not have any data for rendering these custom layouts. It will be up to you to interpret these strings and change your UI if you want to have custom UI matching these layouts.
getter/setter pair
- loreHash ↔ int?
-
Talent nodes can be associated with a piece of Lore, generally rendered in a tooltip. This is the hash identifier of the lore element to show, if there is one to be show.
getter/setter pair
- nodeHash ↔ int?
-
The hash identifier for the node, which unfortunately is also content version dependent but can be (and ideally, should be) used instead of the nodeIndex to uniquely identify the node.
The two exist side-by-side for backcompat reasons due to the Great Talent Node Restructuring of Destiny 1, and I ran out of time to remove one of them and standardize on the other. Sorry!
getter/setter pair
- nodeIndex ↔ int?
-
The index into the DestinyTalentGridDefinition's "nodes" property where this node is located. Used to uniquely identify the node within the Talent Grid. Note that this is content version dependent: make sure you have the latest version of content before trying to use these properties.
getter/setter pair
- nodeStyleIdentifier ↔ String?
-
Comes from the talent grid node style: this identifier should be used to determine how to render the node in the UI.
getter/setter pair
-
prerequisiteNodeIndexes
↔ List<
int> ? -
Indexes into the DestinyTalentGridDefinition.nodes property for any nodes that must be activated before this one is allowed to be activated.
I would have liked to change this to hashes for Destiny 2, but we have run out of time.
getter/setter pair
- randomActivationRequirement ↔ DestinyNodeActivationRequirement?
-
At one point, you were going to be able to repurchase talent nodes that had random steps, to "re-roll" the current step of the node (and thus change the properties of your item). This was to be the activation requirement for performing that re-roll.
The system still exists to do this, as far as I know, so it may yet come back around!
getter/setter pair
- randomStartProgressionBarAtProgression ↔ int?
-
If the node's step is randomly selected, this is the amount of the Talent Grid's progression experience at which the progression bar for the node should be shown.
getter/setter pair
- row ↔ int?
-
The visual "row" where the node should be shown in the UI. If negative, then the node is hidden.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
steps
↔ List<
DestinyNodeStepDefinition> ? -
At this point, "steps" have been obfuscated into conceptual entities, aggregating the underlying notions of "properties" and "true steps".
If you need to know a step as it truly exists - such as when recreating Node logic when processing Vendor data - you'll have to use the "realSteps" property below.
getter/setter pair
Methods
-
asyncToJson(
) → Future< Map< String, dynamic> > -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
asyncFromJson(
Map< String, dynamic> json) → Future<DestinyTalentNodeDefinition>