From f6158b249c3ca119b36e52bd581951cc147869ba Mon Sep 17 00:00:00 2001 From: Juno Date: Wed, 4 Mar 2026 14:22:24 -0500 Subject: [PATCH] Added logic and styling --- public/fonts/kyrou 7 wide bold xtnd.ttf | Bin 0 -> 75904 bytes src/App.tsx | 1 + src/index.css | 15 ++- src/pages/Main.tsx | 140 ++++++++++++++++++++---- src/styles/fonts-grixel.css | 9 ++ src/typing/girlTypes.ts | 4 +- 6 files changed, 146 insertions(+), 23 deletions(-) create mode 100644 public/fonts/kyrou 7 wide bold xtnd.ttf create mode 100644 src/styles/fonts-grixel.css diff --git a/public/fonts/kyrou 7 wide bold xtnd.ttf b/public/fonts/kyrou 7 wide bold xtnd.ttf new file mode 100644 index 0000000000000000000000000000000000000000..165c3e76dc9c4d03ae2417b86bc52c603d6a8096 GIT binary patch literal 75904 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 z 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 A--X4W^C9XL4cY{;#sf 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 literal 0 HcmV?d00001 diff --git a/src/App.tsx b/src/App.tsx index 46ec3a3..f07aa80 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,6 @@ import type { Component } from "solid-js"; import Main from "./pages/Main"; +import "./styles/fonts-grixel.css"; const App: Component = () => { return
; diff --git a/src/index.css b/src/index.css index d4b5078..d431901 100644 --- a/src/index.css +++ b/src/index.css @@ -1 +1,14 @@ -@import 'tailwindcss'; +@import "tailwindcss"; + +@theme { + --animate-fadein: fadein 0.1s ease-in-out 1; + @keyframes fadein { + 0%, + 100% { + transform: rotate(-1deg); + } + 50% { + transform: rotate(1deg); + } + } +} diff --git a/src/pages/Main.tsx b/src/pages/Main.tsx index e56deec..2a1bdda 100644 --- a/src/pages/Main.tsx +++ b/src/pages/Main.tsx @@ -1,4 +1,4 @@ -import { createSignal, type Component } from "solid-js"; +import { createMemo, createSignal, type Component } from "solid-js"; import { allTypes, girlTypes } from "../typing/girlTypes"; const Main: Component = () => { @@ -10,13 +10,82 @@ const Main: Component = () => { ? prev.filter((value) => value !== girl) : [...prev, girl], ); - console.log(selectedTypes()); }; + const chosenTypes = createMemo(() => { + const ret = [ + ...selectedTypes().map((girl) => + allTypes.find((girlT) => girlT.type === girl), + ), + ]; + return ret; + }); + + const rows = createMemo(() => { + console.log("Calculating weaknesses..."); + let strengths: girlTypes[] = []; + let weaknesses: girlTypes[] = []; + let immunities: girlTypes[] = []; + selectedTypes().forEach((t) => { + const currentGirl = allTypes.find((girl) => girl.type === t); + if (currentGirl) { + strengths = [...strengths, ...currentGirl.strengths]; + weaknesses = [...weaknesses, ...currentGirl.weaknesses]; + immunities = [...immunities, ...currentGirl.immunities]; + } + }); + const girlT = { + ...girlTypes, + }; + const keys = Object.keys(girlT); + let counts = new Map(); + keys.forEach((key) => counts.set(girlT[parseInt(key)], 0)); + + strengths.forEach((str) => + counts.set(girlTypes[str], counts.get(girlTypes[str]) + 1), + ); + weaknesses.forEach((wea) => + counts.set(girlTypes[wea], counts.get(girlTypes[wea]) - 1), + ); + + const multipliers = new Set([...counts.values()].sort((a, b) => b - a)); + + const rows: { mul: number; girls: string[] }[] = []; + multipliers.forEach((mul) => rows.push({ mul: mul, girls: [] })); + + counts.forEach((value, key) => + rows + .find((val) => val.mul === value && key != "None" && key != undefined) + ?.girls.push(key), + ); + + const finalRows = rows.map((value) => { + return { mul: 1 * Math.pow(2, value.mul), girls: value.girls }; + }); + + if (immunities.length > 0) { + finalRows.push({ + mul: 0, + girls: [...immunities.map((value) => girlTypes[value])], + }); + } + + const ret = finalRows.map((value) => { + return { + mul: value.mul, + girls: value.girls.map((girl) => + allTypes.find((girlT) => girlTypes[girlT.type] === girl), + ), + }; + }); + + return ret; + }); + return ( -
-
-

Choose defending Pokémon types

+
+
+

Choose defending Pokémon types

{allTypes.map((t) => ( ))}
+
+

Your types:

+
+ {chosenTypes().map((g) => ( + {g?.displayName} + ))} +
+ +
-
-

Takes 1× from

+
+ {rows().map((row) => ( +
+

Takes {row.mul}× from

+
+ {row.girls.map((g) => ( + {g?.displayName} + ))} +
+
+ ))}
); diff --git a/src/styles/fonts-grixel.css b/src/styles/fonts-grixel.css new file mode 100644 index 0000000..ad11ec1 --- /dev/null +++ b/src/styles/fonts-grixel.css @@ -0,0 +1,9 @@ +@font-face { + font-family: "Grixel"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: + local("Grixel Kyrou 7 Wide"), + url("/fonts/kyrou 7 wide bold xtnd.ttf") format("truetype"); +} diff --git a/src/typing/girlTypes.ts b/src/typing/girlTypes.ts index ea1e389..922a831 100644 --- a/src/typing/girlTypes.ts +++ b/src/typing/girlTypes.ts @@ -117,8 +117,8 @@ export const Puppy: girlType = { displayName: "PUPPY", displayImage: ImgPuppy, type: girlTypes.Puppy, - strengths: [], - weaknesses: [], + strengths: [girlTypes.Knight, girlTypes.Puppy, girlTypes.Plushy, girlTypes.Angel, girlTypes.PoolToy], + weaknesses: [girlTypes.Kitty, girlTypes.Little, girlTypes.Dragon, girlTypes.Bug, girlTypes.Goddess, girlTypes.Horror, girlTypes.Handler], immunities: [] }