UNPKG

bungie-net-core

Version:

An easy way to interact with the Bungie.net API

166 lines (165 loc) 7.52 kB
/** * 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 { DestinyNodeActivationRequirement } from './DestinyNodeActivationRequirement'; import { DestinyNodeStepDefinition } from './DestinyNodeStepDefinition'; /** * 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). * @see {@link https://bungie-net.github.io/#/components/schemas/Destiny.Definitions.DestinyTalentNodeDefinition} */ export interface DestinyTalentNodeDefinition { /** * 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. */ readonly nodeIndex: number; /** * 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! */ readonly nodeHash: number; /** * The visual "row" where the node should be shown in the UI. If negative, then the * node is hidden. */ readonly row: number; /** * The visual "column" where the node should be shown in the UI. If negative, the * node is hidden. */ readonly column: number; /** * 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. */ readonly prerequisiteNodeIndexes: number[]; /** * 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. */ readonly binaryPairNodeIndex: number; /** * If true, this node will automatically unlock when the Talent Grid's level * reaches the required level of the current step of this node. */ readonly autoUnlocks: boolean; /** * 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. */ readonly lastStepRepeats: boolean; /** * If this is true, the node's step is determined randomly rather than the first * step being chosen. */ readonly isRandom: boolean; /** * 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! */ readonly randomActivationRequirement: DestinyNodeActivationRequirement; /** * 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. */ readonly isRandomRepurchasable: boolean; /** * 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. */ readonly steps: DestinyNodeStepDefinition[]; /** * 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. */ readonly exclusiveWithNodeHashes: number[]; /** * 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. */ readonly randomStartProgressionBarAtProgression: number; /** * 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. */ readonly layoutIdentifier: string; /** * 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. */ readonly groupHash?: number; /** * 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. Mapped to DestinyLoreDefinition in the manifest. */ readonly loreHash?: number; /** * Comes from the talent grid node style: this identifier should be used to * determine how to render the node in the UI. */ readonly nodeStyleIdentifier: string; /** * Comes from the talent grid node style: if true, then this node should be ignored * for determining whether the grid is complete. */ readonly ignoreForCompletion: boolean; }