Commit graph

768 commits

Author SHA1 Message Date
b1cbbc4f00 Make board not use computed around jsx 2024-12-12 07:59:10 -06:00
7f2fa9cc27 Cleanup 2024-12-12 07:45:21 -06:00
ff14443102 Complete the rewrite
Renderables no longer get wrapped in computed refs, because JSX.Elements don't like that (desyncs with the DOM)
Relatedly, a lot of display functions got fairly simplified, removing unnecessary local components
Added `MaybeGetter` utility type for something that may be a getter function or a static value (but not a ref)
Made Achievement.vue use a Renderable for the display. The object of components can still be passed to `createAchievement`
Made Challenge.vue use a Renderable for the display. The object of components can still be passed to `createChallenge`
Fixed some issues introduced by the rewrite that broke particles systems
2024-12-11 13:58:14 -06:00
ffd9529e9a Merge remote-tracking branch 'template/feature/feat-and-board-rewrite' into feat/board-feature-rewrite 2024-12-03 22:11:01 -06:00
83d41428eb Feature rewrite
- Removed `jsx()` and `JSXFunction`. You can now use `JSX.Element` like any other `Computable` value
- `joinJSX` now always requires a joiner. Just pass the array of elements or wrap them in `<>` and `</>` if there's no joiner
- Removed `coerceComponent`, `computeComponent`, and `computeOptionalComponent`; just use the `render` function now
- It's recommended to now do `<MyComponent />` instead of `<component :is="myComponent" />`
- All features no longer take the options as a type parameter, and all generic forms have been removed as a result
- Fixed `forceHideGoBack` not being respected
- Removed `deepUnref` as now things don't get unreffed before being passed into vue components by default
- Moved MarkNode to new wrapper, and removed existing `mark` properties
- Moved Tooltip to new wrapper, and made it take an options function instead of raw object
- VueFeature component now wraps all vue features, and applies styling, classes, and visibility in the wrapping div. It also adds the Node component so features don't need to
- `mergeAdjacent` now works with grids (perhaps should've used scss to reduce the amount of css this took)
- `CoercableComponent` renamed to `Renderable` since it should be used with `render`
- Replaced `isCoercableComponent` with `isJSXElement`
- Replaced `Computable` and `ProcessedComputable` with the vue built-ins `MaybeRefOrGetter` and `MaybeRef`
- `convertComputable` renamed to `processGetter`
- Also removed `GetComputableTypeWithDefault` and `GetComputableType`, which can similarly be replaced
- `dontMerge` is now a property on rows and columns rather than an undocumented css class you'd have to include on every feature within the row or column
- Fixed saves manager not being imported in addiction warning component
- Created `vueFeatureMixin` for simplifying the vue specific parts of a feature. Passes the component's properties in explicitly and directly from the feature itself
- All features should now return an object that includes props typed to omit the options object and satisfies the feature. This will ensure type correctness and pass-through custom properties. (see existing features for more thorough examples of changes)
- Replaced decorators with mixins, which won't require casting. Bonus amount decorators converted into generic bonus amount mixin. Removed effect decorator
- All `render` functions now return `JSX.Element`. The `JSX` variants (e.g. `renderJSX`) (except `joinJSX`) have been removed
- Moved all features that use the clickable component into the clickable folder
- Removed `small` property from clickable, since its a single css rule (`min-height: unset`) (you could add a small css class and pass small to any vue feature's classes property, though)
- Upgrades now use the clickable component
- Added ConversionType symbol
- Removed setDefault, just use `??=`
- Added isType function that uses a type symbol to check
- General cleanup
2024-11-29 08:02:24 -06:00
99511288c9 Merge branch 'feat/update-deps' into feat/board-rewrite 2024-11-29 07:52:52 -06:00
4987916900 Fix last lint issue 2024-10-20 13:51:31 -05:00
528e703c88 Ran lint:fix 2024-10-20 11:46:09 -05:00
6c8dd66677 Remove _props abstraction (fixes #2) 2024-10-20 06:27:24 -05:00
1e5411d279 Remove processedPropType and convert all components to composition API 2024-10-20 05:47:59 -05:00
052a01d3f7 Fix build issues 2024-10-18 09:26:10 -05:00
c93418bfec Fix merge 2024-10-18 08:50:05 -05:00
88abd53faf Update eslint and prettier 2024-10-18 07:04:33 -05:00
80d7a743bc Update TS 2024-10-18 07:04:29 -05:00
1e13da1129 Revert "Add link to docs in setupDraggableNode docstring"
This reverts commit 1c7824b550.
2024-10-18 07:02:34 -05:00
643bfccada Add link to docs in setupDraggableNode docstring 2024-10-18 07:02:34 -05:00
f9c59f7636 Revert changes in /data. Check the board-example branch for them instead 2024-10-18 07:02:34 -05:00
99227a2cb2 Move common board node CSS to class 2024-10-18 07:02:34 -05:00
e0da9588d2 Move board to src/game 2024-10-18 07:02:34 -05:00
46d0a9aa2e Add some tests for boards 2024-10-18 07:02:33 -05:00
c6035f9077 Document boards 2024-10-18 07:02:33 -05:00
8745304631 Fix upgrade purchasing on drag 2024-10-18 07:02:33 -05:00
5b33a0fceb Perf optimization 2024-10-18 07:02:33 -05:00
6a17bbc29c Use z-index to avoid changing render order 2024-10-18 07:02:33 -05:00
a75c8d81f8 Add cnodes 2024-10-18 07:02:32 -05:00
c64ac82a25 Add support for rendering VueFeatures in boards 2024-10-18 07:02:32 -05:00
1cbe97251c WIP on rewriting board 2024-10-18 07:02:32 -05:00
6ba25f9abd Removed dynamic imports 2024-10-18 07:02:32 -05:00
8a9e106157 Update vite dependencies 2024-10-18 07:00:46 -05:00
90300ce848 Update fontsource dependencies 2024-10-18 07:00:08 -05:00
2b861c3fcf Fix Links.vue checking startNode twice instead of both nodes
Thanks escapee for reporting the issue!
2024-10-17 16:50:55 +00:00
9debfe6fb4 Unref hotkey descriptions 2024-10-17 16:28:04 +00:00
9f25d7f58f Fix more modal paths 2024-10-17 16:17:32 +00:00
239ae7c94a Update saves bank path 2024-10-17 16:17:32 +00:00
2d28be84a9 Add modal to take a mental health break 2024-10-17 16:17:32 +00:00
b98f6db1c4 Move printFormula to Formula.stringify and add tests for it 2024-03-29 00:24:31 -05:00
563eaa7539 Lint 2024-03-29 00:19:57 -05:00
90d0307cf0 Add hotkey tests, make them pass
Includes updating vitest and supporting hotkeys with both ctrl+shift
2024-03-28 23:40:46 -05:00
dfb14acc6e Allow null and undefined values in persistent refs 2024-03-29 04:39:56 +00:00
68e6e3f37a Revert "Add link to docs in setupDraggableNode docstring"
This reverts commit 1c7824b550.
2024-03-12 21:52:19 -05:00
1c7824b550 Add link to docs in setupDraggableNode docstring 2024-03-10 09:37:02 -05:00
1b267edc32 Revert changes in /data. Check the board-example branch for them instead 2024-03-10 09:27:31 -05:00
0e7ca27e3b Move common board node CSS to class 2024-03-09 21:59:17 -06:00
2cfa450d96 Move board to src/game 2024-03-09 20:36:41 -06:00
ad421ac759 Add some tests for boards 2024-03-09 13:42:17 -06:00
68b1401c2a Document boards 2024-03-08 17:06:54 -06:00
c30724d907 Make disabled elements not eat up mouse events
Browsers make disabled elements eat events rather than let them bubble up
This allows containers with disabled elements to have listeners still
(Used specifically so after the board rewrite, purchased upgrades can still be dragged)
2024-03-08 12:19:52 +00:00
b855139ab4 Fixed issues until it fully worked on Galaxy proper 2024-03-05 22:47:29 -06:00
c85bca110b Sync cloud saves every minute 2024-03-05 22:47:29 -06:00
389e8ad1e1 Move unofficial sdk to repo 2024-03-05 22:47:28 -06:00