From 2c7272585bd6b10629588bcd6115d2dbdee13370 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sat, 21 Jan 2023 15:22:25 +0200 Subject: [PATCH] Show main abilities in AP compare --- app/features/build-analyzer/analyzer.css | 7 ++++ app/features/build-analyzer/core/utils.ts | 4 ++- .../build-analyzer/routes/analyzer.tsx | 33 ++++++++++++++++++- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/app/features/build-analyzer/analyzer.css b/app/features/build-analyzer/analyzer.css index e549dea2f..b2f68b302 100644 --- a/app/features/build-analyzer/analyzer.css +++ b/app/features/build-analyzer/analyzer.css @@ -22,6 +22,13 @@ align-items: center; } +.analyzer__ap-compare__mains { + grid-column: span 2; + display: flex; + justify-content: center; + gap: var(--s-2); +} + .analyzer__ap-compare__bar { height: 100%; background-color: var(--theme); diff --git a/app/features/build-analyzer/core/utils.ts b/app/features/build-analyzer/core/utils.ts index fbddfef6d..2079c48e4 100644 --- a/app/features/build-analyzer/core/utils.ts +++ b/app/features/build-analyzer/core/utils.ts @@ -46,7 +46,9 @@ export function buildToAbilityPoints(build: BuildAbilitiesTupleWithUnknown) { return result; } -function isStackableAbility(ability: AbilityWithUnknown): ability is Ability { +export function isStackableAbility( + ability: AbilityWithUnknown +): ability is Ability { if (ability === "UNKNOWN") return false; const abilityObj = abilities.find((a) => a.name === ability); invariant(abilityObj); diff --git a/app/features/build-analyzer/routes/analyzer.tsx b/app/features/build-analyzer/routes/analyzer.tsx index a495a1525..2e0dbad5e 100644 --- a/app/features/build-analyzer/routes/analyzer.tsx +++ b/app/features/build-analyzer/routes/analyzer.tsx @@ -59,6 +59,7 @@ import { } from "../analyzer-constants"; import { useAnalyzeBuild } from "../analyzer-hooks"; import { Tabs, Tab } from "~/components/Tabs"; +import { isStackableAbility } from "../core/utils"; export const CURRENT_PATCH = "2.1"; @@ -237,6 +238,8 @@ export default function BuildAnalyzerPage() { )} @@ -855,18 +858,46 @@ export default function BuildAnalyzerPage() { ); } -// xxx: no main abilities? function APCompare({ abilityPoints, abilityPoints2, + build, + build2, }: { abilityPoints: AbilityPoints; abilityPoints2: AbilityPoints; + build: BuildAbilitiesTupleWithUnknown; + build2: BuildAbilitiesTupleWithUnknown; }) { const { t } = useTranslation(["analyzer"]); + const buildMains = build + .flat() + .filter((ability) => !isStackableAbility(ability) && ability !== "UNKNOWN"); + const build2Mains = build2 + .flat() + .filter((ability) => !isStackableAbility(ability) && ability !== "UNKNOWN"); + + const hasAtLeastOneMainOnlyAbility = + buildMains.length > 0 || build2Mains.length > 0; + return (
+ {hasAtLeastOneMainOnlyAbility ? ( + <> +
+ {buildMains.map((ability) => ( + + ))} +
+
+
+ {build2Mains.map((ability) => ( + + ))} +
+ + ) : null} {([...abilitiesShort, "UNKNOWN"] as const).map((ability) => { const ap = abilityPoints.get(ability) ?? 0; const ap2 = abilityPoints2.get(ability) ?? 0;