adofai-lib 1.2.4 → 1.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,6 +1,6 @@
1
1
  import LevelDict from '../LevelDict.js';
2
- import { getLevelLengthInMs } from '../utils/analysisUtils.js';
3
- it('tests the local file analysis', () => {
2
+ import { getLevelLengthInMs, getVfxEventCounts } from '../utils/analysisUtils.js';
3
+ it('tests timing calculation', () => {
4
4
  const level = new LevelDict('C:/Users/Acer_Nitro/Downloads/Vivid Spectrum [Easy.ver]/Vivid Spectrum [Easy.ver]/Vivid Spectrum [Easy.ver]/level.adofai');
5
5
  const tiles = level.getTiles();
6
6
  const batchSize = 5;
@@ -22,4 +22,10 @@ it('tests the local file analysis', () => {
22
22
  console.log("getLevelLengthInMs(level): " + getLevelLengthInMs(level) / 1000 + "s");
23
23
  expect(durations).toBeDefined();
24
24
  });
25
+ it('tests action event counts', () => {
26
+ const level = new LevelDict('C:/Users/Acer_Nitro/Downloads/Vivid Spectrum [Easy.ver]/Vivid Spectrum [Easy.ver]/Vivid Spectrum [Easy.ver]/level.adofai');
27
+ const eventCounts = getVfxEventCounts(level);
28
+ console.log(eventCounts);
29
+ expect(eventCounts).toBeDefined();
30
+ });
25
31
  //# sourceMappingURL=LocalFileTest.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalFileTest.test.js","sourceRoot":"","sources":["../../src/__tests__/LocalFileTest.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,KAAK,GAAG,IAAI,SAAS,CAC3B,0HAA0H,CACzH,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAChF,CAAC,CACF,CAAC;QACF,SAAS,CAAC,IAAI,CACZ,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,EAAE;YAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7D,CAAC,CAAC,EAAE,iBAAiB,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACtE,CAAC;QACF,kBAAkB,IAAI,GAAG,CAAC;IAC5B,CAAC;IACD,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAClF,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"LocalFileTest.test.js","sourceRoot":"","sources":["../../src/__tests__/LocalFileTest.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAkB,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAElG,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAClC,MAAM,KAAK,GAAG,IAAI,SAAS,CAC3B,0HAA0H,CACzH,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAChF,CAAC,CACF,CAAC;QACF,SAAS,CAAC,IAAI,CACZ,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,EAAE;YAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7D,CAAC,CAAC,EAAE,iBAAiB,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACtE,CAAC;QACF,kBAAkB,IAAI,GAAG,CAAC;IAC5B,CAAC;IACD,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAClF,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACnC,MAAM,KAAK,GAAG,IAAI,SAAS,CACzB,0HAA0H,CAC3H,CAAC;IACF,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC,CAAC,CAAC"}
@@ -6,9 +6,10 @@ export declare const perfectAngle = 45;
6
6
  export declare const passAngle = 60;
7
7
  export declare enum VfxTier {
8
8
  None = 0,
9
- Filter = 1,
10
- Deco = 2,
11
- Full = 3
9
+ Low = 1,
10
+ Filter = 2,
11
+ Deco = 3,
12
+ Full = 4
12
13
  }
13
14
  export declare const DLC_EVENT_TYPES: string[];
14
15
  export declare const VFX_EVENT_TYPES: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAK5C,CAAC;AAEJ,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,oBAAY,OAAO;IACjB,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AAED,eAAO,MAAM,eAAe,UAU3B,CAAA;AAED,eAAO,MAAM,eAAe,UAW3B,CAAA;AAED,eAAO,MAAM,UAAU,UAKtB,CAAA;AAED,eAAO,MAAM,iBAAiB,UAM7B,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAK5C,CAAC;AAEJ,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,oBAAY,OAAO;IACjB,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AAED,eAAO,MAAM,eAAe,UAU3B,CAAA;AAED,eAAO,MAAM,eAAe,UAW3B,CAAA;AAED,eAAO,MAAM,UAAU,UAKtB,CAAA;AAED,eAAO,MAAM,iBAAiB,UAM7B,CAAA"}
package/dist/constants.js CHANGED
@@ -10,9 +10,10 @@ export const passAngle = 60;
10
10
  export var VfxTier;
11
11
  (function (VfxTier) {
12
12
  VfxTier[VfxTier["None"] = 0] = "None";
13
- VfxTier[VfxTier["Filter"] = 1] = "Filter";
14
- VfxTier[VfxTier["Deco"] = 2] = "Deco";
15
- VfxTier[VfxTier["Full"] = 3] = "Full";
13
+ VfxTier[VfxTier["Low"] = 1] = "Low";
14
+ VfxTier[VfxTier["Filter"] = 2] = "Filter";
15
+ VfxTier[VfxTier["Deco"] = 3] = "Deco";
16
+ VfxTier[VfxTier["Full"] = 4] = "Full";
16
17
  })(VfxTier || (VfxTier = {}));
17
18
  export const DLC_EVENT_TYPES = [
18
19
  "Hold",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAA8B;IAChD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC5D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC3D,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAE5B,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,qCAAI,CAAA;IACJ,yCAAM,CAAA;IACN,qCAAI,CAAA;IACJ,qCAAI,CAAA;AACN,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,cAAc;IACd,aAAa;IACb,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,MAAM;IACN,aAAa;IACb,aAAa;CACd,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,YAAY;IACZ,WAAW;IACX,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,OAAO;IACP,YAAY;IACZ,cAAc;IACd,cAAc;CACf,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,eAAe;IACf,SAAS;IACT,WAAW;IACX,aAAa;CACd,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iBAAiB;IACjB,SAAS;IACT,WAAW;IACX,aAAa;IACb,cAAc;CACf,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAA8B;IAChD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC5D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC3D,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAE5B,MAAM,CAAN,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,qCAAI,CAAA;IACJ,mCAAG,CAAA;IACH,yCAAM,CAAA;IACN,qCAAI,CAAA;IACJ,qCAAI,CAAA;AACN,CAAC,EANW,OAAO,KAAP,OAAO,QAMlB;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,cAAc;IACd,aAAa;IACb,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,MAAM;IACN,aAAa;IACb,aAAa;CACd,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,YAAY;IACZ,WAAW;IACX,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,OAAO;IACP,YAAY;IACZ,cAAc;IACd,cAAc;CACf,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,eAAe;IACf,SAAS;IACT,WAAW;IACX,aAAa;CACd,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iBAAiB;IACjB,SAAS;IACT,WAAW;IACX,aAAa;IACb,cAAc;CACf,CAAA"}
@@ -6,5 +6,16 @@ export declare function canDecorationsKill(level: LevelDict): boolean;
6
6
  export declare function isJudgementLimited(level: LevelDict): boolean;
7
7
  export declare function getLevelLengthInMs(level: LevelDict): number;
8
8
  export declare function getRequiredMods(level: LevelDict): string[];
9
- export declare function getVfxTier(level: LevelDict): VfxTier;
9
+ export declare function getEventCounts(level: LevelDict): {
10
+ [key: string]: number;
11
+ };
12
+ export declare function getDecoEventCounts(level: LevelDict): {
13
+ [key: string]: number;
14
+ total: number;
15
+ };
16
+ export declare function getVfxEventCounts(level: LevelDict): {
17
+ [key: string]: number;
18
+ total: number;
19
+ };
20
+ export declare function getVfxTier(level: LevelDict, decoThreshold?: number, filterThreshold?: number): VfxTier;
10
21
  //# sourceMappingURL=analysisUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysisUtils.d.ts","sourceRoot":"","sources":["../../src/utils/analysisUtils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAmB,OAAO,EAAkD,MAAM,cAAc,CAAC;AAKxG,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAErD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAKvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAapD"}
1
+ {"version":3,"file":"analysisUtils.d.ts","sourceRoot":"","sources":["../../src/utils/analysisUtils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAmB,OAAO,EAAkD,MAAM,cAAc,CAAC;AAKxG,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAErD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAKvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAK1E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQ7F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQ5F;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,GAAE,MAAW,EAAE,eAAe,GAAE,MAAW,GAAG,OAAO,CAmB9G"}
@@ -20,13 +20,42 @@ export function getLevelLengthInMs(level) {
20
20
  export function getRequiredMods(level) {
21
21
  return level.getSettings().requiredMods || [];
22
22
  }
23
- export function getVfxTier(level) {
23
+ export function getEventCounts(level) {
24
+ return level.getActions().reduce((acc, action) => {
25
+ acc[action.eventType || ''] = (acc[action.eventType || ''] || 0) + 1;
26
+ return acc;
27
+ }, {});
28
+ }
29
+ export function getDecoEventCounts(level) {
30
+ const counts = level.getActions().reduce((acc, action) => {
31
+ if (DECO_ACTION_TYPES.includes(action.eventType || '')) {
32
+ acc[action.eventType || ''] = (acc[action.eventType || ''] || 0) + 1;
33
+ }
34
+ return acc;
35
+ }, {});
36
+ return { ...counts, total: Object.values(counts).reduce((acc, count) => acc + count, 0) };
37
+ }
38
+ export function getVfxEventCounts(level) {
39
+ const counts = level.getActions().reduce((acc, action) => {
40
+ if (VFX_EVENT_TYPES.includes(action.eventType || '')) {
41
+ acc[action.eventType || ''] = (acc[action.eventType || ''] || 0) + 1;
42
+ }
43
+ return acc;
44
+ }, {});
45
+ return { ...counts, total: Object.values(counts).reduce((acc, count) => acc + count, 0) };
46
+ }
47
+ export function getVfxTier(level, decoThreshold = 15, filterThreshold = 20) {
24
48
  const tiers = [];
25
- if (level.getActions().filter(action => VFX_EVENT_TYPES.includes(action.eventType || '')).length > 20) {
49
+ const vfxEventTotal = getVfxEventCounts(level).total;
50
+ const decoEventTotal = getDecoEventCounts(level).total;
51
+ if (vfxEventTotal > filterThreshold) {
26
52
  tiers.push(VfxTier.Filter);
27
53
  }
28
- if (level.getDecorations().some(deco => DECO_TYPES.includes(deco.eventType || '') &&
29
- level.getActions().filter(action => DECO_ACTION_TYPES.includes(action.eventType || '')).length > 5)) {
54
+ if (decoEventTotal > 0 && decoEventTotal < decoThreshold) {
55
+ tiers.push(VfxTier.Low);
56
+ }
57
+ if (level.getDecorations().some(deco => DECO_TYPES.includes(deco.eventType || '')
58
+ && decoEventTotal > decoThreshold)) {
30
59
  tiers.push(VfxTier.Deco);
31
60
  }
32
61
  if (tiers.includes(VfxTier.Filter) && tiers.includes(VfxTier.Deco)) {
@@ -1 +1 @@
1
- {"version":3,"file":"analysisUtils.js","sourceRoot":"","sources":["../../src/utils/analysisUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysisUtils.js","sourceRoot":"","sources":["../../src/utils/analysisUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKxG,MAAM,UAAU,WAAW,CAAC,KAAgB;IACxC,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAgB;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE;SAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;SAClE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,sBAAsB,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC;AACxJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC5C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC3C,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC7C,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,MAAM,MAAM,GAA8B,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAChF,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,EAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,EAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAC9C,MAAM,MAAM,GAA8B,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAChF,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,EAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,EAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,gBAAwB,EAAE,EAAE,kBAA0B,EAAE;IACjG,MAAM,KAAK,GAAc,EAAE,CAAC;IAE5B,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;IAEvD,IAAI,aAAa,GAAG,eAAe,EAC/B,CAAC;QAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAEnC,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,aAAa,EACpD,CAAC;QAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAChC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;WAC9E,cAAc,GAAG,aAAa,CAAE,EAC/B,CAAC;QAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAEjC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAC9D,CAAC;QAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;AACvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adofai-lib",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "A TypeScript library for advanced manipulation and analysis of ADOFAI level files.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",