Skip to content

Commit

Permalink
fix: keyless war paint cases
Browse files Browse the repository at this point in the history
  • Loading branch information
danocmx committed Feb 22, 2024
1 parent 40506b2 commit c6a4ff8
Show file tree
Hide file tree
Showing 3 changed files with 308 additions and 106 deletions.
18 changes: 16 additions & 2 deletions src/static/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ const DEFINDEXES: { [name: string]: number } = {
'Limited Late Summer Crate Key': 5762,
'Naughty Winter Crate Key 2014': 5791,
'Nice Winter Crate Key 2014': 5792,

"'Decorated War Hero' War Paint Civilian Grade Keyless Case": 18000,
"'Decorated War Hero' War Paint Freelance Grade Keyless Case": 18001,
"'Decorated War Hero' War Paint Mercenary Grade Keyless Case": 18002,
"'Contract Campaigner' War Paint Civilian Grade Keyless Case": 18003,
"'Contract Campaigner' War Paint Freelance Grade Keyless Case": 18004,
"'Contract Campaigner' War Paint Mercenary Grade Keyless Case": 18005,
};

const NAMES: { [defindex: number]: string } = {
Expand All @@ -57,6 +64,12 @@ const NAMES: { [defindex: number]: string } = {
5792: 'Nice Winter Crate Key 2014',
20000: 'Strangifier Chemistry Set',
20005: 'Chemistry Set',
18000: "'Decorated War Hero' War Paint Civilian Grade Keyless Case",
18001: "'Decorated War Hero' War Paint Freelance Grade Keyless Case",
18002: "'Decorated War Hero' War Paint Mercenary Grade Keyless Case",
18003: "'Contract Campaigner' War Paint Civilian Grade Keyless Case",
18004: "'Contract Campaigner' War Paint Freelance Grade Keyless Case",
18005: "'Contract Campaigner' War Paint Mercenary Grade Keyless Case",
};

/* TODO: Set boundaries between these.
Expand Down Expand Up @@ -265,7 +278,7 @@ export class Schema implements ISchema {
if (!this.itemsGame) this.loadItemsGame();

if (!isNumber(defindexOrName)) {
const defindex = this.getDefindex(defindexOrName);;
const defindex = this.getDefindex(defindexOrName);
if (!defindex) return 0;
defindexOrName = defindex;
}
Expand All @@ -274,7 +287,8 @@ export class Schema implements ISchema {
if (!item) return 0;

const crateSeries = parseInt(
(item.static_attrs && item.static_attrs['set supply crate series']) as string
(item.static_attrs &&
item.static_attrs['set supply crate series']) as string
);

return isNaN(crateSeries) ? 0 : crateSeries;
Expand Down
60 changes: 53 additions & 7 deletions test/parseString.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { assert } = require('chai');

const { parseString, schema, Schema } = require('../dist/static');
const { parseString, Schema } = require('../dist/static');
const { createFormat } = require('../dist');

describe('parseString', () => {
Expand Down Expand Up @@ -610,6 +610,21 @@ describe('parseString', () => {
effect: 'Festivized Formation'
});
});

it("Case #49 -'Contract Campaigner' War Paint Freelance Grade Keyless Case #115", () => {
const itemObject = parseString(
"'Contract Campaigner' War Paint Freelance Grade Keyless Case #115",
false,
false,
);

assert.deepEqual(itemObject, {
name: "'Contract Campaigner' War Paint Freelance Grade Keyless Case",
craftable: true,
quality: 'Unique',
itemNumber: { type: 'crate', value: 115 },
});
});
});

describe('parseString with numbers', () => {
Expand Down Expand Up @@ -1279,6 +1294,21 @@ describe('parseString with numbers', () => {
effect: 3108
});
});

it("Case #49 -'Contract Campaigner' War Paint Freelance Grade Keyless Case #115", () => {
const itemObject = parseString(
"'Contract Campaigner' War Paint Freelance Grade Keyless Case #115",
true,
false,
);

assert.deepEqual(itemObject, {
name: "'Contract Campaigner' War Paint Freelance Grade Keyless Case",
craftable: true,
quality: 6,
itemNumber: { type: 'crate', value: 115 },
});
});
});

describe('parseString with defindexes and numbers.', () => {
Expand Down Expand Up @@ -2093,7 +2123,7 @@ describe('parseString with defindexes and numbers.', () => {
});
});

it('Case #46 - Haunted Kraken Rotation Sensation', () => {
it('Case #56 - Haunted Kraken Rotation Sensation', () => {
const itemObject = parseString('Haunted Kraken Rotation Sensation', true, true);

assert.deepEqual(itemObject, {
Expand All @@ -2105,7 +2135,7 @@ describe('parseString with defindexes and numbers.', () => {
});
});

it('Case #47 - Strange Health and Hell (Green) War Paint', () => {
it('Case #57 - Strange Health and Hell (Green) War Paint', () => {
const itemObject = parseString('Strange Health and Hell (Green) War Paint', true, true);

assert.deepEqual(itemObject, {
Expand All @@ -2117,7 +2147,7 @@ describe('parseString with defindexes and numbers.', () => {
});
});

it('Case #48 - Health and Hell (Green) Rocket Launcher', () => {
it('Case #58 - Health and Hell (Green) Rocket Launcher', () => {
const itemObject = parseString('Health and Hell (Green) Rocket Launcher', true, true);

assert.deepEqual(itemObject, {
Expand All @@ -2129,7 +2159,7 @@ describe('parseString with defindexes and numbers.', () => {
});
});

it('Case #49 - Health and Hell Iron Bomber', () => {
it('Case #59 - Health and Hell Iron Bomber', () => {
const itemObject = parseString('Health and Hell Iron Bomber', true, true);

assert.deepEqual(itemObject, {
Expand All @@ -2141,7 +2171,7 @@ describe('parseString with defindexes and numbers.', () => {
});
});

it('Case #50 - Frostbite Bonnet ', () => {
it('Case #60 - Frostbite Bonnet ', () => {
const itemObject = parseString('Frostbite Bonnet', true, true);

assert.deepEqual(itemObject, {
Expand All @@ -2152,7 +2182,7 @@ describe('parseString with defindexes and numbers.', () => {
});
});

it('Case #51 - Frostbite Bonnet ', () => {
it('Case #61 - Frostbite Bonnet ', () => {
const itemObject = parseString('Festivized Formation Taunt: Most Wanted', true, true);

assert.deepEqual(itemObject, {
Expand All @@ -2163,4 +2193,20 @@ describe('parseString with defindexes and numbers.', () => {
effect: 3108
});
});

it("Case #62 -'Contract Campaigner' War Paint Freelance Grade Keyless Case #115", () => {
const itemObject = parseString(
"'Contract Campaigner' War Paint Freelance Grade Keyless Case #115",
true,
true,
);

assert.deepEqual(itemObject, {
name: "'Contract Campaigner' War Paint Freelance Grade Keyless Case",
craftable: true,
quality: 6,
defindex: 18004,
itemNumber: { type: 'crate', value: 115 },
});
});
});
Loading

0 comments on commit c6a4ff8

Please sign in to comment.