bungie-net-core
Version:
An easy way to interact with the Bungie.net API
95 lines (94 loc) • 4.96 kB
TypeScript
/**
* Bungie.Net API
* These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.
*
* Contact: support@bungie.com
*
* NOTE: This class is auto generated by the bungie-net-core code generator program
* Repository: {@link https://github.com/owens1127/bungie-net-core}
* Do not edit these files manually.
*/
import { DestinyTalentNodeState } from './DestinyTalentNodeState';
import { DestinyMaterialRequirement } from './Definitions/DestinyMaterialRequirement';
import { DestinyTalentNodeStatBlock } from './DestinyTalentNodeStatBlock';
/**
* I see you've come to find out more about Talent Nodes. I'm so sorry. Talent
* Nodes are the conceptual, visual nodes that appear on Talent Grids. Talent Grids,
* in Destiny 1, were found on almost every instanced item: they had Nodes that
* could be activated to change the properties of the item. In Destiny 2, Talent
* Grids only exist for Builds/Subclasses, and while the basic concept is the same (
* Nodes can be activated once you've gained sufficient Experience on the Item, and
* provide effects), there are some new concepts from Destiny 1. Examine
* DestinyTalentGridDefinition and its subordinates for more information. This is
* the "Live" information for the current status of a Talent Node on a specific
* item. Talent Nodes have many Steps, but only one can be active at any one time:
* and it is the Step that determines both the visual and the game state-changing
* properties that the Node provides. Examine this and
* DestinyTalentNodeStepDefinition carefully. *IMPORTANT NOTE* Talent Nodes are,
* unfortunately, Content Version DEPENDENT. Though they refer to hashes for Nodes
* and Steps, those hashes are not guaranteed to be immutable across content
* versions. This is a source of great exasperation for me, but as a result anyone
* using Talent Grid data must ensure that the content version of their static
* content matches that of the server responses before showing or making decisions
* based on talent grid data.
* @see {@link https://bungie-net.github.io/#/components/schemas/Destiny.DestinyTalentNode}
*/
export interface DestinyTalentNode {
/**
* The index of the Talent Node being referred to (an index into
* DestinyTalentGridDefinition.nodes[]). CONTENT VERSION DEPENDENT.
*/
readonly nodeIndex: number;
/**
* The hash of the Talent Node being referred to (in DestinyTalentGridDefinition.
* nodes). Deceptively CONTENT VERSION DEPENDENT. We have no guarantee of the hash'
* s immutability between content versions.
*/
readonly nodeHash: number;
/**
* An DestinyTalentNodeState enum value indicating the node's state: whether it can
* be activated or swapped, and why not if neither can be performed.
*/
readonly state: DestinyTalentNodeState;
/** If true, the node is activated: it's current step then provides its benefits. */
readonly isActivated: boolean;
/**
* The currently relevant Step for the node. It is this step that has rendering
* data for the node and the benefits that are provided if the node is activated. (
* the actual rules for benefits provided are extremely complicated in theory, but
* with how Talent Grids are being used in Destiny 2 you don't have to worry about
* a lot of those old Destiny 1 rules.) This is an index into:
* DestinyTalentGridDefinition.nodes[nodeIndex].steps[stepIndex]
*/
readonly stepIndex: number;
/**
* If the node has material requirements to be activated, this is the list of those
* requirements.
*/
readonly materialsToUpgrade: DestinyMaterialRequirement[];
/**
* The progression level required on the Talent Grid in order to be able to
* activate this talent node. Talent Grids have their own Progression - similar to
* Character Level, but in this case it is experience related to the item itself.
*/
readonly activationGridLevel: number;
/**
* If you want to show a progress bar or circle for how close this talent node is
* to being activate-able, this is the percentage to show. It follows the node's
* underlying rules about when the progress bar should first show up, and when it
* should be filled.
*/
readonly progressPercent: number;
/**
* Whether or not the talent node is actually visible in the game's UI. Whether you
* want to show it in your own UI is up to you! I'm not gonna tell you who to sock
* it to.
*/
readonly hidden: boolean;
/**
* This property has some history. A talent grid can provide stats on both the item
* it's related to and the character equipping the item. This returns data about
* those stat bonuses.
*/
readonly nodeStatsBlock: DestinyTalentNodeStatBlock;
}