diff --git a/Runtime/Game/Requests/AssetRequest.cs b/Runtime/Game/Requests/AssetRequest.cs index 66042f56..07cffc8d 100644 --- a/Runtime/Game/Requests/AssetRequest.cs +++ b/Runtime/Game/Requests/AssetRequest.cs @@ -5,6 +5,9 @@ namespace LootLocker.LootLockerEnums { + /// + /// Filter criteria for listing assets based on purchasability, rentability, or popularity. + /// public enum AssetFilter { purchasable, @@ -16,27 +19,33 @@ public enum AssetFilter none } + /// + /// The field by which to order an asset list response. + /// public enum OrderAssetListBy { - // Unordered + /// Do not apply a specific ordering. none, - // Order by asset ID + /// Order by asset ID. id, - // Order by asset name + /// Order by asset name. name, - // Order by when the asset was created + /// Order by when the asset was created. created_at, - // Order by when the asset was last updated + /// Order by when the asset was last updated. updated_at, } + /// + /// The direction in which to order an asset list response. + /// public enum OrderAssetListDirection { - // Unordered + /// Do not apply a specific direction. none, - // Ascending order + /// Order ascending (lowest to highest). asc, - // Descending order + /// Order descending (highest to lowest). desc } } @@ -44,26 +53,44 @@ public enum OrderAssetListDirection namespace LootLocker.Requests { + /// + /// Indicates whether an asset is part of the default loadout configuration. + /// public class LootLockerDefault_Loadouts_Info { + /// Whether this entry represents a default loadout asset. public bool Default { get; set; } } + /// + /// Variation information for a legacy asset, containing the id, name, colors, and links. + /// public class LootLockerVariation_Info { + /// The unique identifier of the variation. public int id { get; set; } + /// The display name of the variation. public string name { get; set; } + /// The primary color of the variation, or null if not set. public object primary_color { get; set; } + /// The secondary color of the variation, or null if not set. public object secondary_color { get; set; } + /// Links associated with the variation. public object links { get; set; } } + /// + /// Request object used internally to track pagination state for legacy asset list calls. + /// [Serializable] public class LootLockerAssetRequest : LootLockerResponse { + /// The number of assets to fetch per page. public int count { get; set; } + /// The id of the last asset retrieved, used for cursor-based pagination. public static int lastId { get; set; } + /// Resets the pagination cursor to the beginning of the asset list. public static void ResetAssetCalls() { lastId = 0; @@ -112,9 +139,9 @@ public class LootLockerAssetExcludes /// public class LootLockerSimpleAssetFilter { - // The key for which to look for the filtered values + /// The key for which to look for the filtered values. public string key { get; set; } - // A list of values to filter by. If the asset has any of these values for the given key, it will be included in the results. + /// A list of values to filter by. If the asset has any of these values for the given key, it will be included in the results. public string[] values { get; set; } } @@ -144,119 +171,216 @@ public class LootLockerListAssetsResponse : LootLockerResponse public LootLockerExtendedPagination pagination { get; set; } } + /// + /// Request to grant an asset to the current player's inventory. + /// public class LootLockerGrantAssetRequest { + /// The id of the asset to grant. public int asset_id { get; set; } + /// The variation id to grant, or null for the default variation. public int? asset_variation_id { get; set; } + /// The rental option id to use, or null if the asset is not rented. public int? asset_rental_option_id { get; set; } } + /// + /// Response containing a list of assets returned by a legacy asset request. + /// public class LootLockerAssetResponse : LootLockerResponse { + /// The list of assets returned by the endpoint. public LootLockerCommonAsset[] assets { get; set; } } + /// + /// Response containing a single asset. + /// public class LootLockerSingleAssetResponse : LootLockerResponse { + /// The requested asset. public LootLockerCommonAsset asset { get; set; } } + /// + /// Response containing the full details of an asset, returned by the legacy common asset endpoint. + /// [Serializable] public class LootLockerCommonAssetResponse : LootLockerResponse { + /// The legacy integer id of the asset. public int id { get; set; } + /// The UUID of the asset. public string uuid { get; set; } + /// The ULID of the asset. public string ulid { get; set; } + /// The display name of the asset. public string name { get; set; } + /// Whether the asset is currently active. public bool active { get; set; } + /// Whether the asset can be purchased. public bool purchasable { get; set; } + /// The type category of the asset. public string type { get; set; } + /// The regular price of the asset. public int price { get; set; } + /// The sale price of the asset, or null if not on sale. public int? sales_price { get; set; } + /// A formatted string representation of the price for display purposes. public string display_price { get; set; } + /// The context (category) the asset belongs to. public string context { get; set; } + /// The context unlocked by equipping this asset. public string unlocks_context { get; set; } + /// Whether this asset can be removed from an equip slot after being equipped. public bool detachable { get; set; } + /// When the asset was last updated, as a date string. public string updated { get; set; } + /// When the asset was marked as new, as a date string. public string marked_new { get; set; } + /// The id of the variation that is selected by default. public int default_variation_id { get; set; } + /// The description of the asset. public string description { get; set; } + /// Named links (e.g. image URLs) associated with this asset. public LootLockerLinks links { get; set; } + /// Key-value storage entries attached to this asset. public LootLockerStorage[] storage { get; set; } + /// Rarity information for this asset. public LootLockerRarity rarity { get; set; } + /// Whether this asset is popular. public bool popular { get; set; } + /// A numeric score used to rank asset popularity. public int popularity_score { get; set; } + /// Whether each grant of this asset creates a unique inventory instance. public bool unique_instance { get; set; } + /// Available rental options for this asset. public LootLockerRental_Options[] rental_options { get; set; } + /// Filters (tags) applied to this asset for categorisation. public LootLockerFilter[] filters { get; set; } + /// Variations available for this asset. public LootLockerVariation[] variations { get; set; } + /// Whether this asset is featured. public bool featured { get; set; } + /// Whether this asset is locked to its context. public bool context_locked { get; set; } + /// Whether this asset can be purchased initially. public bool initially_purchasable { get; set; } + /// Files associated with this asset. public LootLockerFile[] files { get; set; } + /// Information about the UGC creator of this asset, if applicable. public LootLockerAssetCandidate asset_candidate { get; set; } + /// Data entities attached to this asset. public string[] data_entities { get; set; } } /// - /// A simplified asset object to improve performance + /// A simplified asset object to improve performance by including only the fields most commonly needed. /// [Serializable] public class LootLockerSimpleAsset { + /// The legacy integer id of the asset. public int asset_id { get; set; } + /// The UUID of the asset. public string asset_uuid { get; set; } + /// The ULID of the asset. public string asset_ulid { get; set; } + /// The display name of the asset. public string asset_name { get; set; } + /// The id of the context this asset belongs to. public int context_id { get; set; } + /// The name of the context this asset belongs to. public string context_name { get; set; } + /// The player who authored this asset, if it is user-generated content. public LootLockerSimpleAssetAuthor author { get; set; } + /// Key-value storage entries attached to this asset, if requested. public LootLockerStorage[] storage { get; set; } + /// Files associated with this asset, if requested. public LootLockerSimpleAssetFile[] files { get; set; } + /// Data entities attached to this asset, if requested. public LootLockerSimpleAssetDataEntity[] data_entities { get; set; } + /// Metadata entries associated with this asset, if requested. public LootLockerMetadataEntry[] metadata { get; set; } } + /// + /// Authorship information for a user-generated content (UGC) asset. + /// public class LootLockerSimpleAssetAuthor { + /// The legacy integer id of the player who authored the asset. public int player_id { get; set; } + /// The ULID of the player who authored the asset. public string player_ulid { get; set; } + /// The public UID of the player who authored the asset. public string public_uid { get; set; } + /// The current display name of the player who authored the asset. public string active_name { get; set; } } + /// + /// A file associated with a simplified asset, providing the size, name, URL, and optional tags. + /// public class LootLockerSimpleAssetFile { + /// The file size in bytes. public int size { get; set; } + /// The file name. public string name { get; set; } + /// The URL from which the file can be downloaded. public string url { get; set; } + /// Tags categorising or labelling the file. public string[] tags { get; set; } } + /// + /// A named data entity attached to a simplified asset. + /// public class LootLockerSimpleAssetDataEntity { + /// The name of this data entity. public string name { get; set; } + /// The data payload of this entity, as a JSON string or raw value. public string data { get; set; } } + /// + /// Indicates whether a legacy asset entry is part of the player's default loadout. + /// public class LootLockerDefault_Loadouts { + /// Whether this asset is in the default loadout. public bool Default { get; set; } } + /// + /// Response containing the list of asset ids that the current player has marked as favourites. + /// public class LootLockerFavouritesListResponse : LootLockerResponse { + /// The list of asset ids marked as favourites by the current player. public int[] favourites { get; set; } } + /// + /// Response returned after granting an asset to the current player's inventory. + /// public class LootLockerGrantAssetResponse : LootLockerResponse { + /// The inventory instance id of the granted item. public int id { get; set; } + /// The id of the asset that was granted. public int asset_id { get; set; } + /// The ULID of the asset that was granted. public string asset_ulid { get; set; } + /// The variation id of the granted item, or null for the default variation. public int? asset_variation_id { get; set; } + /// The rental option id of the granted item, or null if not rented. public int? asset_rental_option_id { get; set; } + /// The source through which this item was acquired. public string acquisition_source { get; set; } + /// The date and time when this item was acquired, as a string. public string acquisition_date { get; set; } } } diff --git a/Runtime/Game/Requests/BalanceRequests.cs b/Runtime/Game/Requests/BalanceRequests.cs index 353163f4..c4210c25 100644 --- a/Runtime/Game/Requests/BalanceRequests.cs +++ b/Runtime/Game/Requests/BalanceRequests.cs @@ -19,6 +19,7 @@ namespace LootLocker.Requests //================================================== /// + /// The current balance of a specific currency held by a wallet. /// public class LootLockerBalance { @@ -41,6 +42,7 @@ public class LootLockerBalance }; /// + /// A currency modifier applied to a wallet that adjusts the effective value of a currency. /// public class LootLockerBalanceModifiers { @@ -75,6 +77,7 @@ public class LootLockerBalanceModifiers //================================================== /// + /// Request to create a new wallet for a player or character. /// public class LootLockerCreateWalletRequest { @@ -93,6 +96,7 @@ public class LootLockerCreateWalletRequest }; /// + /// Request to credit (add) an amount of currency to a wallet. /// public class LootLockerCreditRequest { @@ -110,6 +114,7 @@ public class LootLockerCreditRequest }; /// + /// Request to debit (remove) an amount of currency from a wallet. /// public class LootLockerDebitRequest { @@ -131,6 +136,7 @@ public class LootLockerDebitRequest //================================================== /// + /// Response containing all currency balances in a wallet. /// public class LootLockerListBalancesForWalletResponse : LootLockerResponse { @@ -141,6 +147,7 @@ public class LootLockerListBalancesForWalletResponse : LootLockerResponse }; /// + /// Response containing the details of a player or character wallet. /// public class LootLockerGetWalletResponse : LootLockerResponse { @@ -163,6 +170,7 @@ public class LootLockerGetWalletResponse : LootLockerResponse }; /// + /// Response returned after crediting an amount to a wallet, showing the resulting balance. /// public class LootLockerCreditWalletResponse : LootLockerResponse { @@ -185,6 +193,7 @@ public class LootLockerCreditWalletResponse : LootLockerResponse } /// + /// Response returned after debiting an amount from a wallet, showing the resulting balance. /// public class LootLockerDebitWalletResponse : LootLockerResponse { @@ -207,6 +216,7 @@ public class LootLockerDebitWalletResponse : LootLockerResponse } /// + /// Response returned after successfully creating a new wallet. /// public class LootLockerCreateWalletResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/CatalogRequests.cs b/Runtime/Game/Requests/CatalogRequests.cs index 09cd6cdb..ab58036e 100644 --- a/Runtime/Game/Requests/CatalogRequests.cs +++ b/Runtime/Game/Requests/CatalogRequests.cs @@ -23,6 +23,7 @@ namespace LootLocker.Requests //================================================== /// + /// A LootLocker catalog listing, containing entries with prices and entity details. /// public class LootLockerCatalog { @@ -49,6 +50,7 @@ public class LootLockerCatalog } /// + /// A price entry for a catalog item, specifying the currency amount and display value. /// public class LootLockerCatalogEntryPrice { @@ -79,6 +81,7 @@ public class LootLockerCatalogEntryPrice } /// + /// Apple App Store listing information for a catalog entry. /// public class LootLockerCatalogAppleAppStoreListing { @@ -89,6 +92,7 @@ public class LootLockerCatalogAppleAppStoreListing } /// + /// Google Play Store listing information for a catalog entry. /// public class LootLockerCatalogGooglePlayStoreListing { @@ -99,6 +103,7 @@ public class LootLockerCatalogGooglePlayStoreListing } /// + /// A Steam Store price entry specifying currency code and amount for a catalog listing. /// public class LootLockerCatalogSteamStoreListingPrice { @@ -113,6 +118,7 @@ public class LootLockerCatalogSteamStoreListingPrice } /// + /// Steam Store listing information for a catalog entry. /// public class LootLockerCatalogSteamStoreListing { @@ -127,6 +133,7 @@ public class LootLockerCatalogSteamStoreListing } /// + /// Stripe Store listing information for a catalog entry. /// public class LootLockerCatalogStripeStoreListing { @@ -157,6 +164,7 @@ public class LootLockerCatalogPlaystationStoreListing } /// + /// All store-specific listing information for a catalog entry across supported platforms. /// public class LootLockerCatalogEntryListings { @@ -271,6 +279,7 @@ public LootLockerAssetItemDetailsKey(LootLockerItemDetailsKey key) } /// + /// A single entry in a LootLocker catalog, combining entity metadata with prices and store listings. /// public class LootLockerCatalogEntry { @@ -318,6 +327,7 @@ public LootLockerItemDetailsKey GetItemDetailsKey() } /// + /// Details about an asset entity referenced by a catalog entry. /// public class LootLockerAssetDetails { @@ -373,6 +383,7 @@ public LootLockerAssetItemDetailsKey GetAssetItemDetailsKey() } /// + /// Details about a progression points entity referenced by a catalog entry. /// public class LootLockerProgressionPointDetails { @@ -407,6 +418,7 @@ public LootLockerItemDetailsKey GetItemDetailsKey() } /// + /// Details about a progression reset entity referenced by a catalog entry. /// public class LootLockerProgressionResetDetails { @@ -437,6 +449,7 @@ public LootLockerItemDetailsKey GetItemDetailsKey() } /// + /// Details about a currency entity referenced by a catalog entry. /// public class LootLockerCurrencyDetails { @@ -568,6 +581,7 @@ public LootLockerItemDetailsKey GetItemDetailsKey() //================================================== /// + /// Response containing a list of all catalogs available for the game. /// public class LootLockerListCatalogsResponse : LootLockerResponse { @@ -578,6 +592,7 @@ public class LootLockerListCatalogsResponse : LootLockerResponse } /// + /// Response containing a catalog's entries and all associated entity detail lookup maps. /// public class LootLockerListCatalogPricesResponse : LootLockerResponse { @@ -778,6 +793,7 @@ public LootLockerListCatalogPricesResponse(LootLockerResponse serverResponse) } /// + /// A catalog entry with all relevant entity details inlined for convenient access without separate lookup maps. /// public class LootLockerInlinedCatalogEntry : LootLockerCatalogEntry { @@ -951,6 +967,7 @@ public LootLockerInlinedCatalogEntry[] GetLootLockerInlinedCatalogEntries() } /// + /// Response (v2) containing a catalog's entries and all associated entity detail lookup maps. /// public class LootLockerListCatalogPricesV2Response : LootLockerResponse { @@ -1155,6 +1172,7 @@ public LootLockerListCatalogPricesV2Response(LootLockerResponse serverResponse) } /// + /// A catalog entry with all relevant entity details inlined for convenient access without separate lookup maps. /// public class LootLockerInlinedCatalogEntry : LootLockerCatalogEntry { diff --git a/Runtime/Game/Requests/ClassRequests.cs b/Runtime/Game/Requests/ClassRequests.cs index 819da59c..8ef92e82 100644 --- a/Runtime/Game/Requests/ClassRequests.cs +++ b/Runtime/Game/Requests/ClassRequests.cs @@ -9,16 +9,22 @@ namespace LootLocker.Requests { + /// + /// Response containing the currently equipped loadout for the default class. + /// public class LootLockerGetCurrentLoadoutToDefaultClassResponse : LootLockerResponse { + /// The loadout items currently equipped on the default class. public LootLockerDefaultClassLoadout[] loadout { get; set; } + /// Returns the context names of all equipped assets. public string[] GetContexts() { string[] context = loadout.Select(x => x.asset.context).ToArray(); return context; } + /// Returns the asset objects of all equipped items. public LootLockerCommonAsset[] GetAssets() { LootLockerCommonAsset[] context = loadout.Select(x => x.asset).ToArray(); @@ -26,22 +32,39 @@ public LootLockerCommonAsset[] GetAssets() } } + /// + /// A single loadout slot on the default class, combining asset details with equip metadata. + /// public class LootLockerDefaultClassLoadout { + /// The id of the asset variation that is equipped in this slot. public int variation_id { get; set; } + /// The inventory instance id of the equipped asset. public int instance_id { get; set; } + /// When this item was equipped. public DateTime mounted_at { get; set; } + /// Full asset details for the equipped item. public LootLockerCommonAsset asset { get; set; } + /// Rental status for the equipped item, if it was acquired as a rental. public LootLockerRental rental { get; set; } } + /// + /// A default loadout entry for a class type, pairing an asset with its expected id and variation. + /// public class LootLockerClassTypeDefaultLoadout { + /// The id of the asset that is part of the default loadout. public int asset_id { get; set; } + /// The variation id of the asset to use in the default loadout. public int asset_variation_id { get; set; } + /// Full asset details. public LootLockerCommonAsset asset { get; set; } } + /// + /// Response containing a list of available class types for this game. + /// public class LootLockerListClassTypesResponse : LootLockerResponse { #if LOOTLOCKER_USE_NEWTONSOFTJSON @@ -49,76 +72,129 @@ public class LootLockerListClassTypesResponse : LootLockerResponse #else [Json(Name = "character_types")] #endif + /// The list of class types available for this game, deserialized from the "character_types" JSON field. public LootLockerClassTypes[] class_types { get; set; } } + /// + /// Describes a class type, including its identifier, name, default storage, and default loadout. + /// public class LootLockerClassTypes { + /// The unique integer id of this class type. public int id { get; set; } + /// Whether this is the default class type. public bool is_default { get; set; } + /// The display name of this class type. public string name { get; set; } + /// Key-value storage entries attached to this class type. public LootLockerStorage[] storage { get; set; } + /// The default loadout assets associated with this class type. public LootLockerClassTypeDefaultLoadout[] default_loadout { get; set; } } + /// + /// A single item in a class's equipped loadout, pairing an asset with its equip slot metadata. + /// public class LootLockerLoadouts { + /// The id of the asset variation equipped in this slot. public string variation_id { get; set; } + /// The inventory instance id of the equipped asset. public int instance_id { get; set; } + /// When this item was equipped. public DateTime mounted_at { get; set; } + /// Full asset details for the equipped item. public LootLockerCommonAsset asset { get; set; } } + /// + /// Request to create a new class for the current player. + /// public class LootLockerCreateClassRequest { + /// Whether the newly created class should be set as the player's default class. public bool is_default { get; set; } + /// The display name for the new class. public string name { get; set; } + /// The id of the class type to use for the new class. public string character_type_id { get; set; } } + /// + /// Request to update an existing class for the current player. + /// public class LootLockerUpdateClassRequest { + /// Whether to set this class as the player's default class. public bool is_default { get; set; } + /// The new display name for the class. public string name { get; set; } } + /// + /// Request to equip an asset to a class by its inventory instance id. + /// public class LootLockerEquipByIDRequest { + /// The inventory instance id of the asset to equip. public int instance_id { get; set; } } + /// + /// Request to equip an asset to a class by specifying the asset id and variation. + /// public class LootLockerEquipByAssetRequest { + /// The id of the asset to equip. public int asset_id { get; set; } + /// The id of the asset variation to equip. public int asset_variation_id { get; set; } } + /// + /// Response containing the current loadout for one or more classes belonging to the player. + /// public class LootLockerClassLoadoutResponse : LootLockerResponse { + /// The list of class loadout entries returned by the endpoint. public LootLockerClassLoadout[] loadouts { get; set; } + /// Returns the class object matching the given name, or null if not found. public LootLockerClass GetClass(string name) { LootLockerClass lootLockerCharacter = loadouts.FirstOrDefault(x => x.Class.name == name)?.Class; return lootLockerCharacter; } + /// Returns all class objects from the loadout entries. public LootLockerClass[] GetClassess() { return loadouts.Select(x => x.Class).ToArray(); } } + /// + /// Identifies a class belonging to a player, including its type and whether it is the default. + /// public class LootLockerClass { + /// The unique integer id of this class. public int id { get; set; } + /// The class type name. public string type { get; set; } + /// The display name of this class. public string name { get; set; } + /// The ULID of this class. public string ulid { get; set; } + /// Whether this is the player's default class. public bool is_default { get; set; } } + /// + /// A class and its associated equipped loadout items, as returned from class loadout endpoints. + /// public class LootLockerClassLoadout { #if LOOTLOCKER_USE_NEWTONSOFTJSON @@ -126,10 +202,15 @@ public class LootLockerClassLoadout #else [Json(Name = "character")] #endif + /// The class associated with this loadout entry. public LootLockerClass Class { get; set; } + /// The list of equipped loadout items for this class. public LootLockerLoadouts[] loadout { get; set; } } + /// + /// Response containing the class that received the equipped asset along with its updated loadout. + /// public class EquipAssetToClassLoadoutResponse : LootLockerResponse { #if LOOTLOCKER_USE_NEWTONSOFTJSON @@ -137,11 +218,17 @@ public class EquipAssetToClassLoadoutResponse : LootLockerResponse #else [Json(Name = "character")] #endif + /// The class that had the asset equipped. public LootLockerClass Class { get; set; } + /// The updated list of equipped loadout items for this class. public LootLockerLoadouts[] loadout { get; set; } + /// An error message, if the equip operation failed. public string error { get; set; } } + /// + /// Response containing a list of all classes belonging to the current player. + /// public class LootLockerPlayerClassListResponse : LootLockerResponse { #if LOOTLOCKER_USE_NEWTONSOFTJSON @@ -149,6 +236,7 @@ public class LootLockerPlayerClassListResponse : LootLockerResponse #else [Json(Name = "items")] #endif + /// The list of classes belonging to the current player. public LootLockerClass[] classes { get; set; } } diff --git a/Runtime/Game/Requests/ConnectedAccountRequest.cs b/Runtime/Game/Requests/ConnectedAccountRequest.cs index 62c81ab4..458b11d1 100644 --- a/Runtime/Game/Requests/ConnectedAccountRequest.cs +++ b/Runtime/Game/Requests/ConnectedAccountRequest.cs @@ -36,6 +36,7 @@ namespace LootLocker.Requests //================================================== /// + /// An account provider linked to the current player's LootLocker account. /// public class LootLockerConnectedAccountProvider { @@ -54,6 +55,7 @@ public class LootLockerConnectedAccountProvider //================================================== /// + /// Request to link a Google account to the current player's LootLocker account using an id token. /// public class LootLockerConnectGoogleProviderToAccountRequest { @@ -64,6 +66,7 @@ public class LootLockerConnectGoogleProviderToAccountRequest } /// + /// Request to link a Google account to the current player's LootLocker account, specifying the OAuth2 client platform. /// public class LootLockerConnectGoogleProviderToAccountWithPlatformRequest { @@ -78,6 +81,7 @@ public class LootLockerConnectGoogleProviderToAccountWithPlatformRequest } /// + /// Request to link a remote session to the current player's LootLocker account using a lease code and nonce. /// public class LootLockerConnectRemoteSessionToAccountRequest { @@ -92,6 +96,7 @@ public class LootLockerConnectRemoteSessionToAccountRequest } /// + /// Request to transfer connected account providers from one LootLocker player account to another. /// public class LootLockerTransferProvidersBetweenAccountsRequest { @@ -110,6 +115,7 @@ public class LootLockerTransferProvidersBetweenAccountsRequest } /// + /// Request to link an Apple account to the current player's LootLocker account using an authorization code. /// public class LootLockerConnectAppleRestProviderToAccountRequest { @@ -120,6 +126,7 @@ public class LootLockerConnectAppleRestProviderToAccountRequest } /// + /// Request to link an Epic Games account to the current player's LootLocker account. /// public class LootLockerConnectEpicProviderToAccountRequest { @@ -130,6 +137,7 @@ public class LootLockerConnectEpicProviderToAccountRequest } /// + /// Request to link a PlayStation account to the current player's LootLocker account. /// public class LootLockerConnectPlaystationProviderToAccountRequest { @@ -144,6 +152,7 @@ public class LootLockerConnectPlaystationProviderToAccountRequest } /// + /// Request to link a Discord account to the current player's LootLocker account. /// public class LootLockerConnectDiscordProviderToAccountRequest { @@ -154,6 +163,7 @@ public class LootLockerConnectDiscordProviderToAccountRequest } /// + /// Request to link a Twitch account to the current player's LootLocker account using an authorization code. /// public class LootLockerConnectTwitchProviderToAccountRequest { @@ -168,6 +178,7 @@ public class LootLockerConnectTwitchProviderToAccountRequest //================================================== /// + /// Response returned after successfully connecting an account provider to the current player's LootLocker account. /// public class LootLockerAccountConnectedResponse : LootLockerResponse { @@ -178,6 +189,7 @@ public class LootLockerAccountConnectedResponse : LootLockerResponse } /// + /// Response containing all account providers connected to the current player's LootLocker account. /// public class LootLockerListConnectedAccountsResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/CurrencyRequests.cs b/Runtime/Game/Requests/CurrencyRequests.cs index b898617f..05eb5719 100644 --- a/Runtime/Game/Requests/CurrencyRequests.cs +++ b/Runtime/Game/Requests/CurrencyRequests.cs @@ -67,6 +67,7 @@ public class LootLockerDenomination //================================================== /// + /// Response containing a list of all available currencies for this game. /// public class LootLockerListCurrenciesResponse : LootLockerResponse { @@ -77,6 +78,7 @@ public class LootLockerListCurrenciesResponse : LootLockerResponse }; /// + /// Response containing a list of all denominations for a specific currency. /// public class LootLockerListDenominationsResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/EntitlementRequests.cs b/Runtime/Game/Requests/EntitlementRequests.cs index d01a86b9..7f67fd2f 100644 --- a/Runtime/Game/Requests/EntitlementRequests.cs +++ b/Runtime/Game/Requests/EntitlementRequests.cs @@ -48,6 +48,7 @@ namespace LootLocker.Requests //================================================== /// + /// An individual item within an entitlement listing, referencing a catalog item. /// public class LootLockerEntitlementHistoryItem { @@ -84,6 +85,7 @@ public class LootLockerEntitlementHistoryItem } /// + /// A metadata key-value pair attached to an entitlement listing, carrying additional context about the entitlement. /// public class LootLockerEntitlementHistoryMetadata { @@ -100,6 +102,7 @@ public class LootLockerEntitlementHistoryMetadata } /// + /// A reward (such as a leaderboard or progression reward) included in an entitlement listing. /// public class LootLockerEntitlementHistoryReward { @@ -121,6 +124,7 @@ public class LootLockerEntitlementHistoryReward } /// + /// A complete entitlement listing, grouping items, rewards, and metadata for a single entitlement event. /// public class LootLockerEntitlementListing { @@ -172,6 +176,7 @@ public class LootLockerEntitlementListing //================================================== /// + /// Response containing a paginated history of entitlement listings for the current player. /// public class LootLockerEntitlementHistoryResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/FollowerRequests.cs b/Runtime/Game/Requests/FollowerRequests.cs index ed764631..011a2f35 100644 --- a/Runtime/Game/Requests/FollowerRequests.cs +++ b/Runtime/Game/Requests/FollowerRequests.cs @@ -38,6 +38,7 @@ public class LootLockerFollower //================================================== /// + /// Response containing a paginated list of followers for a player. /// public class LootLockerListFollowersResponse : LootLockerResponse { @@ -52,6 +53,7 @@ public class LootLockerListFollowersResponse : LootLockerResponse } /// + /// Response containing a paginated list of players that the specified player is following. /// public class LootLockerListFollowingResponse : LootLockerResponse { @@ -72,6 +74,7 @@ public class LootLockerListFollowingResponse : LootLockerResponse } /// + /// Response for follow/unfollow operations (follow, unfollow). /// public class LootLockerFollowersOperationResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/LeaderboardDetailsRequest.cs b/Runtime/Game/Requests/LeaderboardDetailsRequest.cs index d05f2c9e..dce5e2a2 100644 --- a/Runtime/Game/Requests/LeaderboardDetailsRequest.cs +++ b/Runtime/Game/Requests/LeaderboardDetailsRequest.cs @@ -5,6 +5,9 @@ namespace LootLocker.Requests { + /// + /// Response containing the full configuration details of a specific leaderboard, including its schedule and rewards. + /// public class LootLockerLeaderboardDetailResponse : LootLockerResponse { /// @@ -53,6 +56,9 @@ public class LootLockerLeaderboardDetailResponse : LootLockerResponse public string ulid { get; set; } } + /// + /// A currency reward attached to a leaderboard, describing the currency and amount to grant when the reward is triggered. + /// public class LootLockerLeaderboardRewardCurrency { /// @@ -81,6 +87,9 @@ public class LootLockerLeaderboardRewardCurrency public string currency_id { get; set; } } + /// + /// Details about the currency associated with a leaderboard currency reward. + /// public class LootLockerLeaderboardRewardCurrencyDetails { /// @@ -101,6 +110,9 @@ public class LootLockerLeaderboardRewardCurrencyDetails public string id { get; set; } } + /// + /// A progression points reward attached to a leaderboard, granting points to a specific progression when triggered. + /// public class LootLockerLeaderboardRewardProgression { /// @@ -129,6 +141,9 @@ public class LootLockerLeaderboardRewardProgression public string reward_id { get; set; } } + /// + /// Details about the progression associated with a leaderboard progression points reward. + /// public class LootLockerLeaderboardRewardProgressionDetails { /// @@ -149,6 +164,9 @@ public class LootLockerLeaderboardRewardProgressionDetails public string id { get; set; } } + /// + /// A progression reset reward attached to a leaderboard, resetting a specific progression when triggered. + /// public class LootLockerLeaderboardRewardProgressionReset { /// @@ -173,6 +191,9 @@ public class LootLockerLeaderboardRewardProgressionReset public string reward_id { get; set; } } + /// + /// Details about the progression associated with a leaderboard progression reset reward. + /// public class LootLockerLeaderboardRewardProgressionResetDetails { /// @@ -189,6 +210,9 @@ public class LootLockerLeaderboardRewardProgressionResetDetails public string id { get; set; } } + /// + /// An asset reward attached to a leaderboard, granting a specific asset (or variation or rental) when triggered. + /// public class LootLockerLeaderboardRewardAsset { /// @@ -225,6 +249,9 @@ public class LootLockerLeaderboardRewardAsset public string asset_ulid { get; set; } } + /// + /// Details about the asset associated with a leaderboard asset reward. + /// public class LootLockerLeaderboardRewardAssetDetails { /// @@ -261,6 +288,9 @@ public class LootLockerLeaderboardRewardAssetDetails public string id { get; set; } } + /// + /// A reward attached to a leaderboard. The reward kind determines which reward type field is populated. + /// public class LootLockerLeaderboardReward { /// @@ -293,6 +323,9 @@ public class LootLockerLeaderboardReward public LootLockerLeaderboardRewardGroup group { get; set; } } + /// + /// Rank range predicates determining which players receive a specific leaderboard reward. + /// public class LootLockerLeaderboardRewardPredicates { /// @@ -309,6 +342,9 @@ public class LootLockerLeaderboardRewardPredicates public LootLockerLeaderboardRewardPredicatesArgs args { get; set; } } + /// + /// The rank range arguments for a leaderboard reward predicate, defining the min/max rank boundaries and method. + /// public class LootLockerLeaderboardRewardPredicatesArgs { /// @@ -329,6 +365,9 @@ public class LootLockerLeaderboardRewardPredicatesArgs public string direction { get; set; } } + /// + /// A group reward attached to a leaderboard, bundling multiple rewards of different types into a single named group. + /// public class LootLockerLeaderboardRewardGroup { /// @@ -358,6 +397,9 @@ public class LootLockerLeaderboardRewardGroup } + /// + /// A single reward entry within a leaderboard reward group, specifying the kind and the associated reward details. + /// public class LootLockerLeaderboardGroupRewardAssociations { /// @@ -387,6 +429,9 @@ public class LootLockerLeaderboardGroupRewardAssociations } + /// + /// The reset schedule configuration for a leaderboard, including a cron expression and the next and last reset dates. + /// public class LootLockerLeaderboardSchedule { /// diff --git a/Runtime/Game/Requests/LeaderboardRequest.cs b/Runtime/Game/Requests/LeaderboardRequest.cs index 82abc238..83264b16 100644 --- a/Runtime/Game/Requests/LeaderboardRequest.cs +++ b/Runtime/Game/Requests/LeaderboardRequest.cs @@ -7,6 +7,10 @@ namespace LootLocker.Requests //================================================== // Data Definitions //================================================== + + /// + /// Details about a leaderboard's configuration, schedule, and rewards. + /// public class LootLockerLeaderboardDetails { /// @@ -55,28 +59,50 @@ public class LootLockerLeaderboardDetails public LootLockerLeaderboardReward[] rewards { get; set; } } + /// + /// Basic player information as returned in leaderboard entries. + /// public class LootLockerPlayer { + /// The legacy integer id of the player. public int id { get; set; } + /// The public UID of the player. public string public_uid { get; set; } + /// The display name of the player. public string name { get; set; } + /// The ULID of the player. public string ulid { get; set; } } + /// + /// A single member's entry on a leaderboard, including their rank, score, metadata, and player information. + /// public class LootLockerLeaderboardMember { + /// The member id used to identify this entry on a generic leaderboard. public string member_id { get; set; } + /// The rank of this member on the leaderboard. public int rank { get; set; } + /// The score of this member. public int score { get; set; } + /// Player information for this member, if the leaderboard is a player leaderboard. public LootLockerPlayer player { get; set; } + /// Optional metadata string attached to this score submission. public string metadata { get; set; } } + /// + /// A player's rank entry across a specific leaderboard, linking the rank details to the leaderboard identifier. + /// public class LootLockerLeaderboard { + /// The rank details for the player on this leaderboard. public LootLockerLeaderboardMember rank { get; set; } + /// The legacy integer id of the leaderboard. public int leaderboard_id { get; set; } + /// The key used to identify this leaderboard. public string leaderboard_key { get; set; } + /// The ULID of this leaderboard. public string ulid { get; set; } } @@ -124,12 +150,20 @@ public class LootLockerLeaderboardArchiveDetails public int score { get; set; } } + /// + /// Pagination state for leaderboard cursor-based pagination. + /// public class LootLockerPagination { + /// The total number of entries on the leaderboard. public int total { get; set; } + /// The cursor value for the next page of results, or null if on the last page. public int? next_cursor { get; set; } + /// The cursor value for the previous page of results, or null if on the first page. public int? previous_cursor { get; set; } + /// Whether there is a next page of results available. public bool allowNext { get; set; } + /// Whether there is a previous page of results available. public bool allowPrev { get; set; } } @@ -158,30 +192,54 @@ public class LootLockerLeaderBoardPlayer //================================================== // Request Definitions //================================================== + + /// + /// Pagination parameters for requesting a range of leaderboard entries. + /// public class LootLockerGetRequests { + /// The maximum number of entries to return per page. public int count { get; set; } + /// A cursor value specifying the entry after which to begin returning results. public string after { get; set; } } + /// + /// Request to submit or update a score on a leaderboard. + /// public class LootLockerSubmitScoreRequest { + /// The member id to attribute this score to on a generic leaderboard. public string member_id { get; set; } + /// The score value to submit. public int score { get; set; } + /// Optional metadata string to attach to this score submission. public string metadata { get; set; } } + /// + /// Request to query the theoretical rank a given score would achieve on a leaderboard. + /// public class LootLockerQueryScoreRequest { + /// The score value to query the rank for. public int score { get; set; } } + /// + /// Request to increment a member's score on a leaderboard by the given amount. + /// public class LootLockerIncrementScoreRequest { + /// The member id of the entry to increment. public string member_id { get; set; } + /// The amount by which to increment the score. public int amount { get; set; } } + /// + /// Request to retrieve entries from an archived (past) leaderboard. + /// [Serializable] public class LootLockerLeaderboardArchiveRequest { @@ -199,18 +257,30 @@ public class LootLockerLeaderboardArchiveRequest public string after { get; set; } } + /// + /// Request to fetch the rank of a specific member on a leaderboard. + /// public class LootLockerGetMemberRankRequest { + /// The key or id of the leaderboard to query. public string leaderboardId { get; set; } + /// The member id to find the rank for. public string member_id { get; set; } } + /// + /// Request to retrieve a paginated score list for a specific leaderboard, with cursor-based pagination state. + /// public class LootLockerGetScoreListRequest : LootLockerGetRequests { + /// The key of the leaderboard to retrieve scores from. public string leaderboardKey { get; set; } + /// The cursor for the next page of results. public static int? nextCursor { get; set; } + /// The cursor for the previous page of results. public static int? prevCursor { get; set; } + /// Resets the pagination cursors to the start of the leaderboard. public static void Reset() { nextCursor = 0; @@ -218,12 +288,19 @@ public static void Reset() } } + /// + /// Request to retrieve leaderboard ranks for all leaderboards a specific member appears on. + /// public class LootLockerGetAllMemberRanksRequest : LootLockerGetRequests { + /// The legacy integer id of the member to look up. public int member_id { get; set; } + /// The cursor for the next page of results. public static int? nextCursor { get; set; } + /// The cursor for the previous page of results. public static int? prevCursor { get; set; } + /// Resets the pagination cursors. public static void Reset() { nextCursor = 0; @@ -231,8 +308,12 @@ public static void Reset() } } + /// + /// Request to retrieve leaderboard scores for a list of specific member ids. + /// public class LootLockerGetByListMembersRequest { + /// The member ids to retrieve scores for. public string[] members { get; set; } } @@ -240,8 +321,9 @@ public class LootLockerGetByListMembersRequest // Response Definitions //================================================== - // - // + /// + /// Response containing a paginated list of leaderboard definitions. + /// public class LootLockerListLeaderboardsResponse : LootLockerResponse { /// @@ -249,48 +331,79 @@ public class LootLockerListLeaderboardsResponse : LootLockerResponse /// public LootLockerPaginationResponse pagination { get; set; } - // - // List of details for the requested leaderboards - // + /// + /// List of details for the requested leaderboards + /// public LootLockerLeaderboardDetails[] items { get; set; } } + /// + /// Response containing the rank and score for a specific member on a leaderboard. + /// public class LootLockerGetMemberRankResponse : LootLockerResponse { - // we are doing thisfor legacy reasons, since it is no longer being set on the backend + /// The member id for this entry (set for legacy compatibility). public string member_id { get; set; } + /// The rank of this member on the leaderboard. public int rank { get; set; } + /// The score of this member. public int score { get; set; } + /// Player information for this member, if the leaderboard is a player leaderboard. public LootLockerPlayer player { get; set; } + /// Optional metadata string attached to this score submission. public string metadata { get; set; } } + /// + /// Response containing the leaderboard entries for a list of specific member ids. + /// public class LootLockerGetByListOfMembersResponse : LootLockerResponse { + /// The leaderboard entries for the requested members. public LootLockerLeaderboardMember[] members { get; set; } } + /// + /// Response containing a paginated list of scores for a specific leaderboard. + /// public class LootLockerGetScoreListResponse : LootLockerResponse { + /// Pagination data for this request. public LootLockerPagination pagination { get; set; } + /// The leaderboard entries returned for this page. public LootLockerLeaderboardMember[] items { get; set; } } + /// + /// Response containing all leaderboard ranks for a specific member across all leaderboards. + /// public class LootLockerGetAllMemberRanksResponse : LootLockerResponse { + /// The leaderboard rank entries for the requested member. public LootLockerLeaderboard[] leaderboards { get; set; } + /// Pagination data for this request. public LootLockerPagination pagination { get; set; } } + /// + /// Response returned after submitting a score to a leaderboard, showing the resulting rank. + /// public class LootLockerSubmitScoreResponse : LootLockerResponse { + /// The member id of the entry that was submitted or updated. public string member_id { get; set; } + /// The resulting rank of the member after the score was submitted. public int rank { get; set; } + /// The submitted score value. public int score { get; set; } + /// The optional metadata string attached to this submission. public string metadata { get; set; } } + /// + /// Response containing a list of archived (past) leaderboard snapshots. + /// public class LootLockerLeaderboardArchiveResponse : LootLockerResponse { /// @@ -299,6 +412,9 @@ public class LootLockerLeaderboardArchiveResponse : LootLockerResponse public LootLockerLeaderboardArchive[] archives { get; set; } } + /// + /// Response containing the paginated entries from a specific archived leaderboard snapshot. + /// public class LootLockerLeaderboardArchiveDetailsResponse : LootLockerResponse { /// diff --git a/Runtime/Game/Requests/LootLockerCommonRequestTypes.cs b/Runtime/Game/Requests/LootLockerCommonRequestTypes.cs index bae3617f..dafd0214 100644 --- a/Runtime/Game/Requests/LootLockerCommonRequestTypes.cs +++ b/Runtime/Game/Requests/LootLockerCommonRequestTypes.cs @@ -3,15 +3,25 @@ namespace LootLocker.Requests { + /// + /// A key-value pair used to store arbitrary data on a player or asset. + /// public class LootLockerStorage { + /// The unique identifier for this storage entry. public int id { get; set; } + /// The key for this storage entry. public string key { get; set; } + /// The value for this storage entry. public string value { get; set; } } + /// + /// A dictionary of named links (URLs) associated with an asset, with a convenience accessor for the thumbnail URL. + /// public class LootLockerLinks : Dictionary { + /// The URL pointing to the asset's thumbnail image, if available. public string thumbnail { get @@ -33,135 +43,243 @@ public string thumbnail } } + /// + /// Rarity information for an asset, describing its name, short code, and display color. + /// public class LootLockerRarity { + /// The full name of the rarity tier (e.g. "Legendary"). public string name { get; set; } + /// A short code for the rarity tier (e.g. "L"). public string short_name { get; set; } + /// The hex color code associated with this rarity tier. public string color { get; set; } } + /// + /// A rental option available for an asset, defining duration, price, and related links. + /// public class LootLockerRental_Options { + /// The unique identifier for this rental option. public int id { get; set; } + /// The display name of this rental option. public string name { get; set; } + /// The rental duration in seconds. public int duration { get; set; } + /// The regular price for this rental option. public int price { get; set; } + /// The sale price for this rental option, or null if not on sale. public object sales_price { get; set; } + /// Links associated with this rental option. public object links { get; set; } } + /// + /// A filter applied to an asset, consisting of a name-value pair used to categorise or tag the asset. + /// public class LootLockerFilter { + /// The value of this filter tag. public string value { get; set; } + /// The name of this filter tag. public string name { get; set; } } + /// + /// A named variation of an asset with optional color information and associated links. + /// public class LootLockerVariation { + /// The unique identifier of this variation. public int id { get; set; } + /// The display name of this variation. public string name { get; set; } + /// The primary color of this variation, or null if not set. public object primary_color { get; set; } + /// The secondary color of this variation, or null if not set. public object secondary_color { get; set; } + /// A dictionary of named links (e.g. image URLs) associated with this variation. public Dictionary links { get; set; } } + /// + /// A file associated with an asset, described by a URL and an optional set of tags. + /// public class LootLockerFile { + /// The URL from which the file can be downloaded. public string url { get; set; } + /// Tags categorising or labelling the file. public string[] tags { get; set; } } + /// + /// Information about the player who submitted an asset as a user-generated content (UGC) candidate. + /// public class LootLockerAssetCandidate { + /// The legacy integer id of the player who created this asset candidate. public int created_by_player_id { get; set; } + /// The public UID of the player who created this asset candidate. public string created_by_player_uid { get; set; } } + /// + /// A full asset object containing all properties of a LootLocker asset, including variations, rental options, storage, and files. + /// [Serializable] public class LootLockerCommonAsset { + /// The legacy integer id of the asset. public int id { get; set; } + /// The UUID of the asset. public string uuid { get; set; } + /// The ULID of the asset. public string ulid { get; set; } + /// The display name of the asset. public string name { get; set; } + /// Whether the asset is currently active. public bool active { get; set; } + /// Whether the asset can be purchased. public bool purchasable { get; set; } + /// The type category of the asset (e.g. "character", "consumable"). public string type { get; set; } + /// The regular price of the asset. public int price { get; set; } + /// The sale price of the asset, or null if not on sale. public int? sales_price { get; set; } + /// A formatted string representation of the price for display purposes. public string display_price { get; set; } + /// The context (category) the asset belongs to. public string context { get; set; } + /// The context unlocked by equipping this asset. public string unlocks_context { get; set; } + /// Whether this asset can be removed from an equip slot after being equipped. public bool detachable { get; set; } + /// When the asset was last updated, as a date string. public string updated { get; set; } + /// When the asset was marked as new, as a date string. public string marked_new { get; set; } + /// The id of the variation that is selected by default. public int default_variation_id { get; set; } + /// The description of the asset. public string description { get; set; } + /// Named links (e.g. image URLs) associated with this asset. public LootLockerLinks links { get; set; } public LootLockerStorage[] storage { get; set; } public LootLockerRarity rarity { get; set; } public bool popular { get; set; } public int popularity_score { get; set; } public bool unique_instance { get; set; } + /// Available rental options for this asset. public LootLockerRental_Options[] rental_options { get; set; } + /// Filters (tags) applied to this asset for categorisation. public LootLockerFilter[] filters { get; set; } + /// Variations available for this asset. public LootLockerVariation[] variations { get; set; } + /// Whether this asset is featured. public bool featured { get; set; } + /// Whether this asset is locked to its context and cannot be used outside of it. public bool context_locked { get; set; } + /// Whether this asset can be purchased initially (before any special conditions are met). public bool initially_purchasable { get; set; } + /// Files associated with this asset. public LootLockerFile[] files { get; set; } + /// Information about the UGC creator of this asset, if applicable. public LootLockerAssetCandidate asset_candidate { get; set; } + /// Data entities attached to this asset. public string[] data_entities { get; set; } } + /// + /// Rental status information for an inventory item that was acquired as a rental. + /// [Serializable] public class LootLockerRental { + /// Whether this inventory item is a rental. public bool is_rental { get; set; } + /// The amount of time remaining on the rental, as a formatted string. public string time_left { get; set; } + /// The total duration of the rental, as a formatted string. public string duration { get; set; } + /// Whether the rental is currently active. public string is_active { get; set; } } + /// + /// Response containing a list of available asset contexts (categories). + /// public class LootLockerContextResponse : LootLockerResponse { + /// The list of asset contexts available for this game. public LootLockerContext[] contexts { get; set; } } + /// + /// An asset context (category) that defines a slot or grouping in which assets can be equipped. + /// public class LootLockerContext { + /// The unique integer identifier of this context. public int id { get; set; } + /// The UUID of this context. public string uuid { get; set; } + /// The internal name of this context. public string name { get; set; } + /// The player-facing display name of this context. public string friendly_name { get; set; } + /// Whether assets in this context can be removed after equipping. public bool detachable { get; set; } + /// Whether this context is visible to players. public bool user_facing { get; set; } + /// The id of an asset that must be equipped before assets in this context can be used, or null if there is no dependency. public object dependent_asset_id { get; set; } + /// The maximum number of assets from this context that can be equipped simultaneously. public int max_equip_count { get; set; } } + /// + /// Response containing the time remaining after activating a rental asset. + /// public class LootLockerActivateRentalAssetResponse : LootLockerResponse { + /// The number of seconds remaining on the activated rental. public int time_left { get; set; } } + /// + /// Response containing the player's full inventory. + /// [Serializable] public class LootLockerInventoryResponse : LootLockerResponse { + /// The list of inventory items owned by the player. public LootLockerInventory[] inventory { get; set; } } + /// + /// A single item in a player's inventory, combining asset details with instance-specific metadata. + /// public class LootLockerInventory { + /// The unique identifier for this specific inventory instance. public int instance_id { get; set; } + /// The id of the asset variation for this item, or null for the default variation. public int? variation_id { get; set; } + /// The id of the rental option used to acquire this item, or null if not rented. public string rental_option_id { get; set; } + /// The source through which this item was acquired (e.g. "purchase", "grant"). public string acquisition_source { get; set; } + /// When this item was acquired, or null if the date is not available. public DateTime? acquisition_date { get; set; } + /// Full asset details for this inventory item. public LootLockerCommonAsset asset { get; set; } + /// Rental status for this item, if it was acquired as a rental. public LootLockerRental rental { get; set; } - + /// The current balance associated with this inventory item. public float balance { get; set; } } } \ No newline at end of file diff --git a/Runtime/Game/Requests/MetadataRequests.cs b/Runtime/Game/Requests/MetadataRequests.cs index c95b99a8..896c274c 100644 --- a/Runtime/Game/Requests/MetadataRequests.cs +++ b/Runtime/Game/Requests/MetadataRequests.cs @@ -213,6 +213,7 @@ public bool TryGetValueAsBase64(out LootLockerMetadataBase64Value output) } /// + /// A source identifier paired with a list of metadata keys, used to specify which keys to retrieve from a given source. /// public class LootLockerMetadataSourceAndKeys { @@ -231,6 +232,7 @@ public class LootLockerMetadataSourceAndKeys } /// + /// A source identifier paired with its retrieved metadata entries. /// public class LootLockerMetadataSourceAndEntries { @@ -261,6 +263,7 @@ public class LootLockerMetadataOperationErrorKeyTypePair } /// + /// An error that occurred while performing a metadata operation, identifying the action, entry, and reason for failure. /// public class LootLockerMetadataOperationError { @@ -279,6 +282,7 @@ public class LootLockerMetadataOperationError } /// + /// A metadata entry combined with the action to perform on it (create, update, delete). /// public class LootLockerMetadataOperation : LootLockerMetadataEntry { @@ -289,6 +293,7 @@ public class LootLockerMetadataOperation : LootLockerMetadataEntry } /// + /// An internal representation of a metadata operation with string-typed enum fields, used for serializing requests. /// public class LootLockerInternalMetadataOperationWithStringEnums : LootLockerMetadataOperation { @@ -313,6 +318,7 @@ public LootLockerInternalMetadataOperationWithStringEnums(LootLockerMetadataOper //================================================== /// + /// Request to retrieve metadata from multiple sources at once. /// public class LootLockerGetMultisourceMetadataRequest { @@ -323,6 +329,7 @@ public class LootLockerGetMultisourceMetadataRequest } /// + /// Internal request object for a batch of metadata operations on a specific source. /// public class LootLockerInternalMetadataOperationRequest { @@ -348,6 +355,7 @@ public class LootLockerInternalMetadataOperationRequest // Response Definitions //================================================== /// + /// Response containing a paginated list of metadata entries for a source. /// public class LootLockerListMetadataResponse : LootLockerResponse { @@ -362,6 +370,7 @@ public class LootLockerListMetadataResponse : LootLockerResponse }; /// + /// Response containing a single metadata entry retrieved by key. /// public class LootLockerGetMetadataResponse : LootLockerResponse { @@ -372,6 +381,7 @@ public class LootLockerGetMetadataResponse : LootLockerResponse }; /// + /// Response containing metadata entries for multiple sources, grouped by source. /// public class LootLockerGetMultisourceMetadataResponse : LootLockerResponse { @@ -382,6 +392,7 @@ public class LootLockerGetMultisourceMetadataResponse : LootLockerResponse }; /// + /// Response from a metadata operations request, indicating the source and any errors that occurred. /// public class LootLockerMetadataOperationsResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/NotificationRequests.cs b/Runtime/Game/Requests/NotificationRequests.cs index 2e427d16..f08ad7fa 100644 --- a/Runtime/Game/Requests/NotificationRequests.cs +++ b/Runtime/Game/Requests/NotificationRequests.cs @@ -150,6 +150,7 @@ namespace LootLocker.Requests //================================================== /// + /// A key-value pair providing additional context for a notification. /// public class LootLockerNotificationContextEntry { @@ -164,6 +165,7 @@ public class LootLockerNotificationContextEntry }; /// + /// A currency reward attached to a notification. /// public class LootLockerNotificationRewardCurrency { @@ -194,6 +196,7 @@ public class LootLockerNotificationRewardCurrency } /// + /// Details about the currency included in a notification reward. /// public class LootLockerNotificationRewardCurrencyDetails { @@ -216,6 +219,7 @@ public class LootLockerNotificationRewardCurrencyDetails } /// + /// A progression points reward attached to a notification. /// public class LootLockerNotificationRewardProgression { @@ -246,6 +250,7 @@ public class LootLockerNotificationRewardProgression } /// + /// Details about the progression included in a notification reward. /// public class LootLockerNotificationRewardProgressionDetails { @@ -268,6 +273,7 @@ public class LootLockerNotificationRewardProgressionDetails } /// + /// A progression reset reward attached to a notification. /// public class LootLockerNotificationRewardProgressionReset { @@ -294,6 +300,7 @@ public class LootLockerNotificationRewardProgressionReset } /// + /// Details about the progression reset included in a notification reward. /// public class LootLockerNotificationRewardProgressionResetDetails { @@ -312,6 +319,7 @@ public class LootLockerNotificationRewardProgressionResetDetails } /// + /// An asset reward attached to a notification. /// public class LootLockerNotificationRewardAsset { @@ -350,6 +358,7 @@ public class LootLockerNotificationRewardAsset } /// + /// Details about the asset included in a notification reward. /// public class LootLockerNotificationRewardAssetDetails { @@ -388,6 +397,7 @@ public class LootLockerNotificationRewardAssetDetails } /// + /// A group reward attached to a notification, containing multiple reward associations. /// public class LootLockerNotificationRewardGroup { @@ -418,6 +428,7 @@ public class LootLockerNotificationRewardGroup } /// + /// An individual reward association within a notification group reward. /// public class LootLockerNotificationGroupRewardAssociations { @@ -449,6 +460,7 @@ public class LootLockerNotificationGroupRewardAssociations } /// + /// The reward body of a notification. Use the field to determine which reward field is populated. /// public class LootLockerNotificationContentRewardBody { @@ -480,6 +492,7 @@ public class LootLockerNotificationContentRewardBody }; /// + /// The content of a notification, including context key-value pairs and the reward body. /// public class LootLockerNotificationContent { @@ -691,6 +704,7 @@ public bool TryGetContentBodyAsTypeArray(out T[] output) }; /// + /// A single notification for the player, including type, source, priority, content, and read status. /// public class LootLockerNotification { @@ -753,6 +767,7 @@ public void MarkThisNotificationAsRead(Action + /// Request to mark one or more notifications as read. /// public class LootLockerReadNotificationsRequest { @@ -767,6 +782,7 @@ public class LootLockerReadNotificationsRequest //================================================== /// + /// Response containing a paginated list of notifications for the player. /// public class LootLockerListNotificationsResponse : LootLockerResponse { @@ -955,6 +971,7 @@ public void PopulateConvenienceStructures() private readonly List UnreadNotifications = new List(); /// + /// Internal lookup entry mapping an identifying key to a notification's index and ID. /// private struct LootLockerNotificationLookupTableEntry { @@ -966,6 +983,7 @@ private struct LootLockerNotificationLookupTableEntry }; /// + /// Response returned after marking notifications as read. /// public class LootLockerReadNotificationsResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/PlayerRequest.cs b/Runtime/Game/Requests/PlayerRequest.cs index ea6fd5a7..22783a44 100644 --- a/Runtime/Game/Requests/PlayerRequest.cs +++ b/Runtime/Game/Requests/PlayerRequest.cs @@ -12,43 +12,76 @@ namespace LootLocker.Requests // Data Definitions //================================================== + /// + /// First-party platform identifiers (Steam, Xbox, PSN) linked to a player's account. + /// public class PlatformIDs { + /// The player's Steam id, or null if not linked. public ulong? steam_id { get; set; } + /// The player's Xbox id, or null if not linked. public string xbox_id { get; set; } + /// The player's PSN id, or null if not linked. public ulong? psn_id { get; set; } } + /// + /// Player information combined with all linked first-party platform identifiers. + /// public class PlayerWith1stPartyPlatformIDs { + /// The legacy integer id of the player. public uint player_id { get; set; } + /// The public UID of the player. public string player_public_uid { get; set; } + /// The display name of the player. public string name { get; set; } + /// The platform the player was last active on. public string last_active_platform { get; set; } + /// The first-party platform identifiers linked to this player. public PlatformIDs platform_ids { get; set; } } + /// + /// Player name and various identifier forms used for player lookup operations. + /// public class PlayerNameWithIDs { + /// The legacy integer id of the player. public uint player_id { get; set; } + /// The public UID of the player. public string player_public_uid { get; set; } + /// The ULID of the player. public string ulid { get; set; } + /// The display name of the player. public string name { get; set; } + /// The platform the player was last active on. public string last_active_platform { get; set; } + /// The platform-specific player identifier on the last active platform. public string platform_player_id { get; set; } } + /// + /// A deactivated asset and its replacement, used to notify the player that an asset they own has been retired. + /// [Serializable] public class LootLockerDeactivatedObjects { + /// The id of the asset that was deactivated. public int deactivated_asset_id { get; set; } + /// The id of the replacement asset, if one is available. public int replacement_asset_id { get; set; } + /// The reason the asset was deactivated. public string reason { get; set; } } + /// + /// A helper class used internally to represent an asset class name. + /// [Serializable] public class LootLockerAssetClass { + /// The asset class name. public string Asset { get; set; } } @@ -91,11 +124,18 @@ public class LootLockerSimpleInventoryItem public LootLockerMetadataEntry[] metadata { get; set; } } + /// + /// A reward object linking an inventory instance to the underlying asset details. + /// public class LootLockerRewardObject { + /// The inventory instance id of the reward item. public int instance_id { get; set; } + /// The variation id of the reward item, or null for the default variation. public int? variation_id { get; set; } + /// The source through which this reward was acquired. public string acquisition_source { get; set; } + /// Full asset details for the reward item. public LootLockerCommonAsset asset { get; set; } } @@ -133,12 +173,19 @@ public class LootLockerPlayerInfo //================================================== // Request Definitions //================================================== + /// + /// Request to set or update the name of the current player. + /// [Serializable] public class PlayerNameRequest { + /// The new name to assign to the player. public string name { get; set; } } + /// + /// Request to look up the first-party platform ids for multiple players identified by their legacy ids or public UIDs. + /// public class LookupPlayer1stPartyPlatformIDsRequest { public ulong[] player_ids { get; set; } @@ -152,6 +199,7 @@ public LookupPlayer1stPartyPlatformIDsRequest() } /// + /// Request to look up basic info for multiple players identified by their ULID, legacy id, or public UID. /// public class LootLockerListPlayerInfoRequest { @@ -228,44 +276,71 @@ public class LootLockerListSimplifiedInventoryRequest //================================================== // Response Definitions //================================================== + /// + /// A base response type for operations that return no payload beyond success or error state. + /// [Serializable] public class LootLockerStandardResponse : LootLockerResponse { } + /// + /// Response containing a list of players and their linked first-party platform identifiers. + /// [Serializable] public class Player1stPartyPlatformIDsLookupResponse : LootLockerResponse { + /// The list of players with their first-party platform ids. public PlayerWith1stPartyPlatformIDs[] players { get; set; } } + /// + /// Response containing a list of players with their names and various identifier forms. + /// [Serializable] public class PlayerNameLookupResponse : LootLockerResponse { + /// The list of matched players with their names and identifiers. public PlayerNameWithIDs[] players { get; set; } } + /// + /// Response containing the current player's display name. + /// [Serializable] public class PlayerNameResponse : LootLockerResponse { + /// The current display name of the player. public string name { get; set; } } + /// + /// Response containing the list of DLC package identifiers owned by the current player. + /// [Serializable] public class LootLockerDlcResponse : LootLockerResponse { + /// The list of DLC identifiers owned by the player. public string[] dlcs { get; set; } } + /// + /// Response containing assets that have been deactivated and their replacements, if any. + /// [Serializable] public class LootLockerDeactivatedAssetsResponse : LootLockerResponse { + /// The list of deactivated asset entries. public LootLockerDeactivatedObjects[] objects { get; set; } } + /// + /// Response containing the current player's currency balance. + /// [Serializable] public class LootLockerBalanceResponse : LootLockerResponse { + /// The player's current currency balance, or null if unavailable. public int? balance { get; set; } } @@ -285,17 +360,29 @@ public class LootLockerSimpleInventoryResponse : LootLockerResponse public LootLockerExtendedPagination pagination { get; set; } } + /// + /// Response containing a list of files attached to the player's account. + /// public class LootLockerPlayerFilesResponse : LootLockerResponse { + /// The list of player files. public LootLockerPlayerFile[] items { get; set; } } + /// + /// A file stored on a player's account, with download URL, metadata, and expiration information. + /// public class LootLockerPlayerFile : LootLockerResponse { + /// The unique identifier of this player file. public int id { get; set; } + /// The revision id for this file version. public string revision_id { get; set; } + /// The file name. public string name { get; set; } + /// The file size in bytes. public int size { get; set; } + /// The purpose or category tag for this file. public string purpose { get; set; } #if LOOTLOCKER_USE_NEWTONSOFTJSON @@ -303,18 +390,27 @@ public class LootLockerPlayerFile : LootLockerResponse #else [Json(Name = "public")] #endif + /// Whether this file is publicly accessible. public bool is_public { get; set; } + /// The signed URL to download this file. public string url { get; set; } + /// When the signed URL expires. public DateTime url_expires_at { get; set; } + /// When this file was created. public DateTime created_at { get; set; } } + /// + /// Response containing asset reward notifications for the current player. + /// public class LootLockerPlayerAssetNotificationsResponse : LootLockerResponse { + /// The list of asset reward objects the player has been notified about. public LootLockerRewardObject[] objects { get; set; } } /// + /// Response containing key information about the currently logged-in player. /// public class LootLockerGetCurrentPlayerInfoResponse : LootLockerResponse { @@ -325,6 +421,7 @@ public class LootLockerGetCurrentPlayerInfoResponse : LootLockerResponse } /// + /// Response containing key information about one or more looked-up players. /// public class LootLockerListPlayerInfoResponse : LootLockerResponse { diff --git a/Runtime/Game/Requests/ProgressionsRequest.cs b/Runtime/Game/Requests/ProgressionsRequest.cs index 5754c3d4..f3e6a7f5 100644 --- a/Runtime/Game/Requests/ProgressionsRequest.cs +++ b/Runtime/Game/Requests/ProgressionsRequest.cs @@ -3,200 +3,372 @@ namespace LootLocker.Requests { + /// + /// Response containing details about a single progression definition. + /// public class LootLockerProgressionResponse : LootLockerResponse { + /// The unique identifier of the progression. public string id { get; set; } + /// The key used to identify this progression in the API. public string key { get; set; } + /// The human-readable name of the progression. public string name { get; set; } + /// Whether this progression is currently active. public bool active { get; set; } } + /// + /// Response containing a paginated list of progression definitions. + /// public class LootLockerPaginatedProgressionsResponse : LootLockerResponse { + /// Pagination data for iterating through the full list. public LootLockerPaginationResponse pagination { get; set; } + /// The list of progression definitions returned by this page. public List items { get; set; } - + + /// + /// A single progression definition within a paginated progressions list. + /// public class LootLockerProgression { + /// The unique identifier of the progression. public string id { get; set; } + /// The key used to identify this progression in the API. public string key { get; set; } + /// The human-readable name of the progression. public string name { get; set; } + /// Whether this progression is currently active. public bool active { get; set; } } } + /// + /// Response containing the current progression status for a player on a specific progression. + /// public class LootLockerPlayerProgressionResponse : LootLockerResponse { + /// The unique identifier of this player progression record. public string id { get; set; } + /// The key of the progression this record belongs to. public string progression_key { get; set; } + /// The id of the progression this record belongs to. public string progression_id { get; set; } + /// The name of the progression this record belongs to. public string progression_name { get; set; } + /// The current level (step) the player has reached in this progression. public ulong step { get; set; } + /// The total number of points accumulated in this progression. public ulong points { get; set; } + /// The points threshold for the current level. public ulong previous_threshold { get; set; } + /// The points threshold for the next level, or null if the player is at the maximum level. public ulong? next_threshold { get; set; } + /// When the player last levelled up in this progression, or null if they have never levelled up. public DateTime? last_level_up { get; set; } } + /// + /// Response containing a paginated list of a player's progression statuses across multiple progressions. + /// public class LootLockerPaginatedPlayerProgressionsResponse : LootLockerResponse { + /// Pagination data for iterating through the full list. public LootLockerPaginationResponse pagination { get; set; } + /// The list of player progression statuses returned by this page. public List items { get; set; } - + + /// + /// A single player progression status within a paginated player progressions list. + /// public class LootLockerPlayerProgression { + /// The unique identifier of this player progression record. public string id { get; set; } + /// The key of the progression this record belongs to. public string progression_key { get; set; } + /// The id of the progression this record belongs to. public string progression_id { get; set; } + /// The name of the progression this record belongs to. public string progression_name { get; set; } + /// The current level (step) the player has reached in this progression. public ulong step { get; set; } + /// The total number of points accumulated in this progression. public ulong points { get; set; } + /// The points threshold for the current level. public ulong previous_threshold { get; set; } + /// The points threshold for the next level, or null if the player is at the maximum level. public ulong? next_threshold { get; set; } + /// When the player last levelled up in this progression, or null if they have never levelled up. public DateTime? last_level_up { get; set; } } } + /// + /// Response containing the updated player progression status along with any tiers awarded as a result of the points change. + /// public class LootLockerPlayerProgressionWithRewardsResponse : LootLockerPlayerProgressionResponse { + /// List of progression tiers awarded to the player as a result of the points change. public List awarded_tiers { get; set; } } + /// + /// Response containing the current progression status for a character on a specific progression. + /// public class LootLockerCharacterProgressionResponse : LootLockerResponse { + /// The unique identifier of this character progression record. public string id { get; set; } + /// The key of the progression this record belongs to. public string progression_key { get; set; } + /// The id of the progression this record belongs to. public string progression_id { get; set; } + /// The name of the progression this record belongs to. public string progression_name { get; set; } + /// The current level (step) the character has reached in this progression. public ulong step { get; set; } + /// The total number of points accumulated in this progression. public ulong points { get; set; } + /// The points threshold for the current level. public ulong previous_threshold { get; set; } + /// The points threshold for the next level, or null if the character is at the maximum level. public ulong? next_threshold { get; set; } + /// When the character last levelled up in this progression, or null if they have never levelled up. public DateTime? last_level_up { get; set; } } + /// + /// Response containing a paginated list of a character's progression statuses across multiple progressions. + /// public class LootLockerPaginatedCharacterProgressionsResponse : LootLockerResponse { + /// Pagination data for iterating through the full list. public LootLockerPaginationResponse pagination { get; set; } public List items { get; set; } - + + /// + /// A single character progression status within a paginated character progressions list. + /// public class LootLockerCharacterProgression { + /// The unique identifier of this character progression record. public string id { get; set; } + /// The key of the progression this record belongs to. public string progression_key { get; set; } + /// The id of the progression this record belongs to. public string progression_id { get; set; } + /// The name of the progression this record belongs to. public string progression_name { get; set; } + /// The current level (step) the character has reached in this progression. public ulong step { get; set; } + /// The total number of points accumulated in this progression. public ulong points { get; set; } + /// The points threshold for the current level. public ulong previous_threshold { get; set; } + /// The points threshold for the next level, or null if the character is at the maximum level. public ulong? next_threshold { get; set; } + /// When the character last levelled up in this progression, or null if they have never levelled up. public DateTime? last_level_up { get; set; } } } + /// + /// Response containing the updated character progression status along with any tiers awarded as a result of the points change. + /// public class LootLockerCharacterProgressionWithRewardsResponse : LootLockerCharacterProgressionResponse { + /// List of progression tiers awarded to the character as a result of the points change. public List awarded_tiers { get; set; } } + /// + /// Response containing the current progression status for an asset instance on a specific progression. + /// public class LootLockerAssetInstanceProgressionResponse : LootLockerResponse { + /// The unique identifier of this asset instance progression record. public string id { get; set; } + /// The key of the progression this record belongs to. public string progression_key { get; set; } + /// The id of the progression this record belongs to. public string progression_id { get; set; } + /// The name of the progression this record belongs to. public string progression_name { get; set; } + /// The current level (step) the asset instance has reached in this progression. public ulong step { get; set; } + /// The total number of points accumulated in this progression. public ulong points { get; set; } + /// The points threshold for the current level. public ulong previous_threshold { get; set; } + /// The points threshold for the next level, or null if the asset instance is at the maximum level. public ulong? next_threshold { get; set; } + /// When the asset instance last levelled up in this progression, or null if it has never levelled up. public DateTime? last_level_up { get; set; } } + /// + /// Response containing a paginated list of an asset instance's progression statuses across multiple progressions. + /// public class LootLockerPaginatedAssetInstanceProgressionsResponse : LootLockerResponse { + /// Pagination data for iterating through the full list. public LootLockerPaginationResponse pagination { get; set; } + /// The list of asset instance progression statuses returned by this page. public List items { get; set; } + /// + /// A single asset instance progression status within a paginated asset instance progressions list. + /// public class LootLockerAssetInstanceProgression { + /// The unique identifier of this asset instance progression record. public string id { get; set; } + /// The key of the progression this record belongs to. public string progression_key { get; set; } + /// The id of the progression this record belongs to. public string progression_id { get; set; } + /// The name of the progression this record belongs to. public string progression_name { get; set; } + /// The current level (step) the asset instance has reached in this progression. public ulong step { get; set; } + /// The total number of points accumulated in this progression. public ulong points { get; set; } + /// The points threshold for the current level. public ulong previous_threshold { get; set; } + /// The points threshold for the next level, or null if the asset instance is at the maximum level. public ulong? next_threshold { get; set; } + /// When the asset instance last levelled up in this progression, or null if it has never levelled up. public DateTime? last_level_up { get; set; } } } + /// + /// Response containing the updated asset instance progression status along with any tiers awarded as a result of the points change. + /// public class LootLockerAssetInstanceProgressionWithRewardsResponse : LootLockerAssetInstanceProgressionResponse { + /// List of progression tiers awarded to the asset instance as a result of the points change. public List awarded_tiers { get; set; } } + /// + /// A progression tier that was awarded to a player, character, or asset instance as a result of earning enough points. + /// public class LootLockerAwardedTier { + /// The level number (step) of the tier that was awarded. public ulong step { get; set; } + /// The cumulative points threshold required to reach this tier. public ulong points_threshold { get; set; } + /// The rewards granted when this tier was unlocked. public LootLockerRewards rewards { get; set; } } + /// + /// An asset reward attached to a progression tier, describing which asset (and optionally which variation or rental option) is granted. + /// public class LootLockerAssetReward { + /// The id of the asset to grant. public int asset_id { get; set; } + /// The id of the asset variation to grant, or null for the default variation. public int? asset_variation_id { get; set; } + /// The id of the rental option to grant, or null if the asset is not rented. public int? asset_rental_option_id { get; set; } } + /// + /// A progression points reward attached to a progression tier, describing how many points are added to another progression when this tier is unlocked. + /// public class LootLockerProgressionPointsReward { + /// The id of the progression to which points will be added. public string progression_id { get; set; } + /// The key of the progression to which points will be added. public string progression_key { get; set; } + /// The name of the progression to which points will be added. public string progression_name { get; set; } + /// The number of points to add to the target progression. public ulong amount { get; set; } } + /// + /// A progression reset reward attached to a progression tier, causing another progression to be reset when this tier is unlocked. + /// public class LootLockerProgressionResetReward { + /// The id of the progression that will be reset. public string progression_id { get; set; } + /// The key of the progression that will be reset. public string progression_key { get; set; } + /// The name of the progression that will be reset. public string progression_name { get; set; } } + /// + /// A currency reward attached to a progression tier, describing how much of a given currency is granted when this tier is unlocked. + /// public class LootLockerCurrencyReward { + /// The human-readable name of the currency. public string currency_name { get; set; } + /// The short code used to identify the currency. public string currency_code { get; set; } + /// The amount of currency to grant, as a string to preserve precision. public string amount { get; set; } } + /// + /// The full set of rewards attached to a progression tier, across all reward types. + /// public class LootLockerRewards { + /// Rewards that grant points to another progression. public List progression_points_rewards { get; set; } + /// Rewards that reset another progression. public List progression_reset_rewards { get; set; } + /// Rewards that grant an asset to the player's inventory. public List asset_rewards { get; set; } + /// Rewards that grant an amount of currency to the player. public List currency_rewards { get; set; } } + /// + /// Response containing a paginated list of tiers for a specific progression. + /// public class LootLockerPaginatedProgressionTiersResponse : LootLockerResponse { + /// Pagination data for iterating through the full list. public LootLockerPaginationResponse pagination { get; set; } + /// The list of progression tiers returned by this page. public List items { get; set; } + /// + /// A single tier definition within a paginated progression tiers list. + /// public class LootLockerProgressionTier { + /// The level number (step) of this tier. public ulong step { get; set; } + /// The cumulative points threshold required to reach this tier. public ulong points_threshold { get; set; } + /// The rewards granted when this tier is unlocked. public LootLockerRewards rewards { get; set; } } } + /// + /// Response containing details about a single progression tier. + /// public class LootLockerProgressionTierResponse : LootLockerResponse { + /// The level number (step) of this tier. public ulong step { get; set; } + /// The cumulative points threshold required to reach this tier. public ulong points_threshold { get; set; } + /// The rewards granted when this tier is unlocked. public LootLockerRewards rewards { get; set; } } } \ No newline at end of file diff --git a/Runtime/Game/Requests/RemoteSessionRequest.cs b/Runtime/Game/Requests/RemoteSessionRequest.cs index bfd243e7..ced41f2d 100644 --- a/Runtime/Game/Requests/RemoteSessionRequest.cs +++ b/Runtime/Game/Requests/RemoteSessionRequest.cs @@ -40,6 +40,7 @@ namespace LootLocker.Requests //================================================== /// + /// Request to initiate a remote session lease process. /// public class LootLockerLeaseRemoteSessionRequest { @@ -65,6 +66,7 @@ public LootLockerLeaseRemoteSessionRequest(string titleId, string environmentId) } /// + /// Request to start an authorized remote session using the lease code from a completed lease process. /// public class LootLockerStartRemoteSessionRequest { @@ -87,6 +89,7 @@ public class LootLockerStartRemoteSessionRequest } /// + /// Request to refresh an existing remote session using a refresh token. /// public class LootLockerRefreshRemoteSessionRequest : LootLockerGetRequest { @@ -114,6 +117,7 @@ public LootLockerRefreshRemoteSessionRequest(string refreshToken) //================================================== /// + /// Response containing the lease code and redirect URL for a newly created remote session lease. /// public class LootLockerLeaseRemoteSessionResponse : LootLockerResponse { @@ -144,6 +148,7 @@ public class LootLockerLeaseRemoteSessionResponse : LootLockerResponse } /// + /// Response from polling the status of an ongoing remote session lease process. /// public class LootLockerRemoteSessionStatusPollingResponse : LootLockerResponse { @@ -154,6 +159,7 @@ public class LootLockerRemoteSessionStatusPollingResponse : LootLockerResponse } /// + /// Response returned when a remote session is successfully started after an authorized lease. /// public class LootLockerStartRemoteSessionResponse : LootLockerSessionResponse { @@ -172,6 +178,7 @@ public class LootLockerStartRemoteSessionResponse : LootLockerSessionResponse } /// + /// Response returned after refreshing a remote session with a refresh token. /// public class LootLockerRefreshRemoteSessionResponse : LootLockerSessionResponse { diff --git a/Runtime/Game/Requests/TriggersRequests.cs b/Runtime/Game/Requests/TriggersRequests.cs index 60589d23..f72a1510 100644 --- a/Runtime/Game/Requests/TriggersRequests.cs +++ b/Runtime/Game/Requests/TriggersRequests.cs @@ -21,6 +21,7 @@ namespace LootLocker.Requests //================================================== /// + /// A trigger key that was successfully invoked. /// public class LootLockerSuccessfulKey { @@ -31,6 +32,7 @@ public class LootLockerSuccessfulKey }; /// + /// A trigger key that failed to invoke, including the reason for failure. /// public class LootLockerFailedKey { @@ -49,6 +51,7 @@ public class LootLockerFailedKey //================================================== /// + /// Request to invoke one or more triggers by their keys. /// public class LootLockerInvokeTriggersByKeyRequest {