Merge remote-tracking branch 'template/main'

This commit is contained in:
thepaperpilot 2022-07-17 21:39:20 -05:00
commit b51c1dfaef
5 changed files with 66 additions and 23 deletions

View file

@ -6,6 +6,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.5.1] - 2022-07-17
### Added
- Notif component that displays a jumping exclamation point
- showAmount boolean to buyable displays
- Tab families now take option to style the tab buttons container
- Utility for creating text of a certain color
### Changed
- Improved typing of player.layers
- Improved typing of createCollapsibleModifierSections's parameters
- Made Particles vue component typed as GenericComponent due to issues generating documentation
- Minimized how much of pixi.js is included in the built site
- Split bundles into smaller bundles for faster loading
- Updated TypeScript
- Descriptions on buyables are now optional
- Improved tooltips performance
- Improved how MainDisplay displays effect strings
- MainDisplays are now sticky
- processComputable now binds uncached functions as well
### Fixed
- trackResetTime stopped working once its layer was removed and re-added
- Runtime compilation was disabled in vite config
- Websites had to be hosted on root directory to have assets load correctly
- Tooltips' persistent ref was lazily created
- In some situations Links would not update its bounding rect
- Achievements' and milestones' onComplete callbacks were firing on load
- Processed JSXFunctions were not considered coercable components by isCoercableComponent
- Error from passing in overlay text to bar component
### Removed
- lodash.cloneDeep dependency, which hasn't been used in awhile
- Some unused configs from vue-cli-service
### Documented
- Update vitepress, and updated the content of many pages
- Rest of /game
- Rest of /data
- layers.tsx
- Any type augmentations to Window object
- Various cleanup of docs comments
- Fixed doc generation being broken from switch to vite
### Tests
- Switched from jest to vitest
## [0.5.0] - 2022-06-27 ## [0.5.0] - 2022-06-27
### Added ### Added
- Projects now cache for offline play, and show notification when an update is available - Projects now cache for offline play, and show notification when an update is available

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "profectus", "name": "profectus",
"version": "0.5.0", "version": "0.5.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "profectus", "name": "profectus",
"version": "0.5.0", "version": "0.5.1",
"dependencies": { "dependencies": {
"@pixi/app": "^6.4.2", "@pixi/app": "^6.4.2",
"@pixi/core": "^6.4.2", "@pixi/core": "^6.4.2",

View file

@ -1,6 +1,6 @@
{ {
"name": "profectus", "name": "profectus",
"version": "0.5.0", "version": "0.5.1",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "vite", "start": "vite",

View file

@ -232,28 +232,30 @@ export function createLayerTreeNode<T extends LayerTreeNodeOptions>(
}) as unknown as LayerTreeNode<T>; }) as unknown as LayerTreeNode<T>;
} }
/** An option object for a modifier display as a single section. **/
export interface Section {
/** The header for this modifier. **/
title: string;
/** A subtitle for this modifier, e.g. to explain the context for the modifier. **/
subtitle?: string;
/** The modifier to be displaying in this section. **/
modifier: WithRequired<Modifier, "description">;
/** The base value being modified. **/
base?: Computable<DecimalSource>;
/** The unit of measurement for the base. **/
unit?: string;
/** The label to call the base amount. Defaults to "Base". **/
baseText?: Computable<CoercableComponent>;
/** Whether or not this section should be currently visible to the player. **/
visible?: Computable<boolean>;
}
/** /**
* Takes an array of modifier "sections", and creates a JSXFunction that can render all those sections, and allow each section to be collapsed. * Takes an array of modifier "sections", and creates a JSXFunction that can render all those sections, and allow each section to be collapsed.
* Also returns a list of persistent refs that are used to control which sections are currently collapsed. * Also returns a list of persistent refs that are used to control which sections are currently collapsed.
* @param sections An array of options objects for each section to display.
* @param sections.title The header for this modifier.
* @param sections.subtitle A subtitle for this modifier, e.g. to explain the context for the modifier.
* @param sections.modifier The modifier to be displaying in this section.
* @param sections.base The base value being modified.
* @param sections.unit The unit of measurement for the base.
* @param sections.baseText The label to call the base amount.
* @param sections.visible Whether or not this section should be currently visible to the player.
*/ */
export function createCollapsibleModifierSections( export function createCollapsibleModifierSections(
sections: { sections: Section[]
title: string;
subtitle?: string;
modifier: WithRequired<Modifier, "description">;
base?: Computable<DecimalSource>;
unit?: string;
baseText?: Computable<CoercableComponent>;
visible?: Computable<boolean>;
}[]
): [JSXFunction, Persistent<boolean>[]] { ): [JSXFunction, Persistent<boolean>[]] {
const processedBase = sections.map(s => convertComputable(s.base)); const processedBase = sections.map(s => convertComputable(s.base));
const processedBaseText = sections.map(s => convertComputable(s.baseText)); const processedBaseText = sections.map(s => convertComputable(s.baseText));
@ -314,6 +316,6 @@ export function createCollapsibleModifierSections(
* @param textToColor The content to change the color of * @param textToColor The content to change the color of
* @param color The color to change the content to look like. Defaults to the current theme's accent 2 variable. * @param color The color to change the content to look like. Defaults to the current theme's accent 2 variable.
*/ */
export function colorText(textToColor: string, color = "var(--accent2)"): string { export function colorText(textToColor: string, color = "var(--accent2)"): JSX.Element {
return `<span style="color: ${color}">${textToColor}</span>`; return <span style={{ color }}>${textToColor}</span>;
} }

View file

@ -42,7 +42,7 @@ export type Player = ProxiedWithState<PlayerData>;
/** A layer's save data. Automatically unwraps refs. */ /** A layer's save data. Automatically unwraps refs. */
export type LayerData<T> = { export type LayerData<T> = {
[P in keyof T]?: T[P] extends (infer U)[] [P in keyof T]?: T[P] extends (infer U)[]
? LayerData<U>[] ? Record<string, LayerData<U>>
: T[P] extends Record<string, never> : T[P] extends Record<string, never>
? never ? never
: T[P] extends Ref<infer S> : T[P] extends Ref<infer S>