From 0d8569b27700f53de5fe502a8075f7ee738fb6fc Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Thu, 24 Sep 2026 20:56:51 +0300 Subject: [PATCH] Add jump height in enemy ink to analyzer, fix bad stat --- app/features/build-analyzer/analyzer-types.ts | 1 + .../build-analyzer/core/stats.test.ts | 11 ++++++++++ app/features/build-analyzer/core/stats.ts | 21 +++++++++++++++++++ .../build-analyzer/data/ability-values.ts | 4 ++-- .../build-analyzer/routes/analyzer.tsx | 5 +++++ ...026-09-24-analyzer-enemy-ink-damage-fix.md | 5 +++++ ...26-09-24-analyzer-jump-height-enemy-ink.md | 5 +++++ locales/da/analyzer.json | 1 + locales/de/analyzer.json | 1 + locales/en/analyzer.json | 1 + locales/es-ES/analyzer.json | 1 + locales/es-US/analyzer.json | 1 + locales/fr-CA/analyzer.json | 1 + locales/fr-EU/analyzer.json | 1 + locales/he/analyzer.json | 1 + locales/it/analyzer.json | 1 + locales/ja/analyzer.json | 1 + locales/ko/analyzer.json | 1 + locales/nl/analyzer.json | 1 + locales/pl/analyzer.json | 1 + locales/pt-BR/analyzer.json | 1 + locales/ru/analyzer.json | 1 + locales/zh/analyzer.json | 1 + 23 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 changelog/2026-09-24-analyzer-enemy-ink-damage-fix.md create mode 100644 changelog/2026-09-24-analyzer-jump-height-enemy-ink.md diff --git a/app/features/build-analyzer/analyzer-types.ts b/app/features/build-analyzer/analyzer-types.ts index 47b01070c..8e1b14d91 100644 --- a/app/features/build-analyzer/analyzer-types.ts +++ b/app/features/build-analyzer/analyzer-types.ts @@ -311,6 +311,7 @@ export interface AnalyzedBuild { swimSpeed: Stat; swimSpeedHoldingRainmaker: Stat; runSpeedInEnemyInk: Stat; + jumpHeightInEnemyInk: Stat; framesBeforeTakingDamageInEnemyInk: Stat; damageTakenInEnemyInkPerSecond: Stat; enemyInkDamageLimit: Stat; diff --git a/app/features/build-analyzer/core/stats.test.ts b/app/features/build-analyzer/core/stats.test.ts index 8e1e2f80a..06628aa93 100644 --- a/app/features/build-analyzer/core/stats.test.ts +++ b/app/features/build-analyzer/core/stats.test.ts @@ -218,6 +218,17 @@ describe("Analyze build", () => { expect(statWithISM.value).toBeGreaterThan(statWithISM.baseValue); }); + test("RES increases jump height in enemy ink", () => { + const analyzed = buildStats({ + weaponSplId: 40, + abilityPoints: new Map([["RES", 57]]), + hasTacticooler: false, + }); + + expect(analyzed.stats.jumpHeightInEnemyInk.baseValue).toBe(0.8); + expect(analyzed.stats.jumpHeightInEnemyInk.value).toBe(1.1); + }); + test("Accounts for Jr. big ink tank with main weapon ink consumption %", () => { const analyzedJr = buildStats({ weaponSplId: 10, diff --git a/app/features/build-analyzer/core/stats.ts b/app/features/build-analyzer/core/stats.ts index c29de271c..063bd82bd 100644 --- a/app/features/build-analyzer/core/stats.ts +++ b/app/features/build-analyzer/core/stats.ts @@ -142,6 +142,7 @@ export function buildStats({ swimSpeed: swimSpeed(input), swimSpeedHoldingRainmaker: swimSpeedHoldingRainmaker(input), runSpeedInEnemyInk: runSpeedInEnemyInk(input), + jumpHeightInEnemyInk: jumpHeightInEnemyInk(input), damageTakenInEnemyInkPerSecond: damageTakenInEnemyInkPerSecond(input), enemyInkDamageLimit: enemyInkDamageLimit(input), framesBeforeTakingDamageInEnemyInk: @@ -926,6 +927,26 @@ function runSpeedInEnemyInk( }; } +function jumpHeightInEnemyInk( + args: StatFunctionInput, +): AnalyzedBuild["stats"]["jumpHeightInEnemyInk"] { + const JUMP_HEIGHT_IN_ENEMY_INK_ABILITY = "RES"; + const { baseEffect, effect } = abilityPointsToEffects({ + abilityPoints: apFromMap({ + abilityPoints: args.abilityPoints, + ability: JUMP_HEIGHT_IN_ENEMY_INK_ABILITY, + }), + key: "OpInk_JumpVel", + weapon: args.mainWeaponParams, + }); + + return { + baseValue: effectToRounded(baseEffect * 10), + value: effectToRounded(effect * 10), + modifiedBy: JUMP_HEIGHT_IN_ENEMY_INK_ABILITY, + }; +} + function shootingRunSpeed( args: StatFunctionInput, keyName: diff --git a/app/features/build-analyzer/data/ability-values.ts b/app/features/build-analyzer/data/ability-values.ts index 281e5fcd9..bc09c0c68 100644 --- a/app/features/build-analyzer/data/ability-values.ts +++ b/app/features/build-analyzer/data/ability-values.ts @@ -4,7 +4,7 @@ export const abilityValues = { ConsumeRt_Sub_Lv1: [0.7, 0.85, 1.0], ConsumeRt_Sub_Lv2: [0.65, 0.825, 1.0], ConsumeRt_Sub_Lv3: [0.6, 0.8, 1.0], - ConsumeRt_Sub_Lv4: [0.71111, 0.85555, 1.0], + ConsumeRt_Sub_Lv4: [0.711111, 0.855555, 1.0], DamageRt_BombH: [0.5, 0.75, 1.0], DamageRt_BombL: [0.6, 0.75, 1.0], DamageRt_LineMarker: [0.5, 0.75, 1.0], @@ -27,7 +27,7 @@ export const abilityValues = { MoveVel_Stealth_Slow: [0.24, 0.216, 0.1728], OpInk_ArmorHP: [39.0, 26.0, 0.0], OpInk_DamageLmt: [0.2, 0.3, 0.4], - OpInk_DamagePerFrame: [0.0015, 0.0022, 0.003], + OpInk_DamagePerFrame: [0.0015, 0.00225, 0.003], OpInk_JumpVel: [0.11, 0.098, 0.08], OpInk_MoveVel: [0.0768, 0.0557, 0.024], OpInk_MoveVel_Shot: [0.042, 0.033, 0.012], diff --git a/app/features/build-analyzer/routes/analyzer.tsx b/app/features/build-analyzer/routes/analyzer.tsx index 938cc4989..6b501addb 100644 --- a/app/features/build-analyzer/routes/analyzer.tsx +++ b/app/features/build-analyzer/routes/analyzer.tsx @@ -927,6 +927,11 @@ function BuildAnalyzerPage() { stat={statKeyToTuple("runSpeedInEnemyInk")} title={t("analyzer:stat.runSpeedInEnemyInk")} /> +