diff --git a/package.json b/package.json index e8ae30d..144415a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cs2script", - "version": "1.1.0.3", + "version": "1.2.0.0", "type": "module", "scripts": { "build": "node build.js", diff --git a/src/components/store_table.js b/src/components/store_table.js index 158bcf4..3a76d86 100644 --- a/src/components/store_table.js +++ b/src/components/store_table.js @@ -25,8 +25,10 @@ export default class StoreTable extends Table { static TAB = { GENERAL: 0, TOOLS: 1, - TOURNAMENT_CAPSULES: 2, - TOURNAMENT_SOUVENIRS: 3 + KEYS: 2, + TOURNAMENT_CAPSULES: 3, + TOURNAMENT_SOUVENIRS: 4, + OTHER: 5 }; constructor(store) { @@ -266,6 +268,13 @@ export default class StoreTable extends Table { this.#ChangeTab(event.currentTarget, StoreTable.TAB.TOOLS); } }), + CreateElement("a", { + class: "cs2s_table_footer_action_link cs2s_table_footer_action_link_no_icon", + text: "Keys", + onclick: (event) => { + this.#ChangeTab(event.currentTarget, StoreTable.TAB.KEYS); + } + }), this.#store.items.find(item => item.tournament_id) && CreateElement("a", { class: "cs2s_table_footer_action_link cs2s_table_footer_action_link_no_icon", text: "Tournament", @@ -279,6 +288,13 @@ export default class StoreTable extends Table { onclick: (event) => { this.#ChangeTab(event.currentTarget, StoreTable.TAB.TOURNAMENT_SOUVENIRS); } + }), + CreateElement("a", { + class: "cs2s_table_footer_action_link cs2s_table_footer_action_link_no_icon", + text: "Other", + onclick: (event) => { + this.#ChangeTab(event.currentTarget, StoreTable.TAB.OTHER); + } }) ] }), @@ -428,6 +444,10 @@ export default class StoreTable extends Table { return false; } + if (this.#tab === StoreTable.TAB.KEYS && item.type != "Key") { + return false; + } + if (this.#tab === StoreTable.TAB.TOURNAMENT_CAPSULES && (!item.tournament_id || item.requires_supplemental_data)) { return false; } @@ -436,6 +456,15 @@ export default class StoreTable extends Table { return false; } + if (this.#tab === StoreTable.TAB.OTHER && ( + typeof item.layout_weight !== "undefined" + || item.layout_format == "single" + || item.type == "Key" + || item.tournament_id + )) { + return false; + } + if (this.#searchQuery && this.#searchQuery.length > 0) { for (const word of this.#searchQuery) { if (!item.name_normalized.includes(word)) { diff --git a/src/cs2/items/assets/inventory_asset.js b/src/cs2/items/assets/inventory_asset.js index f152b53..ab629a1 100644 --- a/src/cs2/items/assets/inventory_asset.js +++ b/src/cs2/items/assets/inventory_asset.js @@ -143,10 +143,21 @@ export default class InventoryAsset extends Asset { return; } - // Update float element with percentile info - if (floatElement && this._inspectData.wear && this._wearData) { - floatElement.innerText = this._inspectData.wear.toFixed(this.#isTradeProtected ? 2 : 6); - floatElement.append(" ", this._GetPercentileElement()); + if (this._inspectData.wear && this._wearData) { + if (floatElement) { + // Update float element with percentile info + floatElement.innerText = this._inspectData.wear.toFixed(this.#isTradeProtected ? 2 : 6); + floatElement.append(" ", this._GetPercentileElement()); + } else { + // Display float data for the first time (Steam only provides float values for the first 75 inventory items) + floatElement = CreateElement("div", { + class: `cs2s_asset_wear cs2s_asset_wear_${Asset.GetWear(this._inspectData.wear).name.toLowerCase()}`, + text: this._inspectData.wear.toFixed(this.#isTradeProtected ? 2 : 6) + }); + floatElement.append(" ", this._GetPercentileElement()); + + this._asset.element.append(floatElement); + } } } diff --git a/src/css/style.css b/src/css/style.css index 3d8bce6..6618499 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -706,7 +706,7 @@ } .cs2s_table_name_column { - width: 350px; + width: 375px; } .cs2s_table_collection_column { diff --git a/src/userscript.meta.js b/src/userscript.meta.js index d09e920..5392e49 100644 --- a/src/userscript.meta.js +++ b/src/userscript.meta.js @@ -6,7 +6,7 @@ export const userscriptHeader = // @name Counter-Strike 2 Script // @namespace https://github.com/Citrinate // @author Citrinate -// @description Manage your CS2 storage units and inspect items +// @description Interact with Counter-Strike 2 // @license Apache-2.0 // @version ${pkg.version} // @match https://steamcommunity.com/id/*/inventory*