diff --git a/README.md b/README.md index 6939542a4..de38536ce 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,8 @@ While in the folder with the images: for i in *.png; do npx @squoosh/cli --avif '{"cqLevel":33,"cqAlphaLevel":-1,"denoiseLevel":0,"tileColsLog2":0,"tileRowsLog2":0,"speed":6,"subsample":1,"chromaDeltaQ":false,"sharpness":0,"tune":0}' $i; done ``` +Note: it only works with Node 16. + ## How to... ### Download production database from Render.com @@ -187,7 +189,7 @@ Note: This is only useful if you have access to a production running on Render.c - Couple other at the root: `GearInfoClothes.json`, `GearInfoHead.json`, `GearInfoShoes.json`, `spl__DamageRateInfoConfig.pp__CombinationDataTableData.json`, `SplPlayer.game__GameParameterTable.json`, `WeaponInfoMain.json`, `WeaponInfoSpecial.json` and `WeaponInfoSub.json` 2. Update `AVAILABLE_SR_GEAR` with new SR gear 3. Update all `CURRENT_SEASON` constants -4. Update `CURRENT_PATH` constants +4. Update `CURRENT_PATCH` constants 5. `npm run create-misc-json` 6. `npm run create-gear-json` 7. `npm run create-analyzer-json` diff --git a/app/features/build-analyzer/core/stats.test.ts b/app/features/build-analyzer/core/stats.test.ts index d8b784a60..b23a91c0e 100644 --- a/app/features/build-analyzer/core/stats.test.ts +++ b/app/features/build-analyzer/core/stats.test.ts @@ -9,7 +9,7 @@ const AnalyzeBuild = suite("Analyze build"); // TODO: all weapons should have damage const weaponsWithoutDmg: MainWeaponId[] = [ 1000, 1010, 1020, 1030, 1100, 1110, 7010, 7020, 8000, 8010, - /* chill season, */ 1001, 1040, 1101, + /* chill season, */ 1001, 1040, 1101, /* fresh season */ 1011, ]; AnalyzeBuild("Every main weapon has damage", () => { const weaponsWithoutDamage: MainWeaponId[] = []; diff --git a/app/features/build-analyzer/core/weapon-params.json b/app/features/build-analyzer/core/weapon-params.json index a4d77b15e..952e52df9 100644 --- a/app/features/build-analyzer/core/weapon-params.json +++ b/app/features/build-analyzer/core/weapon-params.json @@ -13,6 +13,19 @@ "InkRecoverStop": 15, "InkConsume": 0.008 }, + "1": { + "SpecialPoint": 180, + "subWeaponId": 8, + "specialWeaponId": 9, + "WeaponSpeedType": "Fast", + "MoveSpeed": 0.08, + "DamageParam_ValueMax": 380, + "DamageParam_ValueMin": 190, + "Jump_DegSwerve": 18, + "Stand_DegSwerve": 12, + "InkRecoverStop": 15, + "InkConsume": 0.008 + }, "10": { "SpecialPoint": 180, "subWeaponId": 0, @@ -51,8 +64,20 @@ "Stand_DegSwerve": 0, "InkConsume": 0.008 }, + "21": { + "SpecialPoint": 200, + "subWeaponId": 1, + "specialWeaponId": 14, + "WeaponSpeedType": "Fast", + "MoveSpeed": 0.072, + "DamageParam_ValueMax": 280, + "DamageParam_ValueMin": 140, + "Jump_DegSwerve": 0, + "Stand_DegSwerve": 0, + "InkConsume": 0.008 + }, "30": { - "SpecialPoint": 190, + "SpecialPoint": 180, "subWeaponId": 5, "specialWeaponId": 13, "WeaponSpeedType": "Fast", @@ -122,7 +147,7 @@ "InkConsume": 0.013 }, "60": { - "SpecialPoint": 190, + "SpecialPoint": 180, "subWeaponId": 1, "specialWeaponId": 15, "WeaponSpeedType": "Fast", @@ -133,6 +158,18 @@ "Stand_DegSwerve": 6, "InkConsume": 0.008 }, + "61": { + "SpecialPoint": 180, + "subWeaponId": 7, + "specialWeaponId": 16, + "WeaponSpeedType": "Fast", + "MoveSpeed": 0.084, + "DamageParam_ValueMax": 280, + "DamageParam_ValueMin": 140, + "Jump_DegSwerve": 12, + "Stand_DegSwerve": 6, + "InkConsume": 0.008 + }, "70": { "SpecialPoint": 180, "subWeaponId": 12, @@ -178,6 +215,17 @@ "Stand_DegSwerve": 4, "InkConsume": 0.025 }, + "81": { + "SpecialPoint": 200, + "subWeaponId": 4, + "specialWeaponId": 17, + "MoveSpeed": 0.04, + "DamageParam_ValueMax": 620, + "DamageParam_ValueMin": 350, + "Jump_DegSwerve": 11.3511, + "Stand_DegSwerve": 4, + "InkConsume": 0.025 + }, "90": { "SpecialPoint": 190, "subWeaponId": 12, @@ -189,6 +237,17 @@ "Stand_DegSwerve": 2.5, "InkConsume": 0.016 }, + "91": { + "SpecialPoint": 180, + "subWeaponId": 11, + "specialWeaponId": 5, + "MoveSpeed": 0.06, + "DamageParam_ValueMax": 320, + "DamageParam_ValueMin": 160, + "Jump_DegSwerve": 8, + "Stand_DegSwerve": 2.5, + "InkConsume": 0.016 + }, "100": { "SpecialPoint": 190, "subWeaponId": 9, @@ -341,6 +400,33 @@ "InkRecoverStop": 40, "InkConsume": 0.04 }, + "231": { + "SpecialPoint": 180, + "subWeaponId": 6, + "specialWeaponId": 16, + "overwrites": { + "ReduceJumpSwerveRate": { + "Mid": 0.5 + } + }, + "WeaponSpeedType": "Fast", + "MoveSpeed": 0.065, + "DamageParam_ValueDirect": 600, + "BlastParam_DistanceDamage": [ + { + "Damage": 300, + "Distance": 1 + }, + { + "Damage": 300, + "Distance": 4 + } + ], + "Jump_DegSwerve": 8, + "Stand_DegSwerve": 0, + "InkRecoverStop": 40, + "InkConsume": 0.04 + }, "240": { "SpecialPoint": 200, "subWeaponId": 10, @@ -367,6 +453,32 @@ "InkRecoverStop": 50, "InkConsume": 0.07 }, + "241": { + "SpecialPoint": 200, + "subWeaponId": 13, + "specialWeaponId": 10, + "overwrites": { + "ReduceJumpSwerveRate": { + "Mid": 0.5 + } + }, + "MoveSpeed": 0.055, + "DamageParam_ValueDirect": 850, + "BlastParam_DistanceDamage": [ + { + "Damage": 350, + "Distance": 0.94 + }, + { + "Damage": 350, + "Distance": 3.3 + } + ], + "Jump_DegSwerve": 8, + "Stand_DegSwerve": 0, + "InkRecoverStop": 50, + "InkConsume": 0.07 + }, "250": { "SpecialPoint": 180, "subWeaponId": 11, @@ -406,6 +518,19 @@ "InkRecoverStop": 25, "InkConsume": 0.0115 }, + "301": { + "SpecialPoint": 200, + "subWeaponId": 2, + "specialWeaponId": 11, + "TripleShotSpanFrame": 8, + "MoveSpeed": 0.08, + "DamageParam_ValueMax": 290, + "DamageParam_ValueMin": 145, + "Jump_DegSwerve": 6, + "Stand_DegSwerve": 1, + "InkRecoverStop": 25, + "InkConsume": 0.0115 + }, "310": { "SpecialPoint": 190, "subWeaponId": 9, @@ -456,6 +581,12 @@ "specialWeaponId": 2, "InkConsume_WeaponSwingParam": 0.085 }, + "1011": { + "SpecialPoint": 180, + "subWeaponId": 8, + "specialWeaponId": 17, + "InkConsume_WeaponSwingParam": 0.085 + }, "1020": { "SpecialPoint": 190, "subWeaponId": 3, @@ -527,6 +658,18 @@ "InkConsumeFullCharge": 0.18, "InkConsumeMinCharge": 0.0225 }, + "2011": { + "SpecialPoint": 210, + "subWeaponId": 4, + "specialWeaponId": 14, + "MoveSpeedFullCharge": 0.02, + "DamageParam_ValueFullCharge": 1600, + "DamageParam_ValueMaxCharge": 800, + "DamageParam_ValueMinCharge": 400, + "KeepChargeFullFrame": 75, + "InkConsumeFullCharge": 0.18, + "InkConsumeMinCharge": 0.0225 + }, "2020": { "SpecialPoint": 200, "subWeaponId": 0, @@ -538,6 +681,17 @@ "InkConsumeFullCharge": 0.18, "InkConsumeMinCharge": 0.0225 }, + "2021": { + "SpecialPoint": 210, + "subWeaponId": 4, + "specialWeaponId": 14, + "MoveSpeedFullCharge": 0.02, + "DamageParam_ValueFullCharge": 1600, + "DamageParam_ValueMaxCharge": 800, + "DamageParam_ValueMinCharge": 400, + "InkConsumeFullCharge": 0.18, + "InkConsumeMinCharge": 0.0225 + }, "2030": { "SpecialPoint": 210, "subWeaponId": 10, @@ -636,7 +790,7 @@ "InkConsumeSlosher": 0.07 }, "3010": { - "SpecialPoint": 190, + "SpecialPoint": 180, "subWeaponId": 11, "specialWeaponId": 10, "WeaponSpeedType": "Fast", @@ -646,6 +800,17 @@ "InkRecoverStop": 35, "InkConsumeSlosher": 0.06 }, + "3011": { + "SpecialPoint": 180, + "subWeaponId": 5, + "specialWeaponId": 15, + "WeaponSpeedType": "Fast", + "MoveSpeed": 0.066, + "DamageParam_ValueDirectMax": 620, + "DamageParam_ValueDirectMin": 350, + "InkRecoverStop": 35, + "InkConsumeSlosher": 0.06 + }, "3020": { "SpecialPoint": 220, "subWeaponId": 5, @@ -769,7 +934,7 @@ "InkConsumeFullChargeSplatling": 0.35 }, "4030": { - "SpecialPoint": 200, + "SpecialPoint": 190, "subWeaponId": 5, "specialWeaponId": 10, "overwrites": { @@ -919,7 +1084,7 @@ "InkConsume_WeaponShelterShotgunParam": 0.04 }, "7010": { - "SpecialPoint": 200, + "SpecialPoint": 190, "subWeaponId": 11, "specialWeaponId": 9, "MoveSpeedFullCharge": 0.06, @@ -1025,7 +1190,7 @@ }, "SubInkSaveLv": 0, "InkConsume": 0.4, - "InkRecoverStop": 50, + "InkRecoverStop": 60, "DistanceDamage": [ { "Damage": 350, @@ -1398,7 +1563,7 @@ "SpecialDurationFrame": { "High": 240, "Low": 180, - "Mid": 210 + "Mid": 220 } } }, @@ -1491,6 +1656,34 @@ "Mid": 1200 } } + }, + "16": { + "overwrites": { + "CrossPaintCheckLength": { + "High": 3, + "Low": 2.5, + "Mid": 2.75 + }, + "CrossPaintRadius": { + "High": 3, + "Low": 2.5, + "Mid": 2.75 + }, + "DistanceDamageDistanceRate": { + "High": 1.2, + "Low": 1, + "Mid": 1.1 + } + } + }, + "17": { + "overwrites": { + "SpecialDurationFrame": { + "High": 600, + "Low": 480, + "Mid": 540 + } + } } } } diff --git a/app/features/build-analyzer/routes/analyzer.tsx b/app/features/build-analyzer/routes/analyzer.tsx index bd11a95af..f03d86dac 100644 --- a/app/features/build-analyzer/routes/analyzer.tsx +++ b/app/features/build-analyzer/routes/analyzer.tsx @@ -63,7 +63,7 @@ import { Tabs, Tab } from "~/components/Tabs"; import { buildIsEmpty, isStackableAbility } from "../core/utils"; import { useUser } from "~/modules/auth"; -export const CURRENT_PATCH = "2.1"; +export const CURRENT_PATCH = "3.0"; export const meta: MetaFunction = () => { return { diff --git a/app/features/map-planner/components/Planner.tsx b/app/features/map-planner/components/Planner.tsx index c4bb6afdc..932881f5b 100644 --- a/app/features/map-planner/components/Planner.tsx +++ b/app/features/map-planner/components/Planner.tsx @@ -297,6 +297,8 @@ function WeaponImageSelector({ ); } +const stageIdsWithBackgrounds = stageIds.slice(0, 14); + function StageBackgroundSelector({ onAddBackground, }: { @@ -320,7 +322,7 @@ function StageBackgroundSelector({ onChange={(e) => setStageId(Number(e.target.value) as StageId)} aria-label="Select stage" > - {stageIds.map((stageId) => { + {stageIdsWithBackgrounds.map((stageId) => { return (