diff --git a/app/features/build-analyzer/analyzer-constants.ts b/app/features/build-analyzer/analyzer-constants.ts index 52131e323..ac069fa3d 100644 --- a/app/features/build-analyzer/analyzer-constants.ts +++ b/app/features/build-analyzer/analyzer-constants.ts @@ -40,6 +40,8 @@ export const DAMAGE_TYPE = [ "SPECIAL_CANNON", "SPECIAL_BULLET_MAX", "SPECIAL_BULLET_MIN", + "SPECIAL_SPLASH_MAX", + "SPECIAL_SPLASH_MIN", "SPECIAL_BUMP", "SPECIAL_JUMP", "SPECIAL_TICK", @@ -90,6 +92,8 @@ export const damageTypeToWeaponType: Record< SPECIAL_THROW_DIRECT: "SPECIAL", SPECIAL_BULLET_MIN: "SPECIAL", SPECIAL_BULLET_MAX: "SPECIAL", + SPECIAL_SPLASH_MAX: "SPECIAL", + SPECIAL_SPLASH_MIN: "SPECIAL", SPECIAL_CANNON: "SPECIAL", SPECIAL_BUMP: "SPECIAL", SPECIAL_JUMP: "SPECIAL", diff --git a/app/features/build-analyzer/analyzer-types.ts b/app/features/build-analyzer/analyzer-types.ts index a9a422672..69b6d140e 100644 --- a/app/features/build-analyzer/analyzer-types.ts +++ b/app/features/build-analyzer/analyzer-types.ts @@ -182,6 +182,8 @@ export type SpecialWeaponParams = SpecialWeaponParamsObject[SpecialWeaponId] & { ThrowDirectDamage?: number; BulletDamageMin?: number; BulletDamageMax?: number; + SplashDamageMax?: Array; + SplashDamageMin?: Array; CannonDamage?: Array; BumpDamage?: number; JumpDamage?: number; diff --git a/app/features/build-analyzer/core/stats.ts b/app/features/build-analyzer/core/stats.ts index e2baad6b9..6149eaf2b 100644 --- a/app/features/build-analyzer/core/stats.ts +++ b/app/features/build-analyzer/core/stats.ts @@ -442,6 +442,8 @@ const damageTypeToParamsKey: Record< SPECIAL_THROW_DIRECT: "ThrowDirectDamage", SPECIAL_BULLET_MAX: "BulletDamageMax", SPECIAL_BULLET_MIN: "BulletDamageMin", + SPECIAL_SPLASH_MAX: "SplashDamageMax", + SPECIAL_SPLASH_MIN: "SplashDamageMin", SPECIAL_CANNON: "CannonDamage", SPECIAL_BUMP: "BumpDamage", SPECIAL_JUMP: "JumpDamage", diff --git a/app/features/build-analyzer/core/weapon-params.ts b/app/features/build-analyzer/core/weapon-params.ts index b14b61647..519a1e69f 100644 --- a/app/features/build-analyzer/core/weapon-params.ts +++ b/app/features/build-analyzer/core/weapon-params.ts @@ -2632,11 +2632,13 @@ export const weaponParams = { Mid: 1.1, }, }, - DistanceDamage: [ + SplashDamageMax: [ { Damage: 700, Distance: 3.6, }, + ], + SplashDamageMin: [ { Damage: 350, Distance: 6, diff --git a/app/features/object-damage-calculator/calculator-hooks.ts b/app/features/object-damage-calculator/calculator-hooks.ts index 1322bff09..f071ce205 100644 --- a/app/features/object-damage-calculator/calculator-hooks.ts +++ b/app/features/object-damage-calculator/calculator-hooks.ts @@ -139,6 +139,8 @@ const damageTypePriorityList = [ "SPECIAL_CANNON", "SPECIAL_BULLET_MAX", "SPECIAL_BULLET_MIN", + "SPECIAL_SPLASH_MAX", + "SPECIAL_SPLASH_MIN", "SPECIAL_BUMP", "SPECIAL_JUMP", "SPECIAL_TICK", diff --git a/locales/da/analyzer.json b/locales/da/analyzer.json index b3f326c64..a1edd144f 100644 --- a/locales/da/analyzer.json +++ b/locales/da/analyzer.json @@ -130,6 +130,8 @@ "damage.SPECIAL_SWING": "Sving", "damage.SPECIAL_BULLET_MIN": "Projektil (Minimum)", "damage.SPECIAL_BULLET_MAX": "Projektil (Maksimum)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Kanon", "damage.SPECIAL_BUMP": "Bump", "damage.SPECIAL_JUMP": "Spring", diff --git a/locales/de/analyzer.json b/locales/de/analyzer.json index 451ef68c2..9f027f7ba 100644 --- a/locales/de/analyzer.json +++ b/locales/de/analyzer.json @@ -130,6 +130,8 @@ "damage.SPECIAL_SWING": "", "damage.SPECIAL_BULLET_MIN": "", "damage.SPECIAL_BULLET_MAX": "", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "", "damage.SPECIAL_BUMP": "", "damage.SPECIAL_JUMP": "", diff --git a/locales/en/analyzer.json b/locales/en/analyzer.json index eaa171b44..7d651fa7f 100644 --- a/locales/en/analyzer.json +++ b/locales/en/analyzer.json @@ -130,6 +130,8 @@ "damage.SPECIAL_SWING": "Swing", "damage.SPECIAL_BULLET_MIN": "Bullet (Minimum)", "damage.SPECIAL_BULLET_MAX": "Bullet (Maximum)", + "damage.SPECIAL_SPLASH_MAX": "Splash (Maximum)", + "damage.SPECIAL_SPLASH_MIN": "Splash (Minimum)", "damage.SPECIAL_CANNON": "Cannon", "damage.SPECIAL_BUMP": "Bump", "damage.SPECIAL_JUMP": "Jump", diff --git a/locales/es-ES/analyzer.json b/locales/es-ES/analyzer.json index ceddf9b64..5df48129d 100644 --- a/locales/es-ES/analyzer.json +++ b/locales/es-ES/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "Martilleo", "damage.SPECIAL_BULLET_MIN": "Bala (mínimo)", "damage.SPECIAL_BULLET_MAX": "Mala (máximo)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Cañón", "damage.SPECIAL_BUMP": "Golpe", "damage.SPECIAL_JUMP": "Salto", diff --git a/locales/es-US/analyzer.json b/locales/es-US/analyzer.json index ceddf9b64..5df48129d 100644 --- a/locales/es-US/analyzer.json +++ b/locales/es-US/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "Martilleo", "damage.SPECIAL_BULLET_MIN": "Bala (mínimo)", "damage.SPECIAL_BULLET_MAX": "Mala (máximo)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Cañón", "damage.SPECIAL_BUMP": "Golpe", "damage.SPECIAL_JUMP": "Salto", diff --git a/locales/fr-CA/analyzer.json b/locales/fr-CA/analyzer.json index 333ec5d21..e840b45e8 100644 --- a/locales/fr-CA/analyzer.json +++ b/locales/fr-CA/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "Tamponnage", "damage.SPECIAL_BULLET_MIN": "Mitrailleuse (Minimum)", "damage.SPECIAL_BULLET_MAX": "Mitrailleuse (Maximum)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Canon", "damage.SPECIAL_BUMP": "Collision", "damage.SPECIAL_JUMP": "Saut", diff --git a/locales/fr-EU/analyzer.json b/locales/fr-EU/analyzer.json index 56d2548f9..fb2b9d5e3 100644 --- a/locales/fr-EU/analyzer.json +++ b/locales/fr-EU/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "Tamponnage", "damage.SPECIAL_BULLET_MIN": "Mitrailleuse (Minimum)", "damage.SPECIAL_BULLET_MAX": "Mitrailleuse (Maximum)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Canon", "damage.SPECIAL_BUMP": "Collision", "damage.SPECIAL_JUMP": "Saut", diff --git a/locales/he/analyzer.json b/locales/he/analyzer.json index 42fe2f91c..9b407daf3 100644 --- a/locales/he/analyzer.json +++ b/locales/he/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "הנפה", "damage.SPECIAL_BULLET_MIN": "קליע (מינימום)", "damage.SPECIAL_BULLET_MAX": "קליע (מקסימום)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "תותח", "damage.SPECIAL_BUMP": "מכה", "damage.SPECIAL_JUMP": "קפיצה", diff --git a/locales/it/analyzer.json b/locales/it/analyzer.json index eb3f64233..4bcb231d9 100644 --- a/locales/it/analyzer.json +++ b/locales/it/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "Colpo", "damage.SPECIAL_BULLET_MIN": "Proiettile (Minimo)", "damage.SPECIAL_BULLET_MAX": "Proiettile (Massimo)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Cannone", "damage.SPECIAL_BUMP": "Scontro", "damage.SPECIAL_JUMP": "Salto", diff --git a/locales/ja/analyzer.json b/locales/ja/analyzer.json index 25f7e6167..f9b0e2ff0 100644 --- a/locales/ja/analyzer.json +++ b/locales/ja/analyzer.json @@ -128,6 +128,8 @@ "damage.SPECIAL_SWING": "スタンプ", "damage.SPECIAL_BULLET_MIN": "連射ショット (最小)", "damage.SPECIAL_BULLET_MAX": "連射ショット (最大)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "カノン砲", "damage.SPECIAL_BUMP": "体当たり", "damage.SPECIAL_JUMP": "ジャンプ", diff --git a/locales/ko/analyzer.json b/locales/ko/analyzer.json index b8090e9d5..df70027f8 100644 --- a/locales/ko/analyzer.json +++ b/locales/ko/analyzer.json @@ -128,6 +128,8 @@ "damage.SPECIAL_SWING": "휘두르기", "damage.SPECIAL_BULLET_MIN": "연사 (최소)", "damage.SPECIAL_BULLET_MAX": "연사 (최대)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "대포", "damage.SPECIAL_BUMP": "충돌", "damage.SPECIAL_JUMP": "점프", diff --git a/locales/nl/analyzer.json b/locales/nl/analyzer.json index d24168b3a..0591bf760 100644 --- a/locales/nl/analyzer.json +++ b/locales/nl/analyzer.json @@ -130,6 +130,8 @@ "damage.SPECIAL_SWING": "", "damage.SPECIAL_BULLET_MIN": "", "damage.SPECIAL_BULLET_MAX": "", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "", "damage.SPECIAL_BUMP": "", "damage.SPECIAL_JUMP": "", diff --git a/locales/pl/analyzer.json b/locales/pl/analyzer.json index 93c6cf62c..0920994d5 100644 --- a/locales/pl/analyzer.json +++ b/locales/pl/analyzer.json @@ -132,6 +132,8 @@ "damage.SPECIAL_SWING": "", "damage.SPECIAL_BULLET_MIN": "", "damage.SPECIAL_BULLET_MAX": "", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "", "damage.SPECIAL_BUMP": "", "damage.SPECIAL_JUMP": "", diff --git a/locales/pt-BR/analyzer.json b/locales/pt-BR/analyzer.json index 3bd753258..b1a20357b 100644 --- a/locales/pt-BR/analyzer.json +++ b/locales/pt-BR/analyzer.json @@ -131,6 +131,8 @@ "damage.SPECIAL_SWING": "Martelada", "damage.SPECIAL_BULLET_MIN": "Bala (Mínimo)", "damage.SPECIAL_BULLET_MAX": "Bala (Máximo)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Canhão", "damage.SPECIAL_BUMP": "Colisão", "damage.SPECIAL_JUMP": "Pulo", diff --git a/locales/ru/analyzer.json b/locales/ru/analyzer.json index 24ab506dd..c27b40c6e 100644 --- a/locales/ru/analyzer.json +++ b/locales/ru/analyzer.json @@ -132,6 +132,8 @@ "damage.SPECIAL_SWING": "Взмах", "damage.SPECIAL_BULLET_MIN": "Пуля (Минимум)", "damage.SPECIAL_BULLET_MAX": "Пуля (Максимум)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "Пушка", "damage.SPECIAL_BUMP": "Толчок", "damage.SPECIAL_JUMP": "Прыжок", diff --git a/locales/zh/analyzer.json b/locales/zh/analyzer.json index aca82c5c5..e83a6468d 100644 --- a/locales/zh/analyzer.json +++ b/locales/zh/analyzer.json @@ -128,6 +128,8 @@ "damage.SPECIAL_SWING": "挥动", "damage.SPECIAL_BULLET_MIN": "子弹 (最小值)", "damage.SPECIAL_BULLET_MAX": "子弹 (最大值)", + "damage.SPECIAL_SPLASH_MAX": "", + "damage.SPECIAL_SPLASH_MIN": "", "damage.SPECIAL_CANNON": "炮击", "damage.SPECIAL_BUMP": "撞击", "damage.SPECIAL_JUMP": "跳跃", diff --git a/scripts/create-analyzer-json.ts b/scripts/create-analyzer-json.ts index 8605b4ffd..3399b520c 100644 --- a/scripts/create-analyzer-json.ts +++ b/scripts/create-analyzer-json.ts @@ -111,6 +111,21 @@ async function main() { const rawParams = loadWeaponParamsObject(specialWeapon); const params = parametersToSpecialWeaponResult(rawParams); + // Super Chumps has two distinct splash damage values (near/far) + // that should be labeled separately in the analyzer + const SUPER_CHUMP_SPECIAL_ID = 16; + if ( + specialWeapon.Id === SUPER_CHUMP_SPECIAL_ID && + params.DistanceDamage?.length === 2 + ) { + const sorted = [...params.DistanceDamage].sort( + (a: any, b: any) => b.Damage - a.Damage, + ); + params.SplashDamageMax = [sorted[0]]; + params.SplashDamageMin = [sorted[1]]; + params.DistanceDamage = undefined; + } + if (hasLangDicts) { translationsToArray({ arr: translations,