@schedule1-tools/mixer 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/data/products.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAiCjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMxD,CAAC"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/data/products.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CA8CjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMxD,CAAC"}
@@ -4,36 +4,49 @@ exports.productAbbreviations = exports.products = void 0;
4
4
  exports.products = {
5
5
  'OG Kush': {
6
6
  price: 35,
7
+ rank: '1',
7
8
  effects: ['Ca'],
8
9
  abbreviation: 'OH',
9
10
  },
10
11
  'Sour Diesel': {
11
12
  price: 35,
13
+ rank: '4',
12
14
  effects: ['Re'],
13
15
  abbreviation: 'SL',
14
16
  },
15
17
  'Green Crack': {
16
18
  price: 35,
19
+ rank: '7',
17
20
  effects: ['En'],
18
21
  abbreviation: 'GK',
19
22
  },
20
23
  'Grandaddy Purple': {
21
24
  price: 35,
25
+ rank: '9',
22
26
  effects: ['Se'],
23
27
  abbreviation: 'GE',
24
28
  },
25
29
  Meth: {
26
30
  price: 70,
31
+ rank: '6',
27
32
  effects: [],
28
33
  abbreviation: 'MH',
29
34
  addiction: 0.6,
30
35
  },
31
36
  Cocaine: {
32
37
  price: 150,
38
+ rank: '26',
33
39
  effects: [],
34
40
  abbreviation: 'CE',
35
41
  addiction: 0.4,
36
42
  },
43
+ Shrooms: {
44
+ price: 65,
45
+ rank: '10',
46
+ effects: [],
47
+ abbreviation: 'SR',
48
+ addiction: 0.05,
49
+ },
37
50
  };
38
51
  exports.productAbbreviations = Object.entries(exports.products).reduce((acc, [product, data]) => {
39
52
  acc[data.abbreviation] = product;
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/data/products.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAiC;IACpD,SAAS,EAAE;QACT,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,GAAG;KACf;IACD,OAAO,EAAE;QACP,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,GAAG;KACf;CACF,CAAC;AAEW,QAAA,oBAAoB,GAA4B,MAAM,CAAC,OAAO,CAAC,gBAAQ,CAAC,CAAC,MAAM,CAC1F,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;IACvB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,OAAkB,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAA6B,CAC9B,CAAC"}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/data/products.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAiC;IACpD,SAAS,EAAE;QACT,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,YAAY,EAAE,IAAI;KACnB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,GAAG;KACf;IACD,OAAO,EAAE;QACP,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,GAAG;KACf;IACD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;KAChB;CACF,CAAC;AAEW,QAAA,oBAAoB,GAA4B,MAAM,CAAC,OAAO,CAAC,gBAAQ,CAAC,CAAC,MAAM,CAC1F,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;IACvB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,OAAkB,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAA6B,CAC9B,CAAC"}
@@ -76,7 +76,7 @@ exports.substances = {
76
76
  },
77
77
  'Horse Semen': {
78
78
  abbreviation: 'M',
79
- rank: '13',
79
+ rank: '18',
80
80
  price: 9,
81
81
  effect: ['Lf'],
82
82
  },
@@ -88,7 +88,7 @@ exports.substances = {
88
88
  },
89
89
  Addy: {
90
90
  abbreviation: 'O',
91
- rank: '12',
91
+ rank: '17',
92
92
  price: 9,
93
93
  effect: ['Tp'],
94
94
  },
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type EffectCode = 'Ag' | 'At' | 'Ba' | 'Be' | 'Ca' | 'Cd' | 'Cy' | 'Di' | 'El' | 'En' | 'Eu' | 'Ex' | 'Fc' | 'Fo' | 'Gi' | 'Gl' | 'Je' | 'La' | 'Lf' | 'Mu' | 'Pa' | 'Re' | 'Sc' | 'Se' | 'Sh' | 'Si' | 'Sl' | 'Sm' | 'Sn' | 'Sp' | 'To' | 'Tp' | 'Tt' | 'Zo';
2
2
  export type Substance = 'Cuke' | 'Flu Medicine' | 'Gasoline' | 'Donut' | 'Energy Drink' | 'Mouth Wash' | 'Motor Oil' | 'Banana' | 'Chili' | 'Iodine' | 'Paracetamol' | 'Viagor' | 'Horse Semen' | 'Mega Bean' | 'Addy' | 'Battery';
3
- export type Product = 'OG Kush' | 'Sour Diesel' | 'Green Crack' | 'Grandaddy Purple' | 'Meth' | 'Cocaine';
4
- export type RankCode = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13';
3
+ export type Product = 'OG Kush' | 'Sour Diesel' | 'Green Crack' | 'Grandaddy Purple' | 'Meth' | 'Cocaine' | 'Shrooms';
4
+ export type RankCode = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26';
5
5
  export interface EffectData {
6
6
  name: string;
7
7
  description: string;
@@ -21,6 +21,7 @@ export interface ProductData {
21
21
  effects: EffectCode[];
22
22
  abbreviation: string;
23
23
  addiction?: number;
24
+ rank: RankCode;
24
25
  }
25
26
  export interface EffectRule {
26
27
  ifPresent: EffectCode[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,cAAc,GACd,UAAU,GACV,OAAO,GACP,cAAc,GACd,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,aAAa,GACb,WAAW,GACX,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,OAAO,GACf,SAAS,GACT,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,QAAQ,GAChB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,cAAc,GACd,UAAU,GACV,OAAO,GACP,cAAc,GACd,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,aAAa,GACb,WAAW,GACX,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,OAAO,GACf,SAAS,GACT,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,QAAQ,GAChB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,41 +1,42 @@
1
- {
2
- "name": "@schedule1-tools/mixer",
3
- "version": "0.2.4",
4
- "description": "A package for calculating substance mixes in Schedule 1",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "dist"
9
- ],
10
- "keywords": [
11
- "schedule1"
12
- ],
13
- "author": "Schedule1 Tools",
14
- "license": "MIT",
15
- "dependencies": {
16
- "lz-string": "^1.5.0"
17
- },
18
- "devDependencies": {
19
- "@ianvs/prettier-plugin-sort-imports": "^4.4.1",
20
- "@types/jest": "^29.5.14",
21
- "@types/node": "^22.14.1",
22
- "jest": "^29.7.0",
23
- "prettier": "^3.5.3",
24
- "ts-jest": "^29.3.2",
25
- "typescript": "^5.8.3"
26
- },
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/schedule1-tools/mixer.git"
30
- },
31
- "bugs": {
32
- "url": "https://github.com/schedule1-tools/mixer/issues"
33
- },
34
- "homepage": "https://github.com/schedule1-tools/mixer#readme",
35
- "scripts": {
36
- "build": "tsc",
37
- "test": "jest",
38
- "test:coverage": "jest --coverage",
39
- "format": "prettier --write ."
40
- }
41
- }
1
+ {
2
+ "name": "@schedule1-tools/mixer",
3
+ "version": "0.2.5",
4
+ "description": "A package for calculating substance mixes in Schedule 1",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "test": "jest",
13
+ "test:coverage": "jest --coverage",
14
+ "prepublishOnly": "pnpm run test && pnpm run build",
15
+ "format": "prettier --write ."
16
+ },
17
+ "keywords": [
18
+ "schedule1"
19
+ ],
20
+ "author": "Schedule1 Tools",
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "lz-string": "^1.5.0"
24
+ },
25
+ "devDependencies": {
26
+ "@ianvs/prettier-plugin-sort-imports": "^4.4.1",
27
+ "@types/jest": "^29.5.14",
28
+ "@types/node": "^22.14.1",
29
+ "jest": "^29.7.0",
30
+ "prettier": "^3.5.3",
31
+ "ts-jest": "^29.3.2",
32
+ "typescript": "^5.8.3"
33
+ },
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/schedule1-tools/mixer.git"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/schedule1-tools/mixer/issues"
40
+ },
41
+ "homepage": "https://github.com/schedule1-tools/mixer#readme"
42
+ }
package/dist/bitmaps.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { EffectCode } from './types';
2
- export declare const codeToBit: Record<EffectCode, bigint>;
3
- export declare const allOnes: bigint;
4
- export declare function has(mask: bigint, code: EffectCode): boolean;
5
- export declare function add(mask: bigint, code: EffectCode): bigint;
6
- export declare function remove(mask: bigint, code: EffectCode): bigint;
7
- export declare function countBits(mask: bigint): number;
8
- export declare function toSortedArray(mask: bigint): EffectCode[];
9
- //# sourceMappingURL=bitmaps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitmaps.d.ts","sourceRoot":"","sources":["../src/bitmaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQ1C,eAAO,MAAM,SAAS,4BAMrB,CAAC;AAGF,eAAO,MAAM,OAAO,QAAwD,CAAC;AAG7E,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAE3D;AACD,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAE1D;AACD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAE7D;AACD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU9C;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CASxD"}
package/dist/bitmaps.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allOnes = exports.codeToBit = void 0;
4
- exports.has = has;
5
- exports.add = add;
6
- exports.remove = remove;
7
- exports.countBits = countBits;
8
- exports.toSortedArray = toSortedArray;
9
- const effects_1 = require("./data/effects");
10
- const effectCodes = Object.keys(effects_1.effects);
11
- exports.codeToBit = effectCodes.reduce((acc, c, i) => {
12
- acc[c] = BigInt(1) << BigInt(i);
13
- return acc;
14
- }, {});
15
- exports.allOnes = (BigInt(1) << BigInt(effectCodes.length)) - BigInt(1);
16
- function has(mask, code) {
17
- return (mask & exports.codeToBit[code]) !== BigInt(0);
18
- }
19
- function add(mask, code) {
20
- return mask | exports.codeToBit[code];
21
- }
22
- function remove(mask, code) {
23
- return mask & ~exports.codeToBit[code];
24
- }
25
- function countBits(mask) {
26
- let m = mask;
27
- let cnt = 0;
28
- while (m) {
29
- cnt += Number(m & BigInt(1));
30
- m >>= BigInt(1);
31
- }
32
- return cnt;
33
- }
34
- function toSortedArray(mask) {
35
- return effectCodes
36
- .filter((c) => has(mask, c))
37
- .sort((a, b) => {
38
- const ea = effects_1.effects[a];
39
- const eb = effects_1.effects[b];
40
- if (ea.tier !== eb.tier)
41
- return ea.tier - eb.tier;
42
- return effectCodes.indexOf(a) - effectCodes.indexOf(b);
43
- });
44
- }
45
- //# sourceMappingURL=bitmaps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitmaps.js","sourceRoot":"","sources":["../src/bitmaps.ts"],"names":[],"mappings":";;;AAoBA,kBAEC;AACD,kBAEC;AACD,wBAEC;AACD,8BAUC;AACD,sCASC;AA/CD,4CAAyC;AAGzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAO,CAAiB,CAAC;AAG5C,QAAA,SAAS,GAAG,WAAW,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACZ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAgC,CACjC,CAAC;AAGW,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAG7E,SAAgB,GAAG,CAAC,IAAY,EAAE,IAAgB;IAChD,OAAO,CAAC,IAAI,GAAG,iBAAS,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AACD,SAAgB,GAAG,CAAC,IAAY,EAAE,IAAgB;IAChD,OAAO,IAAI,GAAG,iBAAS,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AACD,SAAgB,MAAM,CAAC,IAAY,EAAE,IAAgB;IACnD,OAAO,IAAI,GAAG,CAAC,iBAAS,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AACD,SAAgB,SAAS,CAAC,IAAY;IAGpC,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,CAAC;QACT,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,WAAW;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,EAAE,GAAG,iBAAO,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,iBAAO,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QAClD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { EffectCode, Product, Substance } from '../types';
2
- export declare function reverseMix(base: Product | EffectCode[], extras?: EffectCode[], maxDepth?: number): Substance[][];
3
- //# sourceMappingURL=reverse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reverse.d.ts","sourceRoot":"","sources":["../../src/core/reverse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA+C/D,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,EAC5B,MAAM,GAAE,UAAU,EAAO,EACzB,QAAQ,SAAI,GACX,SAAS,EAAE,EAAE,CAyDf"}
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.reverseMix = reverseMix;
4
- const products_1 = require("../data/products");
5
- const rules_1 = require("../data/rules");
6
- const substances_1 = require("../data/substances");
7
- const allEffects = new Set();
8
- for (const s of Object.values(substances_1.substances))
9
- s.effect.forEach(allEffects.add, allEffects);
10
- for (const rs of Object.values(rules_1.effectRulesBySubstance))
11
- for (const r of rs) {
12
- r.ifPresent.forEach(allEffects.add, allEffects);
13
- r.ifNotPresent.forEach(allEffects.add, allEffects);
14
- Object.keys(r.replace).forEach((e) => allEffects.add(e));
15
- }
16
- const effectList = Array.from(allEffects);
17
- const effectIndex = effectList.reduce((a, e, i) => ((a[e] = i), a), {});
18
- const substanceMask = Object.fromEntries(Object.entries(substances_1.substances).map(([sub, data]) => {
19
- let m = 0n;
20
- for (const e of data.effect)
21
- m |= 1n << BigInt(effectIndex[e]);
22
- return [sub, m];
23
- }));
24
- const rules = [];
25
- for (const [sub, rs] of Object.entries(rules_1.effectRulesBySubstance)) {
26
- for (const r of rs) {
27
- let pres = 0n, abs = 0n;
28
- for (const e of r.ifPresent)
29
- pres |= 1n << BigInt(effectIndex[e]);
30
- for (const e of r.ifNotPresent)
31
- abs |= 1n << BigInt(effectIndex[e]);
32
- const [[newE, oldE]] = Object.entries(r.replace);
33
- const rem = 1n << BigInt(effectIndex[newE]);
34
- const add = 1n << BigInt(effectIndex[oldE]);
35
- rules.push({ present: pres, absent: abs, remove: rem, add, sub });
36
- }
37
- }
38
- function reverseMix(base, extras = [], maxDepth = 8) {
39
- let target = 0n;
40
- if (typeof base === 'string') {
41
- for (const e of products_1.products[base].effects) {
42
- target |= 1n << BigInt(effectIndex[e]);
43
- }
44
- }
45
- else {
46
- for (const e of base) {
47
- target |= 1n << BigInt(effectIndex[e]);
48
- }
49
- }
50
- for (const e of extras)
51
- target |= 1n << BigInt(effectIndex[e]);
52
- const results = [];
53
- const visited = new Map();
54
- let queue = [{ mask: target, path: [] }];
55
- for (let depth = 0; depth <= maxDepth; depth++) {
56
- const nextQueue = [];
57
- for (const { mask, path } of queue) {
58
- const seenDepth = visited.get(mask);
59
- if (seenDepth !== undefined && seenDepth <= depth)
60
- continue;
61
- visited.set(mask, depth);
62
- for (const [sub, m] of Object.entries(substanceMask)) {
63
- if ((mask & m) === m) {
64
- const recipe = [...path, sub];
65
- let fm = 0n;
66
- for (const s of recipe)
67
- fm |= substanceMask[s];
68
- if (fm === target)
69
- results.push(recipe);
70
- }
71
- }
72
- if (depth < maxDepth) {
73
- for (const { present, absent, remove, add, sub } of rules) {
74
- if ((mask & present) === present && (mask & absent) === 0n && (mask & remove) !== 0n) {
75
- const prev = (mask & ~remove) | add;
76
- nextQueue.push({ mask: prev, path: [...path, sub] });
77
- }
78
- }
79
- }
80
- }
81
- if (results.length)
82
- break;
83
- queue = nextQueue;
84
- if (!queue.length)
85
- break;
86
- }
87
- return results;
88
- }
89
- //# sourceMappingURL=reverse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../src/core/reverse.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- type MaskRule = {
2
- ifPresentMask: bigint;
3
- ifNotPresentMask: bigint;
4
- replaceMask: Array<[bigint, bigint]>;
5
- };
6
- export declare const maskRulesBySubstance: Record<string, MaskRule[]>;
7
- export {};
8
- //# sourceMappingURL=maskRules.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maskRules.d.ts","sourceRoot":"","sources":["../src/maskRules.ts"],"names":[],"mappings":"AAMA,KAAK,QAAQ,GAAG;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAa7B,CAAC"}
package/dist/maskRules.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maskRulesBySubstance = void 0;
4
- const bitmaps_1 = require("./bitmaps");
5
- const rules_1 = require("./data/rules");
6
- exports.maskRulesBySubstance = Object.fromEntries(Object.entries(rules_1.effectRulesBySubstance).map(([sub, rules]) => [
7
- sub,
8
- rules.map((r) => {
9
- const ip = r.ifPresent.reduce((m, e) => m | bitmaps_1.codeToBit[e], BigInt(0));
10
- const inot = r.ifNotPresent.reduce((m, e) => m | bitmaps_1.codeToBit[e], BigInt(0));
11
- const rep = [];
12
- for (const [oldE, newE] of Object.entries(r.replace)) {
13
- rep.push([bitmaps_1.codeToBit[oldE], bitmaps_1.codeToBit[newE]]);
14
- }
15
- return { ifPresentMask: ip, ifNotPresentMask: inot, replaceMask: rep };
16
- }),
17
- ]));
18
- //# sourceMappingURL=maskRules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maskRules.js","sourceRoot":"","sources":["../src/maskRules.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AACtC,wCAAsD;AAQzC,QAAA,oBAAoB,GAA+B,MAAM,CAAC,WAAW,CAChF,MAAM,CAAC,OAAO,CAAC,8BAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IAC3D,GAAG;IACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,mBAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,mBAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAA+B,EAAE,CAAC;YACnF,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAS,CAAC,IAAI,CAAC,EAAE,mBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IACzE,CAAC,CAAC;CACH,CAAC,CAC2B,CAAC"}