bungie-net-core
Version:
An easy way to interact with the Bungie.net API
96 lines (95 loc) • 4.79 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 { DestinyItemSocketEntryPlugItemDefinition } from './DestinyItemSocketEntryPlugItemDefinition';
import { SocketPlugSources } from '../SocketPlugSources';
/**
* The definition information for a specific socket on an item. This will determine
* how the socket behaves in-game.
* @see {@link https://bungie-net.github.io/#/components/schemas/Destiny.Definitions.DestinyItemSocketEntryDefinition}
*/
export interface DestinyItemSocketEntryDefinition {
/**
* All sockets have a type, and this is the hash identifier for this particular
* type. Use it to look up the DestinySocketTypeDefinition: read there for more
* information on how socket types affect the behavior of the socket. Mapped to
* DestinySocketTypeDefinition in the manifest.
*/
readonly socketTypeHash: number;
/**
* If a valid hash, this is the hash identifier for the
* DestinyInventoryItemDefinition representing the Plug that will be initially
* inserted into the item on item creation. Otherwise, this Socket will either
* start without a plug inserted, or will have one randomly inserted. Mapped to
* DestinyInventoryItemDefinition in the manifest.
*/
readonly singleInitialItemHash: number;
/**
* This is a list of pre-determined plugs that can *always* be plugged into this
* socket, without the character having the plug in their inventory.
*
* If this list is populated, you will not be allowed to plug an arbitrary item in
* the socket: you will only be able to choose from one of these reusable plugs.
*/
readonly reusablePlugItems: DestinyItemSocketEntryPlugItemDefinition[];
/**
* If this is true, then the socket will not be initialized with a plug if the item
* is purchased from a Vendor.
*
* Remember that Vendors are much more than conceptual vendors: they include "
* Collection Kiosks" and other entities. See DestinyVendorDefinition for more
* information.
*/
readonly preventInitializationOnVendorPurchase: boolean;
/**
* If this is true, the perks provided by this socket shouldn't be shown in the
* item's tooltip. This might be useful if it's providing a hidden bonus, or if the
* bonus is less important than other benefits on the item.
*/
readonly hidePerksInItemTooltip: boolean;
/**
* Indicates where you should go to get plugs for this socket. This will affect how
* you populate your UI, as well as what plugs are valid for this socket. It's an
* alternative to having to check for the existence of certain properties (
* reusablePlugItems for example) to infer where plugs should come from. This enum
* represents a set of flags - use bitwise operators to check which of these match
* your value.
*/
readonly plugSources: SocketPlugSources;
/**
* If this socket's plugs come from a reusable DestinyPlugSetDefinition, this is
* the identifier for that set. We added this concept to reduce some major
* duplication that's going to come from sockets as replacements for what was once
* implemented as large sets of items and kiosks (like Emotes).
*
* As of Shadowkeep, these will come up much more frequently and be driven by game
* content rather than custom curation. Mapped to DestinyPlugSetDefinition in the
* manifest.
*/
readonly reusablePlugSetHash?: number;
/**
* This field replaces "randomizedPlugItems" as of Shadowkeep launch. If a socket
* has randomized plugs, this is a pointer to the set of plugs that could be used,
* as defined in DestinyPlugSetDefinition.
*
* If null, the item has no randomized plugs. Mapped to DestinyPlugSetDefinition
* in the manifest.
*/
readonly randomizedPlugSetHash?: number;
/**
* If true, then this socket is visible in the item's "default" state. If you have
* an instance, you should always check the runtime state, as that can override
* this visibility setting: but if you're looking at the item on a conceptual level,
* this property can be useful for hiding data such as legacy sockets - which
* remain defined on items for infrastructure purposes, but can be confusing for
* users to see.
*/
readonly defaultVisible: boolean;
}