From a064a4456093de9eb5a7a87276fbce22970219f1 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 25 May 2023 11:11:47 +0100 Subject: [PATCH 01/30] Change this to be slightly better and different --- src/app/calc/eval/clickWand.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/app/calc/eval/clickWand.ts b/src/app/calc/eval/clickWand.ts index 5287aa8..2bb4570 100644 --- a/src/app/calc/eval/clickWand.ts +++ b/src/app/calc/eval/clickWand.ts @@ -242,9 +242,8 @@ export function clickWand( if ( !fireUntilReload || - (endOnRefresh && - calledActions!.filter((a) => a.action.id === 'RESET').length > 0) || - calledActions!.length === 0 + calledActions!.length === 0 || + (endOnRefresh && calledActions!.some((a) => a.action.id === 'RESET')) ) { break; } From 7bbe73cd3e2db52e433242cfe7d86b809808bf68 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 25 May 2023 11:11:56 +0100 Subject: [PATCH 02/30] Add nvmrc --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..6f7f377 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v16 From 84cf86686feb358349a5419bb4f72a3158c53268 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 25 May 2023 11:19:50 +0100 Subject: [PATCH 03/30] Remove openssl-legacy-provider flag again --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5696ccb..f86acc2 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "web-vitals": "^2.1.0" }, "scripts": { - "start": "BROWSER=none react-scripts --openssl-legacy-provider start", + "start": "BROWSER=none react-scripts start", "build": "CI= react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", From 58cb1afabc454ef9335f78efbfbb13a6d1c410c1 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 25 May 2023 18:50:45 +0100 Subject: [PATCH 04/30] Seems to be the issue for add trigger fixed --- src/app/calc/__generated__/gun_actions.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/app/calc/__generated__/gun_actions.ts b/src/app/calc/__generated__/gun_actions.ts index 24c3541..c19500b 100644 --- a/src/app/calc/__generated__/gun_actions.ts +++ b/src/app/calc/__generated__/gun_actions.ts @@ -7427,7 +7427,8 @@ export const actions: Action[] = [ if (( check != null ) && ( ( check.type === ACTION_TYPE_PROJECTILE ) || ( check.type === ACTION_TYPE_STATIC_PROJECTILE ) || ( check.type === ACTION_TYPE_MATERIAL ) || ( check.type === ACTION_TYPE_UTILITY ) )) { valid = true - return false; + // return false; + break; } } @@ -7507,7 +7508,8 @@ export const actions: Action[] = [ if (( check != null ) && ( ( check.type === ACTION_TYPE_PROJECTILE ) || ( check.type === ACTION_TYPE_STATIC_PROJECTILE ) || ( check.type === ACTION_TYPE_MATERIAL ) || ( check.type === ACTION_TYPE_UTILITY ) )) { valid = true - return false; + // return false; + break; } } @@ -7587,7 +7589,8 @@ export const actions: Action[] = [ if (( check != null ) && ( ( check.type === ACTION_TYPE_PROJECTILE ) || ( check.type === ACTION_TYPE_STATIC_PROJECTILE ) || ( check.type === ACTION_TYPE_MATERIAL ) || ( check.type === ACTION_TYPE_UTILITY ) )) { valid = true - return false; + // return false; + break; } } From 1bcccd71f597f70f73b15bc9519c5ddd6c24a6ab Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 25 May 2023 19:37:11 +0100 Subject: [PATCH 05/30] Manual fix for triggers --- src/app/calc/__generated__/gun_actions.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/calc/__generated__/gun_actions.ts b/src/app/calc/__generated__/gun_actions.ts index c19500b..072a77a 100644 --- a/src/app/calc/__generated__/gun_actions.ts +++ b/src/app/calc/__generated__/gun_actions.ts @@ -7427,8 +7427,8 @@ export const actions: Action[] = [ if (( check != null ) && ( ( check.type === ACTION_TYPE_PROJECTILE ) || ( check.type === ACTION_TYPE_STATIC_PROJECTILE ) || ( check.type === ACTION_TYPE_MATERIAL ) || ( check.type === ACTION_TYPE_UTILITY ) )) { valid = true - // return false; - break; + // return false; TODO fix this in generate script + break; } } @@ -7508,8 +7508,8 @@ export const actions: Action[] = [ if (( check != null ) && ( ( check.type === ACTION_TYPE_PROJECTILE ) || ( check.type === ACTION_TYPE_STATIC_PROJECTILE ) || ( check.type === ACTION_TYPE_MATERIAL ) || ( check.type === ACTION_TYPE_UTILITY ) )) { valid = true - // return false; - break; + // return false; TODO fix this in generate script + break; } } @@ -7589,8 +7589,8 @@ export const actions: Action[] = [ if (( check != null ) && ( ( check.type === ACTION_TYPE_PROJECTILE ) || ( check.type === ACTION_TYPE_STATIC_PROJECTILE ) || ( check.type === ACTION_TYPE_MATERIAL ) || ( check.type === ACTION_TYPE_UTILITY ) )) { valid = true - // return false; - break; + // return false; TODO fix this in generate script + break; } } From c50f0a3d2b0e6b512fbfab6348317a9e16d0a325 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Wed, 31 May 2023 09:10:41 +0100 Subject: [PATCH 06/30] Add buttons for undo/redo functionality --- src/app/components/MainHeader.tsx | 2 +- src/app/components/RedoButton.tsx | 25 +++++++++++++++++++++++++ src/app/components/UndoButton.tsx | 25 +++++++++++++++++++++++++ src/app/components/WandSimulator.tsx | 25 ++++--------------------- 4 files changed, 55 insertions(+), 22 deletions(-) create mode 100644 src/app/components/RedoButton.tsx create mode 100644 src/app/components/UndoButton.tsx diff --git a/src/app/components/MainHeader.tsx b/src/app/components/MainHeader.tsx index 8e27744..f7929ab 100644 --- a/src/app/components/MainHeader.tsx +++ b/src/app/components/MainHeader.tsx @@ -23,7 +23,7 @@ const SpacerDiv = styled.div` const ExtraDiv = styled.div` display: flex; align-self: center; - width: 220px; + width: 340px; margin-right: 15px; `; diff --git a/src/app/components/RedoButton.tsx b/src/app/components/RedoButton.tsx new file mode 100644 index 0000000..b31fa8b --- /dev/null +++ b/src/app/components/RedoButton.tsx @@ -0,0 +1,25 @@ +import { useAppDispatch } from '../redux/hooks'; +import { useEffect } from 'react'; +import { ActionCreators } from 'redux-undo'; + +type Props = {}; + +export function RedoButton(props: Props) { + const dispatch = useAppDispatch(); + + useEffect(() => { + const listener = (e: KeyboardEvent) => { + if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'z') { + dispatch(ActionCreators.redo()); + } + }; + window.addEventListener('keydown', listener); + return () => window.removeEventListener('keydown', listener); + }, [dispatch]); + + return ( +
+ +
+ ); +} diff --git a/src/app/components/UndoButton.tsx b/src/app/components/UndoButton.tsx new file mode 100644 index 0000000..f887f21 --- /dev/null +++ b/src/app/components/UndoButton.tsx @@ -0,0 +1,25 @@ +import { useAppDispatch } from '../redux/hooks'; +import { useEffect } from 'react'; +import { ActionCreators } from 'redux-undo'; + +type Props = {}; + +export function UndoButton(props: Props) { + const dispatch = useAppDispatch(); + + useEffect(() => { + const listener = (e: KeyboardEvent) => { + if (e.ctrlKey && !e.shiftKey && e.key.toLowerCase() === 'z') { + dispatch(ActionCreators.undo()); + } + }; + window.addEventListener('keydown', listener); + return () => window.removeEventListener('keydown', listener); + }, [dispatch]); + + return ( +
+ +
+ ); +} diff --git a/src/app/components/WandSimulator.tsx b/src/app/components/WandSimulator.tsx index 09da4eb..d02027a 100644 --- a/src/app/components/WandSimulator.tsx +++ b/src/app/components/WandSimulator.tsx @@ -11,9 +11,10 @@ import styled from 'styled-components'; import { ConfigButton } from './config/ConfigButton'; import { ResetButton } from './ResetButton'; import { useEffect } from 'react'; -import { ActionCreators } from 'redux-undo'; import { forceDisableCanvasSmoothing } from '../util/util'; import { CastConfigEditor } from './config/CastConfigEditor'; +import { UndoButton } from './UndoButton'; +import { RedoButton } from './RedoButton'; const Column = styled.div` display: flex; @@ -38,30 +39,12 @@ export function WandSimulator(props: Props) { forceDisableCanvasSmoothing(); }, []); - useEffect(() => { - const listener = (e: KeyboardEvent) => { - if (e.ctrlKey && !e.shiftKey && e.key.toLowerCase() === 'z') { - dispatch(ActionCreators.undo()); - } - }; - window.addEventListener('keydown', listener); - return () => window.removeEventListener('keydown', listener); - }, [dispatch]); - - useEffect(() => { - const listener = (e: KeyboardEvent) => { - if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'z') { - dispatch(ActionCreators.redo()); - } - }; - window.addEventListener('keydown', listener); - return () => window.removeEventListener('keydown', listener); - }, [dispatch]); - return ( + + From c7ef4ee2227aee3286586cd6c2231c14325a558f Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Wed, 28 Jun 2023 02:46:46 +0100 Subject: [PATCH 07/30] A few UI tweaks to make it look more like the game --- .gitignore | 1 + public/data/config/die2.png | Bin 0 -> 628 bytes public/data/config/goldnugget2.png | Bin 0 -> 265 bytes public/data/config/heart2.png | Bin 0 -> 1170 bytes public/data/fonts/NoitaGlyphScaled.ttf | Bin 0 -> 24256 bytes public/data/fonts/NoitaPixel.ttf | Bin 0 -> 19832 bytes public/logo.png | Bin 0 -> 22246 bytes src/app/components/MainHeader.tsx | 23 +- src/app/components/ResetButton.tsx | 17 - src/app/components/SectionHeader.tsx | 38 +- src/app/components/SpellSelector.tsx | 134 +++++- src/app/components/WandBuilder.tsx | 32 +- src/app/components/WandSimulator.tsx | 18 +- src/app/components/WandStatsEditor.tsx | 2 +- src/app/components/buttons/ExportButton.tsx | 32 ++ .../components/{ => buttons}/RedoButton.tsx | 12 +- src/app/components/buttons/ResetButton.tsx | 21 + src/app/components/buttons/SaveButton.tsx | 32 ++ .../components/{ => buttons}/UndoButton.tsx | 12 +- src/app/components/buttons/index.ts | 7 + .../components/config/CastConfigEditor.tsx | 406 ++++++++++++++---- src/app/components/config/ConfigButton.tsx | 11 +- src/app/components/generic/Button.tsx | 58 +++ src/app/components/generic/Modal.tsx | 2 +- .../components/generic/ProcessingModal.tsx | 2 +- src/app/components/generic/Tabs.tsx | 85 +++- src/app/components/generic/index.ts | 7 + .../presetMenu/WandPresetButton.tsx | 9 +- .../shotResult/ProjectileCastState.tsx | 2 +- .../components/shotResult/ShotResultList.tsx | 4 +- src/app/components/wandAction/WandAction.tsx | 8 +- .../wandAction/WandActionDragSource.tsx | 13 +- .../components/wandAction/WandActionGroup.tsx | 2 +- .../annotations/ActionProxyAnnotation.tsx | 6 +- src/app/redux/configSlice.ts | 10 + src/app/util/util.ts | 85 +++- src/fonts/NoitaGlyphScaled.ttf | Bin 0 -> 24256 bytes src/fonts/NoitaPixel.ttf | Bin 0 -> 19832 bytes src/index.css | 56 ++- src/index.tsx | 2 + 40 files changed, 912 insertions(+), 237 deletions(-) create mode 100644 public/data/config/die2.png create mode 100644 public/data/config/goldnugget2.png create mode 100644 public/data/config/heart2.png create mode 100644 public/data/fonts/NoitaGlyphScaled.ttf create mode 100644 public/data/fonts/NoitaPixel.ttf create mode 100644 public/logo.png delete mode 100644 src/app/components/ResetButton.tsx create mode 100644 src/app/components/buttons/ExportButton.tsx rename src/app/components/{ => buttons}/RedoButton.tsx (67%) create mode 100644 src/app/components/buttons/ResetButton.tsx create mode 100644 src/app/components/buttons/SaveButton.tsx rename src/app/components/{ => buttons}/UndoButton.tsx (67%) create mode 100644 src/app/components/buttons/index.ts create mode 100644 src/app/components/generic/Button.tsx create mode 100644 src/app/components/generic/index.ts create mode 100644 src/fonts/NoitaGlyphScaled.ttf create mode 100644 src/fonts/NoitaPixel.ttf diff --git a/.gitignore b/.gitignore index 8879bc5..9485d45 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ # misc .DS_Store +**/.DS_Store .env.local .env.development.local .env.test.local diff --git a/public/data/config/die2.png b/public/data/config/die2.png new file mode 100644 index 0000000000000000000000000000000000000000..189f1dda69711be8e43ee39cb8276d10164ffdf1 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>2}q6bO!M_+ z&;qhK7?>D^7??pyfRLd*lYs@yW?)bQ(hLmD3m6fy3z*=tTnm^HY>-0DrPE#m4T;PQ zi71Ki^|4CM&(%vz$xlkvtH>jfNYSkzLEl1 zNlCV?QiN}Sf^&XRs)CuGfu4bq9hZWFf=y9MnpKdC8&o@xXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<0sc&GUZ)BtkRH0j3nOBlnp_^B%3^4>|j!SBBa#3bMNoIbY0?6FNr2Ntn zTO}osMQ{LdXGvxn!lt}psJDO~)CbAv8|oS8!_5Y2wE>A*`4?rT0&NDFZ)a!&R*518 zwZ}#uWI2*!AU*|)0=;U-Wup%dHajlKxQFb(kj(XTaSV}=Oip2F%DlYnuepH%gQ4Mp zR&H^LO`A4JNG5i9eJ(oKwM*TX?edA52}x=(YKqdlL5C~e+}Qa4(xpp0{`2ivPdDCB zXgI^ZF*2d)L|EgI3qO4n9FrJ$*RWO26<}DI$fDWQs%pl&fq|WYjn(t&k=BDTpg8n& L^>bP0l+XkKxTdgZ literal 0 HcmV?d00001 diff --git a/public/data/config/goldnugget2.png b/public/data/config/goldnugget2.png new file mode 100644 index 0000000000000000000000000000000000000000..53d3a1203300f759062972e7cc6322d399d7904b GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!Fir8jv*f2$tem9b+)U1^QSg3uFg@O!phj= zz>u26>Ju<4E#XCUgJ4~@F-zc~JKMFyPaWdpIC?TeMu4T~MdCS~w)=kTr{rjGGsVT; zV@`E!n6Zusf&klhz1Kag~wiWo~LPyzI`c%Ga{66txD+$@2V~mUk4lppVGs=oi+xFZH=u!qxS3j3^P6!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBC=rkv;hE;^%b*2hb1*P5 z3NbJPS&Tr)(4NV_0%kKX08Ih{<^_xh*#%5+S^fpg2sTKe=sd^Q;1t0|sHWgMtW^QUpqC!P(PF}H9g{=};g%ywu64qBz04piUwpEJo z4N!2-FG^J~(=*UBP_pAvP*AWbN=dT{a&d!d2l8x{GD=Dctn~HE%ggo3jrH=2()A53 zEiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`VEGWs$&r<-Io0ybeT4JlD1hNPY zAnr`9$VAwbR}A$Q(1ZFQ8GS=N1AT1TN;1=MXamVWw1NEvvCal$m{mY#MQTo@OJ;6r zUNO*Vc82CQU|TRG5bi|M7=cS8k_5U&=lq=fqTqtW8^Oa%rg zDA+*CF~p$iZS+B5iWJ6>2n34)W6+MvMjxIU?6@{mEPMw{fUTY`jv*SN$q5S>3=VxU zOKthrzR|JdZqHSTA}J@I1l7b`?Sn-+3UVIFEB0wLZ#gB*78e=4fl1+`dfeg7wYLfWIm2PxN6BKE%EVLo9RJGJziJJxJTkNEr4ka-iM zK(fFSwr~18c7{GYXNCP5lbPT61)OO76R|T((~mhpN_|agySuWDp5wFitGNF2bDjLQ zA)_roE^^1@jhQYx*gIK`9{itP{r~nJo&WdwxPR~0x%d44^1F5aFA57z5(`oDc=%uX zZUVE%B@SaX+Y>+ke|;HwV2_2X2HcXH3x8m~1FvejAi!Jzf1=);T3K0RUp@ Bf+_$2 literal 0 HcmV?d00001 diff --git a/public/data/fonts/NoitaGlyphScaled.ttf b/public/data/fonts/NoitaGlyphScaled.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f1651e6500be2e2d46747ce781d431c6643f2cae GIT binary patch literal 24256 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 x+wVo-)HrDLi^B%(ChW@)%PbnC684%ietSn24 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 literal 0 HcmV?d00001 diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..713ad50d798d8a35b3148d5deaf87cafa4afdd25 GIT binary patch literal 22246 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 urNwN%^w>z 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 o|EEIRV>4={8$AiKaOF$>|ByqX{UqGSVAL-~a#s literal 0 HcmV?d00001 diff --git a/src/app/components/MainHeader.tsx b/src/app/components/MainHeader.tsx index f7929ab..2a0e4c1 100644 --- a/src/app/components/MainHeader.tsx +++ b/src/app/components/MainHeader.tsx @@ -5,14 +5,15 @@ type Props = {}; const HeaderDiv = styled.div` display: flex; flex-direction: row; - color: #111; - background-color: #bbb; + color: #eee; + background-color: #000; justify-content: space-between; - - h2 { - font-weight: bold; - margin: 0 0 0 20px; - } + background-image: url(/logo.png); + background-size: contain; + background-repeat: no-repeat; + height: 38px; + image-rendering: pixelated; + margin: 8px; `; const SpacerDiv = styled.div` @@ -22,17 +23,15 @@ const SpacerDiv = styled.div` const ExtraDiv = styled.div` display: flex; - align-self: center; - width: 340px; + align-self: end; margin-right: 15px; `; -export function MainHeader(props: React.PropsWithChildren) { +export function MainHeader({ children }: React.PropsWithChildren) { return ( -

Noita Wand Simulator

- {props.children} + {children}
); } diff --git a/src/app/components/ResetButton.tsx b/src/app/components/ResetButton.tsx deleted file mode 100644 index 3af5500..0000000 --- a/src/app/components/ResetButton.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { useAppDispatch } from '../redux/hooks'; -import { setWand } from '../redux/wandSlice'; -import { defaultWand } from '../redux/presets'; - -type Props = {}; - -export function ResetButton(props: Props) { - const dispatch = useAppDispatch(); - const handleClick = () => { - dispatch(setWand({ wand: defaultWand, spells: [] })); - }; - return ( -
- -
- ); -} diff --git a/src/app/components/SectionHeader.tsx b/src/app/components/SectionHeader.tsx index a3a9cfa..bda1a69 100644 --- a/src/app/components/SectionHeader.tsx +++ b/src/app/components/SectionHeader.tsx @@ -3,35 +3,43 @@ import { ReactNode } from 'react'; const ParentDiv = styled.div` color: #111; - background-color: #999; display: flex; - justify-content: center; - position: relative; align-items: center; - border-top: 2px solid #bbb; - border-bottom: 2px solid #777; + border: none; + background-color: #0F0E0E; + padding: 0.9em 1em 0.4em 2em; `; const HeaderDiv = styled.div` font-weight: bold; - font-size: 18px; + font-size: 16px; + font-family: 'noita', '04b03', sans-serif; + font-variant-caps: small-caps; + font-weight: 600; + color: #929292; text-align: center; + margin-left: 1em; + margin-right: 1em; + background-color: #0F0E0E; + white-space: nowrap; `; -const ChildrenDiv = styled.div` - position: absolute; - right: 0; +const RightSideChildDiv = styled.div` font-size: 14px; + background-color: #333; + height: 2px; + width: 10%; `; -const ChildrenDiv2 = styled.div` - position: absolute; - left: 0; +const LeftSideChildDiv = styled.div` font-size: 14px; + background-color: #333; + height: 2px; + width: 80%; `; type SectionHeaderProps = { - title: string; + title: string | ReactNode; leftChildren?: ReactNode; rightChildren?: ReactNode; }; @@ -39,9 +47,9 @@ type SectionHeaderProps = { export default function SectionHeader(props: SectionHeaderProps) { return ( - {props?.leftChildren} + {props?.leftChildren} {props.title} - {props?.rightChildren} + {props?.rightChildren} ); } diff --git a/src/app/components/SpellSelector.tsx b/src/app/components/SpellSelector.tsx index c31bac3..4547282 100644 --- a/src/app/components/SpellSelector.tsx +++ b/src/app/components/SpellSelector.tsx @@ -8,18 +8,72 @@ import WandActionBorder from './wandAction/WandActionBorder'; import { useAppSelector } from '../redux/hooks'; import { ConfigState, selectConfig } from '../redux/configSlice'; import { Action } from '../calc/extra/types'; -import { ACTION_TYPES, constToDisplayString, groupBy } from '../util/util'; -import { Tabs } from './generic/Tabs'; +import { + ActionType, + ActionTypeId, + groupBy, + actionTypeToIdMap, + actionTypeInfoMap, + objectEntries, +} from '../util/util'; +import { Tabs } from './generic'; +import { + ExportButton, + LoadButton, + ResetButton, + UndoButton, + RedoButton, +} from './buttons'; const MainDiv = styled.div` display: flex; flex-direction: column; - width: 100%; + flex: 1 1; + background-color: #100e0e; `; const SpellCategorySpellsDiv = styled.div` - display: flex; + display: grid; flex-wrap: wrap; + flex: 1; + grid-template-columns: repeat(auto-fill, minmax(33px, 1fr)); + gap: 3px; + padding: 7px 6px; +`; + +const SpellSelectorWandActionBorder = styled(WandActionBorder)` + ${SpellCategorySpellsDiv}:hover && { + transform-origin: center; + transform: scale(150%); + transition: transform var(--anim-basic-in); + cursor: move; + pointer-events: none; + } +`; + +const SpellShortcuts = styled.div` + display: flex; + flex-direction: row; + justify-content: space-between; + align-self: center; + width: 100%; + background-color: black; +`; + +const EditButtons = styled.div` + display: flex; + flex-direction: row; + justify-content: space-between; + align-self: center; + background-color: black; +`; + +const SpellHotbar = styled.div` + display: flex; + flex-direction: row; + justify-content: space-between; + align-self: center; + background-color: black; `; const isSpellUnlocked = ( @@ -29,8 +83,6 @@ const isSpellUnlocked = ( return !spell.spawn_requires_flag || unlocks[spell.spawn_requires_flag]; }; -const categoryDisplayNames = ACTION_TYPES.map((c) => constToDisplayString(c)); - type WandActionSelectProps = { action: Action; size: number; @@ -38,9 +90,9 @@ type WandActionSelectProps = { const WandActionSelect = (props: WandActionSelectProps) => ( - + - + ); @@ -55,19 +107,37 @@ export function SpellSelector(props: Props) { ); const actionsByType = useMemo(() => { - if (config.showSpellsInCategories) { - return groupBy(unlockedActions, (a) => categoryDisplayNames[a.type]); - } else { - return { - 'All Spells': unlockedActions, - }; - } - }, [config.showSpellsInCategories, unlockedActions]); + return groupBy( + unlockedActions, + ({ type }) => actionTypeToIdMap.get(type as ActionTypeId) as ActionType, + ); + }, [unlockedActions]); - const tabs = useMemo(() => { - return Object.entries(actionsByType).map(([category, actions]) => { - return { - title: category, + const tabPerType = useMemo(() => { + return objectEntries(actionsByType) + .reverse() + .map(([actionType, actions]) => { + const actionTypeMapping = actionTypeInfoMap[actionType]; + + return { + title: actionTypeMapping?.name, + iconSrc: actionTypeMapping?.src, + content: ( + + {actions.map((a) => ( + + ))} + + ), + }; + }); + }, [actionsByType]); + + const allInOneTab = useMemo(() => { + return [ + { + title: 'All Spells', + iconSrc: '', content: ( {actions.map((a) => ( @@ -75,14 +145,32 @@ export function SpellSelector(props: Props) { ))} ), - }; - }); - }, [actionsByType]); + }, + ]; + }, []); + + const tabs = useMemo(() => { + if (config.showSpellsInCategories) { + return tabPerType; + } else { + return allInOneTab; + } + }, [allInOneTab, config.showSpellsInCategories, tabPerType]); return ( + + + + + + + + + + ); } diff --git a/src/app/components/WandBuilder.tsx b/src/app/components/WandBuilder.tsx index 6585dbc..9349ced 100644 --- a/src/app/components/WandBuilder.tsx +++ b/src/app/components/WandBuilder.tsx @@ -2,18 +2,18 @@ import { WandActionEditor } from './WandActionEditor'; import { WandStatsEditor } from './WandStatsEditor'; import styled from 'styled-components'; import SectionHeader from './SectionHeader'; -import { SaveImageButton } from './generic/SaveImageButton'; +import { SaveImageButton } from './generic'; import React, { useRef } from 'react'; const MainDiv = styled.div` display: flex; flex-direction: column; - background-color: #555; + background-color: #0f0e0e; `; const ContentDiv = styled.div` display: flex; flex-direction: row; - background-color: #555; + background-color: #0f0e0e; `; const WandActionEditorWrapper = styled.div` @@ -29,34 +29,34 @@ export function WandBuilder(props: Props) { return ( + + + + + + + Save image:    - (spells only) + spells only    - (both) + both } /> - - - - - - ); } diff --git a/src/app/components/WandSimulator.tsx b/src/app/components/WandSimulator.tsx index d02027a..1ba9dc3 100644 --- a/src/app/components/WandSimulator.tsx +++ b/src/app/components/WandSimulator.tsx @@ -1,20 +1,17 @@ import { WandBuilder } from './WandBuilder'; import { ShotResultList } from './shotResult/ShotResultList'; -import { WandPresetButton } from './presetMenu/WandPresetButton'; import { useAppDispatch, useAppSelector } from '../redux/hooks'; import { selectConfig } from '../redux/configSlice'; import { MainHeader } from './MainHeader'; +import SectionHeader from './SectionHeader'; import { SpellSelector } from './SpellSelector'; import { DndProvider } from 'react-dnd'; import { HTML5Backend } from 'react-dnd-html5-backend'; import styled from 'styled-components'; -import { ConfigButton } from './config/ConfigButton'; -import { ResetButton } from './ResetButton'; +import { ConfigButton } from './buttons'; import { useEffect } from 'react'; import { forceDisableCanvasSmoothing } from '../util/util'; import { CastConfigEditor } from './config/CastConfigEditor'; -import { UndoButton } from './UndoButton'; -import { RedoButton } from './RedoButton'; const Column = styled.div` display: flex; @@ -27,6 +24,7 @@ const Row = styled.div` justify-content: space-between; align-self: center; width: 100%; + background-color: black; `; type Props = {}; @@ -43,11 +41,7 @@ export function WandSimulator(props: Props) { - - - - @@ -55,10 +49,14 @@ export function WandSimulator(props: Props) { - + + Status: Running} + /> {!config.pauseCalculations && } ); diff --git a/src/app/components/WandStatsEditor.tsx b/src/app/components/WandStatsEditor.tsx index 0b189ea..78975e8 100644 --- a/src/app/components/WandStatsEditor.tsx +++ b/src/app/components/WandStatsEditor.tsx @@ -3,7 +3,7 @@ import { selectWand, setWand } from '../redux/wandSlice'; import { Wand } from '../types'; import styled from 'styled-components'; import { AppDispatch } from '../redux/store'; -import { EditableInteger } from './generic/EditableInteger'; +import { EditableInteger } from './generic'; import { numSign, round, TypedProperties } from '../util/util'; const CheckboxField = styled.input` diff --git a/src/app/components/buttons/ExportButton.tsx b/src/app/components/buttons/ExportButton.tsx new file mode 100644 index 0000000..00004f0 --- /dev/null +++ b/src/app/components/buttons/ExportButton.tsx @@ -0,0 +1,32 @@ +import { useAppDispatch } from '../../redux/hooks'; +import { useEffect } from 'react'; +import { Button } from '../generic'; + +type Props = {}; + +export function ExportButton(props: Props) { + const dispatch = useAppDispatch(); + + useEffect(() => { + const listener = (e: KeyboardEvent) => { + if ( + (e.ctrlKey || e.metaKey) && + !e.shiftKey && + e.key.toLowerCase() === 'e' + ) { + console.log('todo:exportAction'); + } + }; + window.addEventListener('keydown', listener); + return () => window.removeEventListener('keydown', listener); + }, [dispatch]); + + return ( + + ); +} diff --git a/src/app/components/RedoButton.tsx b/src/app/components/buttons/RedoButton.tsx similarity index 67% rename from src/app/components/RedoButton.tsx rename to src/app/components/buttons/RedoButton.tsx index b31fa8b..0e9aa9a 100644 --- a/src/app/components/RedoButton.tsx +++ b/src/app/components/buttons/RedoButton.tsx @@ -1,6 +1,7 @@ -import { useAppDispatch } from '../redux/hooks'; +import { useAppDispatch } from '../../redux/hooks'; import { useEffect } from 'react'; import { ActionCreators } from 'redux-undo'; +import { Button } from '../generic'; type Props = {}; @@ -18,8 +19,11 @@ export function RedoButton(props: Props) { }, [dispatch]); return ( -
- -
+ ); } diff --git a/src/app/components/buttons/ResetButton.tsx b/src/app/components/buttons/ResetButton.tsx new file mode 100644 index 0000000..13f62f4 --- /dev/null +++ b/src/app/components/buttons/ResetButton.tsx @@ -0,0 +1,21 @@ +import { useAppDispatch } from '../../redux/hooks'; +import { setWand } from '../../redux/wandSlice'; +import { defaultWand } from '../../redux/presets'; +import { Button } from '../generic'; + +type Props = {}; + +export function ResetButton(props: Props) { + const dispatch = useAppDispatch(); + const handleClick = () => { + dispatch(setWand({ wand: defaultWand, spells: [] })); + }; + return ( + + ); +} diff --git a/src/app/components/buttons/SaveButton.tsx b/src/app/components/buttons/SaveButton.tsx new file mode 100644 index 0000000..745e9af --- /dev/null +++ b/src/app/components/buttons/SaveButton.tsx @@ -0,0 +1,32 @@ +import { useAppDispatch } from '../../redux/hooks'; +import { useEffect } from 'react'; +import { Button } from '../generic'; + +type Props = {}; + +export function SaveButton(props: Props) { + const dispatch = useAppDispatch(); + + useEffect(() => { + const listener = (e: KeyboardEvent) => { + if ( + (e.ctrlKey || e.metaKey) && + !e.shiftKey && + e.key.toLowerCase() === 's' + ) { + console.log('todo:saveAction'); + } + }; + window.addEventListener('keydown', listener); + return () => window.removeEventListener('keydown', listener); + }, [dispatch]); + + return ( + + ); +} diff --git a/src/app/components/UndoButton.tsx b/src/app/components/buttons/UndoButton.tsx similarity index 67% rename from src/app/components/UndoButton.tsx rename to src/app/components/buttons/UndoButton.tsx index f887f21..32bee34 100644 --- a/src/app/components/UndoButton.tsx +++ b/src/app/components/buttons/UndoButton.tsx @@ -1,6 +1,7 @@ -import { useAppDispatch } from '../redux/hooks'; +import { useAppDispatch } from '../../redux/hooks'; import { useEffect } from 'react'; import { ActionCreators } from 'redux-undo'; +import { Button } from '../generic'; type Props = {}; @@ -18,8 +19,11 @@ export function UndoButton(props: Props) { }, [dispatch]); return ( -
- -
+ ); } diff --git a/src/app/components/buttons/index.ts b/src/app/components/buttons/index.ts new file mode 100644 index 0000000..9657a78 --- /dev/null +++ b/src/app/components/buttons/index.ts @@ -0,0 +1,7 @@ +export { ConfigButton } from '../config/ConfigButton'; +export { ExportButton } from './ExportButton'; +export { WandPresetButton as LoadButton } from '../presetMenu/WandPresetButton'; +export { RedoButton } from './RedoButton'; +export { ResetButton } from './ResetButton'; +export { SaveButton } from './SaveButton'; +export { UndoButton } from './UndoButton'; diff --git a/src/app/components/config/CastConfigEditor.tsx b/src/app/components/config/CastConfigEditor.tsx index 5bc6cb0..2501268 100644 --- a/src/app/components/config/CastConfigEditor.tsx +++ b/src/app/components/config/CastConfigEditor.tsx @@ -9,33 +9,175 @@ import SectionHeader from '../SectionHeader'; const MainDiv = styled.div` display: flex; flex-direction: row; + flex-wrap: wrap; + align-items: stretch; + padding: 1px; + + @media screen and (max-width: 400px) { + } `; -const SubSectionDiv = styled.div` +const SubSectionDiv = styled.div<{}>` display: flex; - flex-direction: row; - margin: 0 3px; - border: 2px solid #111; + flex: 1 0 48%; + flex-wrap: wrap; + justify-content: start; + align-items: stretch; + margin: 0px; + min-height: 2.3em; + border: 2px solid #232323; + background-color: #111; + background-color: #111; + border-top-color: var(--config-topleft-border); + border-left-color: var(--config-topleft-border); + border-bottom-color: var(--config-bottomright-border); + border-right-color: var(--config-bottomright-border); `; -const SubSectionTitle = styled.div` - background-color: #555; +const SubSectionTitle = styled.div<{ + minWidth?: string; +}>` + display: flex; + align-items: center; + background-color: #000; color: #eee; - padding: 2px 5px 1px 5px; + padding: 2px 6px 2px 4px; + font-family: 'noita', '04b03', sans-serif; + font-size: 14px; + ${({ minWidth }) => `min-width: ${minWidth ?? '6em'};`} + justify-content: space-evenly; + + span { + padding-top: 2px; + } +`; + +const SubSectionContent = styled.div<{ + wrapq?: boolean; + maxWidth?: string; +}>` + ${({ wrapq = false }) => (wrapq ? 'flex-wrap: wrap;' : '')} + display: flex; + align-items: center; + background-color: #000; + margin-right: 4px; + flex: 1 1; + width: 100%; + ${({ maxWidth }) => (maxWidth ? `max-width: ${maxWidth};` : '')} + gap: 0.2em; +`; + +const CheckboxWrapper = styled.div` + display: flex; + align-items: center; + align-self: center; + flex-wrap: nowrap; + flex: 0 1 auto; + background-color: #222; + border: var(--input-border); + border-radius: var(--input-border-radius); + margin: 0; + padding: 3px 3px 3px 2px; + cursor: pointer; + + span { + align-self: center; + margin: 0 0 0 5px; + padding-top: 2px; + } `; const InputWrapper = styled.label` display: flex; - flex-direction: row; align-items: center; color: #eee; background-color: #111; padding: 1px 1px 1px 3px; + flex: 1 1 auto; + + input[type='text'], + input[type='number'] { + margin: 0 1px 0 5px; + min-width: 4em; + max-width: 100%; + width: 100%; + flex: 1 1 100%; + background-color: #222; + border: var(--input-border); + border-radius: var(--input-border-radius); + font-family: 'noita', '04b03', sans-serif; + font-size: 14px; + color: #fff; + text-align: center; + padding: 5px 0 3px 0; + } + + input[type='text']:focus-visible, + input[type='number']:focus-visible { + border: 2px solid #c89e3adb; + outline: 1px solid #bf8d10cf; + border: 2px solid #d0ba43; + outline: 1px solid #dea71bcf; + background-color: #000; + outline-style: dashed; + border-style: inset; + } + + input[type='checkbox'] { + margin: 0 6px 0 5px; + } + + font-family: 'noita', '04b03', sans-serif; + font-size: 14px; +`; + +const CheckboxInputWrapper = styled(InputWrapper)` + flex: 0; +`; + +const RandomInputWrapper = styled(InputWrapper)` + flex: 1 1 46%; + justify-content: space-evenly; + width: 100%; - input { - margin-left: 2px; - max-width: 40px; + input[type='text'] { + min-width: 4em; } + span { + min-width: 3.5em; + text-align: right; + } +`; + +const SimPaused = styled.span` + display: inline-block; + width: 4em; + padding-left: 4px; + font-style: italic; +`; +const SimRunning = styled.span` + display: inline-block; + width: 4em; + padding-left: 4px; +`; + +const InputImageLabel = styled.div<{ + size: number; + imgUrl: string; + leftMargin?: string; +}>` + position: relative; + background-color: #111; + min-width: ${({ size }) => size}px; + width: ${({ size }) => size}px; + height: ${({ size }) => size}px; + background-image: url(/${({ imgUrl }) => imgUrl}); + background-size: cover; + font-family: monospace; + font-weight: bold; + user-select: none; + image-rendering: pixelated; + margin: 0 4px 0 ${({ leftMargin }) => (leftMargin ? leftMargin : '2px')}; `; type Props = {}; @@ -74,92 +216,188 @@ export function CastConfigEditor(props: Props) { ); }; - const handlePauseChange = (e: ChangeEvent) => { - dispatch( - updateConfig({ - pauseCalculations: e.target.checked, - }), - ); - }; + const numberChangeHandler = + (field: keyof typeof config) => (e: ChangeEvent) => { + const newValue = Number.parseInt(e.target.value); + if (!Number.isInteger(newValue)) { + return; + } + dispatch( + updateConfig({ + [field]: Number.parseInt(e.target.value), + }), + ); + }; + + const handleConfigToggle = + (field: keyof typeof config) => (e: ChangeEvent) => { + dispatch( + updateConfig({ + [field]: e.target.checked, + }), + ); + }; const actionSize = 24; return ( <> - + - Requirements - - - - - - - - - - - - - - - - + + + Health: + + + + + + + + + + + + {/* */} + {/* / */} + {/* */} + {/* */} + - RNG - - World Seed - - - - Frame # - - + + + Money: + + + + + + + + + + + + - Calculation - - Pause - + - + + + + Seed: + + + + Frame: + + + + + + + Requirements: + + + + + + + + + + + + + + + + + + + + {/* */} + {/* Simulation: {config.pauseCalculations ? Paused : Running} */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} ); diff --git a/src/app/components/config/ConfigButton.tsx b/src/app/components/config/ConfigButton.tsx index 4ef07bc..26c2bb1 100644 --- a/src/app/components/config/ConfigButton.tsx +++ b/src/app/components/config/ConfigButton.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Modal } from '../generic/Modal'; +import { Button, Modal } from '../generic'; import { ConfigEditor } from './ConfigEditor'; type Props = {}; @@ -13,9 +13,12 @@ export function ConfigButton(props: Props) { return (
- + diff --git a/src/app/components/generic/Button.tsx b/src/app/components/generic/Button.tsx new file mode 100644 index 0000000..3346613 --- /dev/null +++ b/src/app/components/generic/Button.tsx @@ -0,0 +1,58 @@ +import styled from 'styled-components'; + +const StyledButton = styled.button<{ + imgUrl: string; +}>` + border: 1px solid var(--color-button-border); + border-radius: 5px; + background-image: url(/${({ imgUrl }) => imgUrl}); + background-position: 0.6em 50%; + background-origin: padding-box; + background-size: 1em; + background-repeat: no-repeat; + background-color: var(--color-button-background); + image-rendering: pixelated; + font-family: 'noita', '04b03', sans-serif; + font-variant: small-caps; + font-size: 16px; + color: var(--color-button); + padding: 0.5em 0.6em 0.3em 2.2em; + margin: 3px; + cursor: pointer; + + & { + transition: var(--transition-hover-out); + transition-property: border-color, color; + } + + &:hover { + color: var(--color-button-hover); + border-color: var(--color-button-border-hover); + transition: var(--transition-hover-in); + transition-property: border-color, color; + } + + &:active { + color: var(--color-button-active); + border-color: var(--color-button-border-active); + transition: var(--transition-activate); + transition-property: border-color, color; + } +`; + +type Props = { + onClick?: () => void; + imgUrl?: string; +}; + +export const Button = ({ + onClick = () => {}, + imgUrl = '', + children, +}: React.PropsWithChildren) => { + return ( + + {children} + + ); +}; diff --git a/src/app/components/generic/Modal.tsx b/src/app/components/generic/Modal.tsx index 32eebd6..bd81b13 100644 --- a/src/app/components/generic/Modal.tsx +++ b/src/app/components/generic/Modal.tsx @@ -3,7 +3,7 @@ import styled from 'styled-components'; import { CloseButton } from './CloseButton'; const BackgroundDiv = styled.div` - z-index: 1; + z-index: var(--zindex-modal-window); position: fixed; top: 0; left: 0; diff --git a/src/app/components/generic/ProcessingModal.tsx b/src/app/components/generic/ProcessingModal.tsx index c7384d5..9e616a0 100644 --- a/src/app/components/generic/ProcessingModal.tsx +++ b/src/app/components/generic/ProcessingModal.tsx @@ -2,7 +2,7 @@ import React from 'react'; import styled from 'styled-components'; const BackgroundDiv = styled.div` - z-index: 1; + z-index: var(--zindex-modal-window); position: fixed; top: 0; left: 0; diff --git a/src/app/components/generic/Tabs.tsx b/src/app/components/generic/Tabs.tsx index 4b37b88..aeebc37 100644 --- a/src/app/components/generic/Tabs.tsx +++ b/src/app/components/generic/Tabs.tsx @@ -1,32 +1,79 @@ import React, { useEffect, useState } from 'react'; import styled from 'styled-components'; -const MainDiv = styled.div``; +const MainDiv = styled.div` + background-color: black; + padding: 3px; +`; const TabTitlesDiv = styled.div` display: flex; - flex-direction: row; - //justify-content: space-around; - //border-bottom: 2px solid #555; + flex-direction: row-reverse; + flex-wrap: wrap-reverse; + justify-content: start; + background-color: black; + margin-right: 10px; + padding: 0 10px; `; -const TitleDiv = styled.div` +const TitleDiv = styled.div<{ + selected: boolean; +}>` display: flex; - user-select: none; - background-color: #333; - border: 2px solid #111; - color: #ccc; - border-bottom: none; - padding: 0 5px; - cursor: pointer; + flex: 1 1; justify-content: center; - margin: 0 5px; + user-select: none; + background-color: #100e0e; + height: 1.6em; + align-items: center; + font-family: var(--font-family-noita-default); + border-radius: 7px 7px 0 0; + font-size: 14px; + max-width: 8em; + min-width: fit-content; + border-block-end-style: hidden; + + @media screen and (max-width: 720px) { + font-size: 14px; + } + + ${({ selected }) => + selected + ? ` + border: 2px solid var(--color-tab-border-active); + border-bottom: 0px none; + color: var(--color-tab-active); + padding: 8px 10px 6px 10px; + margin: 0 0 -2px -2px; + cursor: default; + z-index: var(--zindex-tabs-selected); + + &:hover { + } + ` + : ` + border: 2px solid var(--color-tab-border-inactive); + border-bottom: 0px none; + color: var(--color-tab-inactive); + padding: 5px 10px 2px 10px; + margin: 0 0 0 -2px; + cursor: pointer; + transition: var(--transition-hover-out); + transition-property: border-color, color; + + &:hover { + transition: var(--transition-hover-in); + transition-property: border-color, color; + border-color: var(--tabs-hover-color); + color: var(--color-tab-border-inactive-hover); + } + `} `; const ContentDiv = styled.div` - display: flex; - width: 100%; - background-color: #333; + background-color: #100e0e; + border: 2px solid #918167; + border-radius: 2px 6px; `; export type Tab = { @@ -59,7 +106,11 @@ export function Tabs(props: React.PropsWithChildren) { {tabs.map((t, index) => ( - setSelectedTabIndex(index)} key={t.title}> + setSelectedTabIndex(index)} + key={t.title} + > {t.title} ))} diff --git a/src/app/components/generic/index.ts b/src/app/components/generic/index.ts new file mode 100644 index 0000000..4bd9cb0 --- /dev/null +++ b/src/app/components/generic/index.ts @@ -0,0 +1,7 @@ +export { Button } from './Button'; +export { EditableInteger } from './EditableInteger'; +export { Modal } from './Modal'; +// export { ProcessingModal } from './ProcessingModal'; +export { SaveImageButton } from './SaveImageButton'; +export { ScrollWrapper } from './ScrollWrapper'; +export { Tabs } from './Tabs'; diff --git a/src/app/components/presetMenu/WandPresetButton.tsx b/src/app/components/presetMenu/WandPresetButton.tsx index 9f9f9df..5dc5f93 100644 --- a/src/app/components/presetMenu/WandPresetButton.tsx +++ b/src/app/components/presetMenu/WandPresetButton.tsx @@ -4,7 +4,7 @@ import { Preset } from '../../types'; import { setWand } from '../../redux/wandSlice'; import React, { useCallback, useState } from 'react'; import { WandPresetMenu } from './WandPresetMenu'; -import { Modal } from '../generic/Modal'; +import { Button, Modal } from '../generic'; type Props = {}; @@ -28,7 +28,12 @@ export function WandPresetButton(props: Props) { return (
- + diff --git a/src/app/components/shotResult/ProjectileCastState.tsx b/src/app/components/shotResult/ProjectileCastState.tsx index 5516f0d..446d35e 100644 --- a/src/app/components/shotResult/ProjectileCastState.tsx +++ b/src/app/components/shotResult/ProjectileCastState.tsx @@ -250,7 +250,7 @@ export function ProjectileCastState(props: Props) { return ( {fields.map(({ field, displayName, render }) => { - if (castState[field] == defaultGunActionState[field]) { + if (castState[field] === defaultGunActionState[field]) { return null; } return ( diff --git a/src/app/components/shotResult/ShotResultList.tsx b/src/app/components/shotResult/ShotResultList.tsx index 91eaea3..ea2f456 100644 --- a/src/app/components/shotResult/ShotResultList.tsx +++ b/src/app/components/shotResult/ShotResultList.tsx @@ -13,9 +13,8 @@ import { ActionTreeShotResult } from './ActionTreeShotResult'; import { condenseActionsAndProjectiles } from '../../calc/eval/condense'; import { ActionSource } from '../../calc/eval/types'; import { ShotMetadata } from './ShotMetadata'; -import { SaveImageButton } from '../generic/SaveImageButton'; +import { SaveImageButton, ScrollWrapper } from '../generic'; import { IterationLimitWarning } from './IterationLimitWarning'; -import { ScrollWrapper } from '../generic/ScrollWrapper'; import { GREEK_SPELLS } from '../../calc/eval/lookups'; const ParentDiv = styled.div` @@ -38,6 +37,7 @@ const StyledHr = styled.hr` `; type Props = { + pauseCalculations: boolean; condenseShots: boolean; unlimitedSpells: boolean; infiniteSpells: boolean; diff --git a/src/app/components/wandAction/WandAction.tsx b/src/app/components/wandAction/WandAction.tsx index 407d172..417b146 100644 --- a/src/app/components/wandAction/WandAction.tsx +++ b/src/app/components/wandAction/WandAction.tsx @@ -17,10 +17,10 @@ const ImageBackgroundDiv = styled.div<{ }>` position: relative; background-color: #111; - min-width: ${(props) => props.size}px; - width: ${(props) => props.size}px; - height: ${(props) => props.size}px; - background-image: url(${(props) => props.imgUrl}); + min-width: ${({ size }) => size}px; + width: ${({ size }) => size}px; + height: ${({ size }) => size}px; + background-image: url(/${({ imgUrl }) => imgUrl}); background-size: cover; font-family: monospace; font-weight: bold; diff --git a/src/app/components/wandAction/WandActionDragSource.tsx b/src/app/components/wandAction/WandActionDragSource.tsx index 87be894..f3791be 100644 --- a/src/app/components/wandAction/WandActionDragSource.tsx +++ b/src/app/components/wandAction/WandActionDragSource.tsx @@ -3,7 +3,18 @@ import { useDrag } from 'react-dnd'; import styled from 'styled-components'; const StyledDiv = styled.div<{ isDragging: boolean }>` - opacity: ${(props) => (props.isDragging ? 0.3 : 1)}; + opacity: ${({isDragging}) => (isDragging ? 0.3 : 1)}; + flex: 1 1; + max-width: max-content; + max-width: fit-content; + min-width: min-content; + + ${({isDragging}) => (isDragging ? ` + `: ` + &&:hover > div > div { + z-index: 1000; + } + `)} `; type Props = { diff --git a/src/app/components/wandAction/WandActionGroup.tsx b/src/app/components/wandAction/WandActionGroup.tsx index 63dcc27..14da5ed 100644 --- a/src/app/components/wandAction/WandActionGroup.tsx +++ b/src/app/components/wandAction/WandActionGroup.tsx @@ -37,7 +37,7 @@ const CountDiv = styled.div<{ flex: 1 1 auto; justify-content: center; color: white; - background-color: green; + background-color: black; height: ${(props) => props.size / 3}px; font-family: monospace; font-weight: bold; diff --git a/src/app/components/wandAction/annotations/ActionProxyAnnotation.tsx b/src/app/components/wandAction/annotations/ActionProxyAnnotation.tsx index cc65b92..52c3d69 100644 --- a/src/app/components/wandAction/annotations/ActionProxyAnnotation.tsx +++ b/src/app/components/wandAction/annotations/ActionProxyAnnotation.tsx @@ -10,10 +10,10 @@ const ProxyDiv = styled.div<{ position: absolute; top: 0; left: 0; - width: ${(props) => props.size / 3}px; - height: ${(props) => props.size / 3}px; + width: ${({ size }) => size / 3}px; + height: ${({ size }) => size / 3}px; border: 1px solid #999; - background-image: url(${(props) => props.imgUrl}); + background-image: url(/${({ imgUrl }) => imgUrl}); background-size: cover; background-color: #111; `; diff --git a/src/app/redux/configSlice.ts b/src/app/redux/configSlice.ts index cf872f1..cb10ff1 100644 --- a/src/app/redux/configSlice.ts +++ b/src/app/redux/configSlice.ts @@ -9,6 +9,8 @@ export interface ConfigState { condenseShots: boolean; unlimitedSpells: boolean; infiniteSpells: boolean; + infiniteMoney: boolean; + infiniteHp: boolean; showDivides: boolean; showGreekSpells: boolean; showDirectActionCalls: boolean; @@ -24,6 +26,9 @@ export interface ConfigState { unlocks: { [key: string]: boolean; }; + var_money: number; + var_hp: number; + var_hp_max: number; requirements: { enemies: boolean; projectiles: boolean; @@ -44,6 +49,8 @@ export const initialState: ConfigState = { condenseShots: true, unlimitedSpells: true, infiniteSpells: false, + infiniteMoney: true, + infiniteHp: true, showDivides: true, showGreekSpells: true, showDirectActionCalls: true, @@ -88,6 +95,9 @@ export const initialState: ConfigState = { card_unlocked_paint: false, card_unlocked_rainbow_trail: false, }, + var_money: 10000, + var_hp: 100, + var_hp_max: 100, requirements: { enemies: false, projectiles: false, diff --git a/src/app/util/util.ts b/src/app/util/util.ts index 768bfe7..7e5cbce 100644 --- a/src/app/util/util.ts +++ b/src/app/util/util.ts @@ -1,4 +1,5 @@ import { Preset, PresetGroup } from '../types'; +import * as GunEnumActionTypes from '../calc/gun_enums'; export function union(setA: Set, setB: Set) { let _union = new Set(setA); @@ -65,16 +66,80 @@ export const lazy = (callback: () => T) => { }; }; -export const ACTION_TYPES = [ - 'PROJECTILE', - 'STATIC_PROJECTILE', - 'MODIFIER', - 'DRAW_MANY', - 'MATERIAL', - 'OTHER', - 'UTILITY', - 'PASSIVE', -]; +const ActionTypeInfoMapDefinition = { + projectile: { + id: GunEnumActionTypes.ACTION_TYPE_PROJECTILE, + name: 'Projectile', + src: 'data/spelltypes/item_bg_projectile.png', + } as const, + static: { + id: GunEnumActionTypes.ACTION_TYPE_STATIC_PROJECTILE, + name: 'Static', + src: 'data/spelltypes/item_bg_static_projectile.png', + } as const, + modifier: { + id: GunEnumActionTypes.ACTION_TYPE_MODIFIER, + name: 'Modifier', + src: 'data/spelltypes/item_bg_modifier.png', + } as const, + multicast: { + id: GunEnumActionTypes.ACTION_TYPE_DRAW_MANY, + name: 'Multicast', + src: 'data/spelltypes/item_bg_draw_many.png', + } as const, + material: { + id: GunEnumActionTypes.ACTION_TYPE_MATERIAL, + name: 'Material', + src: 'data/spelltypes/item_bg_material.png', + } as const, + other: { + id: GunEnumActionTypes.ACTION_TYPE_OTHER, + name: 'Other', + src: 'data/spelltypes/item_bg_other.png', + } as const, + utility: { + id: GunEnumActionTypes.ACTION_TYPE_UTILITY, + name: 'Utility', + src: 'data/spelltypes/item_bg_utility.png', + } as const, + passive: { + id: GunEnumActionTypes.ACTION_TYPE_PASSIVE, + name: 'Passive', + src: 'data/spelltypes/item_bg_passive.png', + } as const, +} as const; + +export type ActionType = keyof typeof ActionTypeInfoMapDefinition; +export type ActionTypeInfo = typeof ActionTypeInfoMapDefinition[ActionType]; +export type ActionTypeInfoKey = + keyof typeof ActionTypeInfoMapDefinition[ActionType]; +export type ActionTypeId = typeof ActionTypeInfoMapDefinition[ActionType]['id']; +export type ActionTypeName = + typeof ActionTypeInfoMapDefinition[ActionType]['name']; +export type ActionTypeSrc = + typeof ActionTypeInfoMapDefinition[ActionType]['src']; + +export type ActionTypeInfoMap = Record; +export type ActionIdToTypeMap = Map; + +export const objectKeys = (obj: T): (keyof T)[] => + Object.keys(obj) as (keyof T)[]; +export type Entries = { [K in keyof T]: [K, T[K]] }[keyof T]; +export const objectEntries = (obj: T): Entries[] => + Object.entries(obj) as Entries[]; + +export const actionTypeToIdMap = objectEntries( + ActionTypeInfoMapDefinition, +).reduce( + ( + acc: ActionIdToTypeMap, + [actionType, actionTypeInfo]: [ActionType, ActionTypeInfo], + ): ActionIdToTypeMap => acc.set(actionTypeInfo.id, actionType), + new Map(), +); + +export const actionTypeInfoMap = + ActionTypeInfoMapDefinition as ActionTypeInfoMap; export function groupBy(arr: T[], keyFn: (x: T) => K) { return arr.reduce((acc, cur) => { diff --git a/src/fonts/NoitaGlyphScaled.ttf b/src/fonts/NoitaGlyphScaled.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f1651e6500be2e2d46747ce781d431c6643f2cae GIT binary patch literal 24256 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 x+wVo-)HrDLi^B%(ChW@)%PbnC684%ietSn24 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 literal 0 HcmV?d00001 diff --git a/src/index.css b/src/index.css index a9ba307..d1b1ce1 100644 --- a/src/index.css +++ b/src/index.css @@ -1,14 +1,62 @@ +@font-face { + font-family: 'noita'; + src: url('fonts/NoitaPixel.ttf') format('truetype'); + font-display: swap; +} + +@font-face { + font-family: 'glyphs'; + src: url('fonts/NoitaGlyphScaled.ttf') format('truetype'); + font-display: swap; +} + body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - background-color: #666666; + background-color: #000; + color: #eee; + + --input-border: 2px solid #555; + --input-border-radius: 0 2px 0 2px; + + --config-topleft-border: #323232; + --config-bottomright-border: #616060; + + --color-tab-active: #eee; + --color-tab-inactive: #918f96; + --color-tab-inactive-hover: #c7c7c7; + --color-tab-border-active: #918167; + --color-tab-border-inactive: #686358; + --color-tab-border-inactive-hover: #c7c7c7; + + --color-button: #c7c7c7; + --color-button-hover: #c7c7c7; + --color-button-active: #eee; + --color-button-disabled: #5b5b66; + --color-button-border: #333; + --color-button-border-hover: #aaa; + /* --color-button-background: rgba(0, 0, 0, 0.5); */ + --color-button-background: rgba(0, 0, 0, 1); + + --font-family-noita-default: 'noita', sans-serif; + --font-family-noita-glyphs: 'glyphs', sans-serif; + + --zindex-tabs-hover: 90; + --zindex-tabs-selected: 100; + --zindex-modal-window: 1000; + + --anim-basic-in: all 20ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + --transition-hover-in: none 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + + --transition-hover-out: none 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + --transition-activate: none 30ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; } code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; + monospace; } diff --git a/src/index.tsx b/src/index.tsx index 912357f..ca40e2d 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,6 +1,8 @@ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; +import './fonts/NoitaPixel.ttf'; +import './fonts/NoitaGlyphScaled.ttf'; import App from './app/App'; import reportWebVitals from './reportWebVitals'; From 68f5f9d333a91a6b3b85fb496ef55a9738ede302 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Wed, 28 Jun 2023 02:48:20 +0100 Subject: [PATCH 08/30] Changes to support additional params in wiki wand template format --- src/app/redux/presets.ts | 5 ++- src/app/redux/util.ts | 84 +++++++++++++++++++++++++++++--------- src/app/redux/wandSlice.ts | 7 +++- src/app/types.ts | 3 ++ 4 files changed, 77 insertions(+), 22 deletions(-) diff --git a/src/app/redux/presets.ts b/src/app/redux/presets.ts index 272f063..35a9171 100644 --- a/src/app/redux/presets.ts +++ b/src/app/redux/presets.ts @@ -9,7 +9,10 @@ export const defaultWand: Wand = { mana_charge_speed: 20000, mana_max: 20000, spread: 0, -}; + name: '', + pic: '', + speed: 1, +} as const; const defaultPresets = [ { diff --git a/src/app/redux/util.ts b/src/app/redux/util.ts index d683e8f..60baaa2 100644 --- a/src/app/redux/util.ts +++ b/src/app/redux/util.ts @@ -1,7 +1,14 @@ import { WandState } from './wandSlice'; -import { fixArraySize, trimArray } from '../util/util'; +import { Wand } from '../types'; +import { trimArray } from '../util/util'; import { defaultWand } from './presets'; +const decodeQueryParam = (p: string) => { + return decodeURIComponent(p.replace(/\+/g, ' ')); +}; + +const encodeQueryParam = (p: string) => encodeURIComponent(p); + export function generateSearchFromWandState(state: WandState) { const simplifiedState = { ...state, @@ -9,31 +16,68 @@ export function generateSearchFromWandState(state: WandState) { }; const params = new URLSearchParams(); Object.entries(simplifiedState.wand).forEach(([k, v]) => { - params.append(k, v.toString()); + if (typeof v === typeof true) { + params.append(k, encodeQueryParam(Number(v).toString())); + } + params.append(k, encodeQueryParam(v.toString())); }); return ( '?' + params.toString() + '&spells=' + simplifiedState.spells.join(',') ); } -export function generateWandStateFromSearch(search: string) { +export interface ParsedWandState { + wand: Wand; + spells: (string | null)[]; + messages: string[]; +} + +type Entries = { + [K in keyof T]: [K, T[K]]; +}[keyof T][]; + +const getEntries = (obj: T) => + Object.entries(obj) as Entries; + +export function generateWandStateFromSearch(search: string): ParsedWandState { const params = new URLSearchParams(search); - const result = [...params.entries()].reduce((acc, [k, v]) => { - if (k === 'spells') { - acc.spells = trimArray( - v.split(',').map((s) => (s.length === 0 ? null : s)), - (s) => !s, - ); - } else if (defaultWand.hasOwnProperty(k)) { - if (!acc.wand) { - acc.wand = {}; + + return getEntries(defaultWand).reduce( + (acc: ParsedWandState, [key]) => { + if (params.has(key)) { + const param = params.get(key as string); + try { + const decodedParam = decodeQueryParam(param!); + if (decodedParam.length > 0) { + try { + acc.wand = { ...acc.wand, [key]: decodedParam }; + } catch (e) { + acc.messages.push( + `Could not parse param: '${key}' with value: '${param}', error: ${e}`, + ); + } + } else { + acc.messages.push(`Decoded empty param: '${key}', using default`); + } + } catch (e) { + acc.messages.push( + `Could not decode param: '${key}' with value: '${param}', using default, error: ${e}`, + ); + } + } else { + acc.messages.push(`Could not find param: '${key}', using default`); } - acc.wand[k] = JSON.parse(v); - } - return acc; - }, {} as any) as WandState; - if (result.wand && result.wand.deck_capacity) { - result.spells = fixArraySize(result.spells, result.wand.deck_capacity); - } - return result; + return acc; + }, + { + wand: { ...defaultWand } as Wand, + spells: trimArray( + (params.get('spells') ?? '') + .split(',') + .map((s) => (s.length === 0 ? null : s)), + (s) => !s, + ), + messages: [], + } as ParsedWandState, + ); } diff --git a/src/app/redux/wandSlice.ts b/src/app/redux/wandSlice.ts index abbc100..e2cd38a 100644 --- a/src/app/redux/wandSlice.ts +++ b/src/app/redux/wandSlice.ts @@ -8,16 +8,21 @@ import { fixArraySize } from '../util/util'; export interface WandState { wand: Wand; spells: (string | null)[]; + messages: string[]; } const stateFromUrl = generateWandStateFromSearch(window.location.search); +// TODO these could be surfaced in the UI for debugging wand urls +console.debug(stateFromUrl.messages); + const initialState: WandState = { wand: { ...defaultWand, ...stateFromUrl.wand, }, - spells: stateFromUrl.spells || Array(defaultWand.deck_capacity).fill(null), + spells: fixArraySize(stateFromUrl.spells, stateFromUrl.wand.deck_capacity ?? defaultWand.deck_capacity), + messages: stateFromUrl.messages || [], }; export const wandSlice = createSlice({ diff --git a/src/app/types.ts b/src/app/types.ts index a8601f5..f3e681e 100644 --- a/src/app/types.ts +++ b/src/app/types.ts @@ -6,6 +6,9 @@ export type Wand = Gun & { mana_max: number; mana_charge_speed: number; spread: number; + name: string; + pic: string; + speed: number; }; export type Preset = { From f36c9b380203bef2cde1329f68fe299d783fd257 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 29 Jun 2023 04:03:52 +0100 Subject: [PATCH 09/30] Styling wand stats, add logo --- public/logo.png | Bin 22246 -> 0 bytes public/logo/_logo-noita-left.png | Bin 0 -> 14805 bytes public/logo/_logo-noita-right.png | Bin 0 -> 14766 bytes public/logo/_logo-square.png | Bin 0 -> 14752 bytes public/logo/_logo.png | Bin 0 -> 14805 bytes public/logo/logo-blue.png | Bin 0 -> 19839 bytes public/logo/logo-green.png | Bin 0 -> 19967 bytes public/logo/logo-orange.png | Bin 0 -> 19919 bytes public/logo/logo-purple.png | Bin 0 -> 19895 bytes public/logo/logo-red.png | Bin 0 -> 19891 bytes public/logo/logo-teal.png | Bin 0 -> 19838 bytes public/logo/logo-yellow.png | Bin 0 -> 19821 bytes public/logo/logo.png | Bin 0 -> 19895 bytes src/app/calc/extra/random.ts | 4 +- src/app/components/MainHeader.tsx | 6 +- src/app/components/WandSimulator.tsx | 2 +- src/app/components/WandStatsEditor.tsx | 62 +++++++++++++----- .../components/config/CastConfigEditor.tsx | 22 +++---- .../components/generic/EditableInteger.tsx | 23 +++++-- .../components/shotResult/ShotResultList.tsx | 1 - 20 files changed, 82 insertions(+), 38 deletions(-) delete mode 100644 public/logo.png create mode 100644 public/logo/_logo-noita-left.png create mode 100644 public/logo/_logo-noita-right.png create mode 100644 public/logo/_logo-square.png create mode 100644 public/logo/_logo.png create mode 100644 public/logo/logo-blue.png create mode 100644 public/logo/logo-green.png create mode 100644 public/logo/logo-orange.png create mode 100644 public/logo/logo-purple.png create mode 100644 public/logo/logo-red.png create mode 100644 public/logo/logo-teal.png create mode 100644 public/logo/logo-yellow.png create mode 100644 public/logo/logo.png diff --git a/public/logo.png b/public/logo.png deleted file mode 100644 index 713ad50d798d8a35b3148d5deaf87cafa4afdd25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22246 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 urNwN%^w>z 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 o|EEIRV>4={8$AiKaOF$>|ByqX{UqGSVAL-~a#s diff --git a/public/logo/_logo-noita-left.png b/public/logo/_logo-noita-left.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd8a2812e27756a8fb25cd629d9883e8224c59f GIT binary patch literal 14805 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 literal 0 HcmV?d00001 diff --git a/public/logo/_logo-noita-right.png b/public/logo/_logo-noita-right.png new file mode 100644 index 0000000000000000000000000000000000000000..d4d5585b588668fabb98dbb6efd105f935a78d28 GIT binary patch literal 14766 zcmZ|01CS=&vM&6#ZQHi3Y1=lZZCleer)}G|&1u`1w*B|F_rB+x|HQo&QMIx%pC?f( zE236KRk(tjI2<%KGynjAlavrq`X1N5cX3GY@1xX5305V*jCkpYai!J3HHR zGcdThxzW3^(AzowWMJar;$mQAW?*Kf`$o_?dDuD|y3^S@k^I}q|M4SY>SXL_Vef2V zXG{2xUqd517iT_V;(r4D*Y@u`oh{7%JCd!_f6DqUkl`N-0~0+X!~czD>TdD>p#5X{ zH|<|_{W~1*KhC&??QHBFO`V*+)8c31{a1khpYFfY`!`<6)XC1;<)124Z7rPnng2ui zU+VwOl6SN){k|;!(EcmR|J40&yn?x%v)%U;Ia(M?+B%y$ey8{!_Wud^|3>@|U;ot2 ztzhA9YONt+VPk6huPT|@zU%zITK+dv*v{I{QQ6+m*z}*I|3 s{f7tR~*g%j>Gkx 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 literal 0 HcmV?d00001 diff --git a/public/logo/logo-blue.png b/public/logo/logo-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7df0c71a63359282ea5517d1c971781031874b GIT binary patch literal 19839 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 GPyZiLrJp|l literal 0 HcmV?d00001 diff --git a/public/logo/logo-green.png b/public/logo/logo-green.png new file mode 100644 index 0000000000000000000000000000000000000000..716f5877be28fa81bcdbd7e069d60944563c7041 GIT binary patch literal 19967 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 EAAE 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 d9ob%BEG501F>ELYk4% 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 Ef2{ReDF6Tf literal 0 HcmV?d00001 diff --git a/public/logo/logo-teal.png b/public/logo/logo-teal.png new file mode 100644 index 0000000000000000000000000000000000000000..fc359c30ce9ea9a04ffb3826dc27324c7a36a2a6 GIT binary patch literal 19838 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 literal 0 HcmV?d00001 diff --git a/public/logo/logo-yellow.png b/public/logo/logo-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..bd06ce75a2c61cdbe0fe9f5411b3563f4cbf73a1 GIT binary patch literal 19821 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 BigInt(0x34)); let h = f >> g; @@ -46,7 +46,7 @@ function SetRandomSeedHelper(r: number) { i = (~i & h) | ((f << ((BigInt(Math.floor(s)) >> BigInt(0x34)) - BigInt(0x433))) & i); - i = (~-BigInt(r == s) & -i) | (i & -BigInt(r == s)); + i = (~-BigInt(r === s) & -i) | (i & -BigInt(r === s)); //there's some error handling here in the real code that I'm ignoring } return i & BigInt(0xffffffff); diff --git a/src/app/components/MainHeader.tsx b/src/app/components/MainHeader.tsx index 2a0e4c1..99b468a 100644 --- a/src/app/components/MainHeader.tsx +++ b/src/app/components/MainHeader.tsx @@ -8,12 +8,12 @@ const HeaderDiv = styled.div` color: #eee; background-color: #000; justify-content: space-between; - background-image: url(/logo.png); + background-image: url(/logo/logo.png); background-size: contain; background-repeat: no-repeat; - height: 38px; + height: 60px; image-rendering: pixelated; - margin: 8px; + margin: 14px 16px; `; const SpacerDiv = styled.div` diff --git a/src/app/components/WandSimulator.tsx b/src/app/components/WandSimulator.tsx index 1ba9dc3..b5f682c 100644 --- a/src/app/components/WandSimulator.tsx +++ b/src/app/components/WandSimulator.tsx @@ -31,7 +31,7 @@ type Props = {}; export function WandSimulator(props: Props) { const { config } = useAppSelector(selectConfig); - const dispatch = useAppDispatch(); + useAppDispatch(); useEffect(() => { forceDisableCanvasSmoothing(); diff --git a/src/app/components/WandStatsEditor.tsx b/src/app/components/WandStatsEditor.tsx index 78975e8..deacb9e 100644 --- a/src/app/components/WandStatsEditor.tsx +++ b/src/app/components/WandStatsEditor.tsx @@ -4,7 +4,7 @@ import { Wand } from '../types'; import styled from 'styled-components'; import { AppDispatch } from '../redux/store'; import { EditableInteger } from './generic'; -import { numSign, round, TypedProperties } from '../util/util'; +import { round, TypedProperties } from '../util/util'; const CheckboxField = styled.input` margin: 1px; @@ -48,6 +48,7 @@ const renderNumberField = const fields = [ { name: 'Shuffle', + imgUrl: 'data/wand/icon_gun_shuffle.png', render: (wand: Wand, dispatch: AppDispatch) => ( `${round(Number(v) / 60, 2)}s`, + formatValue: (v) => `${round(Number(v) / 60, 2)} s`, convertRawValue: (v) => round(v / 60, 2), convertDisplayValue: (v) => round(v * 60, 2), }), }, { name: 'Rechrg. Time', + imgUrl: 'data/wand/icon_gun_reload_time.png', render: renderNumberField({ field: 'reload_time', step: 0.01, - formatValue: (v) => `${round(Number(v) / 60, 2)}s`, + formatValue: (v) => `${round(Number(v) / 60, 2)} s`, convertRawValue: (v) => round(v / 60, 2), convertDisplayValue: (v) => round(v * 60, 2), }), }, - { name: 'Mana max', render: renderNumberField({ field: 'mana_max' }) }, + { + name: 'Mana max', + imgUrl: 'data/wand/icon_mana_max.png', + render: renderNumberField({ field: 'mana_max' }), + }, { name: 'Mana chg. Spd', + imgUrl: 'data/wand/icon_mana_charge_speed.png', render: renderNumberField({ field: 'mana_charge_speed' }), }, { name: 'Capacity', + imgUrl: 'data/wand/icon_gun_capacity.png', render: renderNumberField({ field: 'deck_capacity' }), }, { name: 'Spread', + imgUrl: 'data/wand/icon_spread_degrees.png', render: renderNumberField({ field: 'spread', - formatValue: (v) => `${round(Number(v), 1)} deg`, + formatValue: (v) => `${round(Number(v), 1)} DEG`, + }), + }, + { + name: 'Speed', + imgUrl: 'data/wand/icon_speed_multiplier.png', + render: renderNumberField({ + field: 'speed', + formatValue: (v) => `${round(Number(v), 1)}`, }), }, ]; @@ -110,26 +129,37 @@ const StyledList = styled.div` flex-direction: column; justify-content: flex-start; align-items: flex-start; - font-family: monospace; - background-color: #333; - color: #fff; - font-weight: bold; - min-width: 200px; padding: 1px; `; -const StyledListItem = styled.div` +const StyledListItem = styled.div<{ + imgUrl: string; +}>` display: flex; flex: 1 1 auto; flex-direction: row; - width: 100%; + background-image: url(/${({ imgUrl }) => imgUrl}); + background-position: 0.6em 50%; + background-origin: padding-box; + background-size: 1em; + background-repeat: no-repeat; + background-color: var(--color-button-background); + image-rendering: pixelated; + font-family: 'noita', '04b03', sans-serif; + font-size: 16px; + color: var(--color-button); + padding: 0.1em 0.6em 0em 2.2em; `; const StyledName = styled.span` text-align: left; - flex: 0 0 60%; + flex: 0 1 auto; + width: 7.4em; + white-space: nowrap; `; const StyledValue = styled.span` text-align: left; - flex: 0 0 40%; + flex: 1 0; + white-space: nowrap; + width: 7.4em; `; type Props = {}; @@ -140,8 +170,8 @@ export function WandStatsEditor(props: Props) { return ( - {fields.map(({ name, render }, index) => ( - + {fields.map(({ name, imgUrl, render }, index) => ( + {name} {render(wand, dispatch)} diff --git a/src/app/components/config/CastConfigEditor.tsx b/src/app/components/config/CastConfigEditor.tsx index 2501268..9e9fb5b 100644 --- a/src/app/components/config/CastConfigEditor.tsx +++ b/src/app/components/config/CastConfigEditor.tsx @@ -149,17 +149,17 @@ const RandomInputWrapper = styled(InputWrapper)` } `; -const SimPaused = styled.span` - display: inline-block; - width: 4em; - padding-left: 4px; - font-style: italic; -`; -const SimRunning = styled.span` - display: inline-block; - width: 4em; - padding-left: 4px; -`; +// const SimPaused = styled.span` +// display: inline-block; +// width: 4em; +// padding-left: 4px; +// font-style: italic; +// `; +// const SimRunning = styled.span` +// display: inline-block; +// width: 4em; +// padding-left: 4px; +// `; const InputImageLabel = styled.div<{ size: number; diff --git a/src/app/components/generic/EditableInteger.tsx b/src/app/components/generic/EditableInteger.tsx index 78b5888..637af2f 100644 --- a/src/app/components/generic/EditableInteger.tsx +++ b/src/app/components/generic/EditableInteger.tsx @@ -3,17 +3,32 @@ import styled from 'styled-components'; const StaticValue = styled.div` height: 15px; + margin: 0; + padding: 0 2px; + border: none; `; const EditingValue = styled.input` - height: 15px; + height: 100%; margin: 0; padding: 0 2px; border: none; - width: 70%; - &:focus { - outline: none; + width: 100%; + flex: 1 1 100%; + background-color: #000; + font-family: 'noita', '04b03', sans-serif; + font-size: 16px; + color: #fff; + text-align: left; + + &:focus, + &:focus-visible { + border: none; + outline: 0px solid #dea71bcf; + background-color: #000; + outline-style: none; + border-style: none; } `; diff --git a/src/app/components/shotResult/ShotResultList.tsx b/src/app/components/shotResult/ShotResultList.tsx index ea2f456..d744bc9 100644 --- a/src/app/components/shotResult/ShotResultList.tsx +++ b/src/app/components/shotResult/ShotResultList.tsx @@ -91,7 +91,6 @@ export function ShotResultList(props: Props) { [ config.endSimulationOnRefresh, config.requirements, - config.random, spellActionsWithUses, wand, ], From 040729a81493dd34648da4c0d7ad945abe18a4c2 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 29 Jun 2023 11:33:53 +0100 Subject: [PATCH 10/30] A bit of fun --- src/app/components/MainHeader.tsx | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/app/components/MainHeader.tsx b/src/app/components/MainHeader.tsx index 99b468a..5556fb9 100644 --- a/src/app/components/MainHeader.tsx +++ b/src/app/components/MainHeader.tsx @@ -1,14 +1,29 @@ import styled from 'styled-components'; +import { useState } from 'react'; type Props = {}; -const HeaderDiv = styled.div` +const logoVariants = [ + '/logo/logo-blue.png', + '/logo/logo-green.png', + '/logo/logo-orange.png', + '/logo/logo-purple.png', + '/logo/logo-red.png', + '/logo/logo-teal.png', + '/logo/logo-yellow.png', +]; + +const getRandomInteger = (max: number) => Math.floor(Math.random() * max); + +const HeaderDiv = styled.div<{ + imgUrl?: string; +}>` display: flex; flex-direction: row; color: #eee; background-color: #000; justify-content: space-between; - background-image: url(/logo/logo.png); + background-image: url(${({ imgUrl = '/logo/logo.png' }) => imgUrl}); background-size: contain; background-repeat: no-repeat; height: 60px; @@ -28,8 +43,12 @@ const ExtraDiv = styled.div` `; export function MainHeader({ children }: React.PropsWithChildren) { + const [logoVariant, setLogoVariant] = useState( + logoVariants[getRandomInteger(logoVariants.length)], + ); + return ( - + {children} From a2864969c45eaeb155770b3e8ceedf6bbe078227 Mon Sep 17 00:00:00 2001 From: Ashley Baldock Date: Thu, 6 Jul 2023 22:34:33 +0100 Subject: [PATCH 11/30] Icon for config --- src/app/components/config/ConfigButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/components/config/ConfigButton.tsx b/src/app/components/config/ConfigButton.tsx index 26c2bb1..27923ee 100644 --- a/src/app/components/config/ConfigButton.tsx +++ b/src/app/components/config/ConfigButton.tsx @@ -14,7 +14,7 @@ export function ConfigButton(props: Props) { return (