bungie-net-core
Version:
An easy way to interact with the Bungie.net API
151 lines (150 loc) • 7.37 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 { DestinyDisplayPropertiesDefinition } from './Common/DestinyDisplayPropertiesDefinition';
import { DamageType } from '../DamageType';
import { DestinyNodeActivationRequirement } from './DestinyNodeActivationRequirement';
import { DestinyTalentNodeStepGroups } from './DestinyTalentNodeStepGroups';
import { DestinyNodeSocketReplaceResponse } from './DestinyNodeSocketReplaceResponse';
/**
* This defines the properties of a "Talent Node Step". When you see a talent node
* in game, the actual visible properties that you see (its icon, description, the
* perks and stats it provides) are not provided by the Node itself, but rather by
* the currently active Step on the node.
*
* When a Talent Node is activated, the currently active step's benefits are
* conferred upon the item and character.
*
* The currently active step on talent nodes are determined when an item is first
* instantiated. Sometimes it is random, sometimes it is more deterministic (
* particularly when a node has only a single step).
*
* Note that, when dealing with Talent Node Steps, you must ensure that you have
* the latest version of content. stepIndex and nodeStepHash - two ways of
* identifying the step within a node - are both content version dependent, and
* thus are subject to change between content updates.
* @see {@link https://bungie-net.github.io/#/components/schemas/Destiny.Definitions.DestinyNodeStepDefinition}
*/
export interface DestinyNodeStepDefinition {
/**
* These are the display properties actually used to render the Talent Node. The
* currently active step's displayProperties are shown.
*/
readonly displayProperties: DestinyDisplayPropertiesDefinition;
/**
* The index of this step in the list of Steps on the Talent Node.
*
* Unfortunately, this is the closest thing we have to an identifier for the Step:
* steps are not provided a content version agnostic identifier. This means that,
* when you are dealing with talent nodes, you will need to first ensure that you
* have the latest version of content.
*/
readonly stepIndex: number;
/**
* The hash of this node step. Unfortunately, while it can be used to uniquely
* identify the step within a node, it is also content version dependent and should
* not be relied on without ensuring you have the latest vesion of content.
*/
readonly nodeStepHash: number;
/**
* If you can interact with this node in some way, this is the localized
* description of that interaction.
*/
readonly interactionDescription: string;
/** An enum representing a damage type granted by activating this step, if any. */
readonly damageType: DamageType;
/**
* If the step provides a damage type, this will be the hash identifier used to
* look up the damage type's DestinyDamageTypeDefinition. Mapped to
* DestinyDamageTypeDefinition in the manifest.
*/
readonly damageTypeHash?: number;
/**
* If the step has requirements for activation (they almost always do, if nothing
* else than for the Talent Grid's Progression to have reached a certain level),
* they will be defined here.
*/
readonly activationRequirement: DestinyNodeActivationRequirement;
/**
* There was a time when talent nodes could be activated multiple times, and the
* effects of subsequent Steps would be compounded on each other, essentially "
* upgrading" the node. We have moved away from this, but theoretically the
* capability still exists.
*
* I continue to return this in case it is used in the future: if true and this
* step is the current step in the node, you are allowed to activate the node a
* second time to receive the benefits of the next step in the node, which will
* then become the active step.
*/
readonly canActivateNextStep: boolean;
/**
* The stepIndex of the next step in the talent node, or -1 if this is the last
* step or if the next step to be chosen is random.
*
* This doesn't really matter anymore unless canActivateNextStep begins to be used
* again.
*/
readonly nextStepIndex: number;
/**
* If true, the next step to be chosen is random, and if you're allowed to activate
* the next step. (if canActivateNextStep = true)
*/
readonly isNextStepRandom: boolean;
/**
* The list of hash identifiers for Perks (DestinySandboxPerkDefinition) that are
* applied when this step is active. Perks provide a variety of benefits and
* modifications - examine DestinySandboxPerkDefinition to learn more. Mapped to
* DestinySandboxPerkDefinition in the manifest.
*/
readonly perkHashes: number[];
/**
* When the Talent Grid's progression reaches this value, the circular "progress
* bar" that surrounds the talent node should be shown.
*
* This also indicates the lower bound of said progress bar, with the upper bound
* being the progress required to reach activationRequirement.gridLevel. (at some
* point I should precalculate the upper bound and put it in the definition to save
* people time)
*/
readonly startProgressionBarAtProgress: number;
/**
* When the step provides stat benefits on the item or character, this is the list
* of hash identifiers for stats (DestinyStatDefinition) that are provided. Mapped
* to DestinyStatDefinition in the manifest.
*/
readonly statHashes: number[];
/**
* If this is true, the step affects the item's Quality in some way. See
* DestinyInventoryItemDefinition for more information about the meaning of Quality.
* I already made a joke about Zen and the Art of Motorcycle Maintenance elsewhere
* in the documentation, so I will avoid doing it again. Oops too late
*/
readonly affectsQuality: boolean;
/**
* In Destiny 1, the Armory's Perk Filtering was driven by a concept of
* TalentNodeStepGroups: categorizations of talent nodes based on their
* functionality. While the Armory isn't a BNet-facing thing for now, and the new
* Armory will need to account for Sockets rather than Talent Nodes, this
* categorization capability feels useful enough to still keep around.
*/
readonly stepGroups: DestinyTalentNodeStepGroups;
/**
* If true, this step can affect the level of the item. See
* DestinyInventoryItemDefintion for more information about item levels and their
* effect on stats.
*/
readonly affectsLevel: boolean;
/**
* If this step is activated, this will be a list of information used to replace
* socket items with new Plugs. See DestinyInventoryItemDefinition for more
* information about sockets and plugs.
*/
readonly socketReplacements: DestinyNodeSocketReplaceResponse[];
}