@dotcraft/avatar 0.7.1 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -20
- package/dist/AnimatedDecoration.d.ts +2 -2
- package/dist/AnimatedDecoration.d.ts.map +1 -1
- package/dist/AnimatedDecoration.js +2 -2
- package/dist/AnimatedDecoration.js.map +1 -1
- package/dist/AppearanceRig.d.ts +7 -1
- package/dist/AppearanceRig.d.ts.map +1 -1
- package/dist/AppearanceRig.js +2 -2
- package/dist/AppearanceRig.js.map +1 -1
- package/dist/Avatar.d.ts +2 -0
- package/dist/Avatar.d.ts.map +1 -1
- package/dist/Avatar.js +19 -7
- package/dist/Avatar.js.map +1 -1
- package/dist/BackDecorations.d.ts +9 -0
- package/dist/BackDecorations.d.ts.map +1 -0
- package/dist/BackDecorations.js +73 -0
- package/dist/BackDecorations.js.map +1 -0
- package/dist/DecorationShapes.d.ts +9 -2
- package/dist/DecorationShapes.d.ts.map +1 -1
- package/dist/DecorationShapes.js +8 -2
- package/dist/DecorationShapes.js.map +1 -1
- package/dist/Decorations.d.ts +6 -9
- package/dist/Decorations.d.ts.map +1 -1
- package/dist/Decorations.js +33 -16
- package/dist/Decorations.js.map +1 -1
- package/dist/FaceDecorations.d.ts +14 -0
- package/dist/FaceDecorations.d.ts.map +1 -0
- package/dist/FaceDecorations.js +69 -0
- package/dist/FaceDecorations.js.map +1 -0
- package/dist/HandDecorations.d.ts +5 -0
- package/dist/HandDecorations.d.ts.map +1 -0
- package/dist/HandDecorations.js +8 -0
- package/dist/HandDecorations.js.map +1 -0
- package/dist/HatDecorations.d.ts +2 -2
- package/dist/HatDecorations.d.ts.map +1 -1
- package/dist/HatDecorations.js +4 -0
- package/dist/HatDecorations.js.map +1 -1
- package/dist/MascotRig.d.ts +13 -1
- package/dist/MascotRig.d.ts.map +1 -1
- package/dist/MascotRig.js +6 -26
- package/dist/MascotRig.js.map +1 -1
- package/dist/ObjectDecorations.d.ts +2 -2
- package/dist/ObjectDecorations.d.ts.map +1 -1
- package/dist/ObjectDecorations.js +18 -2
- package/dist/ObjectDecorations.js.map +1 -1
- package/dist/RigMaterial.d.ts +18 -0
- package/dist/RigMaterial.d.ts.map +1 -0
- package/dist/RigMaterial.js +9 -0
- package/dist/RigMaterial.js.map +1 -0
- package/dist/SkinDecorations.d.ts +10 -0
- package/dist/SkinDecorations.d.ts.map +1 -0
- package/dist/SkinDecorations.js +28 -0
- package/dist/SkinDecorations.js.map +1 -0
- package/dist/accessories.css +1 -1
- package/dist/appearanceModel.d.ts +18 -14
- package/dist/appearanceModel.d.ts.map +1 -1
- package/dist/appearanceModel.js +62 -30
- package/dist/appearanceModel.js.map +1 -1
- package/dist/composer/styles/energy.css +34 -0
- package/dist/decorationCatalog.d.ts +17 -7
- package/dist/decorationCatalog.d.ts.map +1 -1
- package/dist/decorationCatalog.js +95 -36
- package/dist/decorationCatalog.js.map +1 -1
- package/dist/decorationMotion.d.ts +2 -2
- package/dist/decorationMotion.d.ts.map +1 -1
- package/dist/decorationMotion.js +4 -1
- package/dist/decorationMotion.js.map +1 -1
- package/dist/effects.css +86 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/items.d.ts +460 -0
- package/dist/items.d.ts.map +1 -0
- package/dist/items.js +52 -0
- package/dist/items.js.map +1 -0
- package/dist/paintMaterials.d.ts +31 -0
- package/dist/paintMaterials.d.ts.map +1 -0
- package/dist/paintMaterials.js +10 -0
- package/dist/paintMaterials.js.map +1 -0
- package/dist/palette.d.ts +2 -0
- package/dist/palette.d.ts.map +1 -1
- package/dist/palette.js +4 -4
- package/dist/palette.js.map +1 -1
- package/dist/react.d.ts +2 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +2 -2
- package/dist/react.js.map +1 -1
- package/dist/rig.css +6 -21
- package/dist/styles.css +1 -0
- package/package.json +1 -1
- package/src/AnimatedDecoration.tsx +4 -4
- package/src/AppearanceRig.tsx +5 -4
- package/src/Avatar.tsx +25 -11
- package/src/BackDecorations.tsx +134 -0
- package/src/DecorationShapes.tsx +11 -3
- package/src/Decorations.tsx +47 -22
- package/src/FaceDecorations.tsx +145 -0
- package/src/HandDecorations.tsx +113 -0
- package/src/HatDecorations.tsx +29 -2
- package/src/MascotRig.tsx +27 -44
- package/src/ObjectDecorations.tsx +69 -3
- package/src/RigMaterial.tsx +23 -0
- package/src/SkinDecorations.tsx +56 -0
- package/src/accessories.css +1 -1
- package/src/appearanceModel.ts +57 -37
- package/src/composer/styles/energy.css +34 -0
- package/src/decorationCatalog.ts +103 -38
- package/src/decorationMotion.ts +6 -3
- package/src/effects.css +86 -0
- package/src/index.ts +2 -0
- package/src/items.ts +86 -0
- package/src/paintMaterials.ts +18 -0
- package/src/palette.ts +7 -3
- package/src/react.ts +2 -2
- package/src/rig.css +6 -21
- package/src/styles.css +1 -0
- package/dist/HeldDecorations.d.ts +0 -5
- package/dist/HeldDecorations.d.ts.map +0 -1
- package/dist/HeldDecorations.js +0 -5
- package/dist/HeldDecorations.js.map +0 -1
- package/src/HeldDecorations.tsx +0 -48
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { isPaintSkin, paintMaterials } from './paintMaterials.js';
|
|
3
|
+
import { materialBounds } from './RigMaterial.js';
|
|
4
|
+
const dots = [[280, 440], [372, 432], [464, 446], [556, 432], [648, 446], [740, 438], [268, 560], [758, 530], [262, 680], [762, 650], [292, 806], [400, 812], [512, 800], [624, 812], [732, 806], [268, 760]];
|
|
5
|
+
const star4 = (r) => `M0 ${-r}l${r * .28} ${r * .72}l${r * .72} ${r * .28}l${-r * .72} ${r * .28}l${-r * .28} ${r * .72}l${-r * .28} ${-r * .72}l${-r * .72} ${-r * .28}l${r * .72} ${-r * .28}Z`;
|
|
6
|
+
export function SkinOverlay({ id }) {
|
|
7
|
+
switch (id) {
|
|
8
|
+
case 'stripes': return _jsx("g", { fill: "#fff", opacity: ".34", "data-skin-overlay": id, children: [60, 250, 440, 630].map(x => _jsx("path", { d: `M${x} 834 L${x + 220} 408 h80 L${x + 80} 834Z` }, x)) });
|
|
9
|
+
default: return null;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const sheen = _jsxs("g", { className: "dca-fx dca-fx-sheen", fill: "#fff", children: [_jsx("path", { d: "M120 834 L420 408 h58 L178 834Z", opacity: ".38" }), _jsx("path", { d: "M200 834 L500 408 h22 L222 834Z", opacity: ".55" })] });
|
|
13
|
+
const gradients = {
|
|
14
|
+
chrome: id => _jsxs("linearGradient", { id: id, className: "dca-skin-paint dca-skin-chrome", x1: "279", y1: "766", x2: "736", y2: "334", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0", stopColor: "#3c4658" }), _jsx("stop", { offset: ".36", stopColor: "#9aa6b8" }), _jsx("stop", { offset: ".5", stopColor: "#f4f7fb" }), _jsx("stop", { offset: ".54", stopColor: "#6b7688" }), _jsx("stop", { offset: ".8", stopColor: "#c3ccd8" }), _jsx("stop", { offset: "1", stopColor: "#ffffff" })] }),
|
|
15
|
+
holographic: id => _jsxs("linearGradient", { id: id, className: "dca-skin-paint dca-skin-holo", x1: "279", y1: "766", x2: "736", y2: "334", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0", stopColor: "#ff8ad4" }), _jsx("stop", { offset: ".25", stopColor: "#ffd28a" }), _jsx("stop", { offset: ".5", stopColor: "#c9ff8a" }), _jsx("stop", { offset: ".75", stopColor: "#8ad8ff" }), _jsx("stop", { offset: "1", stopColor: "#c98aff" })] }),
|
|
16
|
+
gold: id => _jsxs("linearGradient", { id: id, className: "dca-skin-paint dca-skin-gold", x1: "279", y1: "766", x2: "736", y2: "334", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0", stopColor: "#b8862c" }), _jsx("stop", { offset: ".4", stopColor: "#f6d365" }), _jsx("stop", { offset: ".52", stopColor: "#fff3c4" }), _jsx("stop", { offset: ".64", stopColor: "#d9a53a" }), _jsx("stop", { offset: "1", stopColor: "#ffe9a8" })] }),
|
|
17
|
+
lava: id => _jsxs("linearGradient", { id: id, className: "dca-skin-paint dca-skin-lava", x1: "279", y1: "766", x2: "736", y2: "334", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0", stopColor: "#4a1208" }), _jsx("stop", { offset: ".3", stopColor: "#e8451f" }), _jsx("stop", { offset: ".55", stopColor: "#ffb347" }), _jsx("stop", { offset: ".8", stopColor: "#e8451f" }), _jsx("stop", { offset: "1", stopColor: "#7a1f0e" })] }),
|
|
18
|
+
galaxy: id => _jsxs("linearGradient", { id: id, className: "dca-skin-paint dca-skin-galaxy", x1: "279", y1: "766", x2: "736", y2: "334", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0", stopColor: "#1b1040" }), _jsx("stop", { offset: ".3", stopColor: "#4c1d95" }), _jsx("stop", { offset: ".55", stopColor: "#2563eb" }), _jsx("stop", { offset: ".8", stopColor: "#0b3d62" }), _jsx("stop", { offset: "1", stopColor: "#7c3aed" })] }),
|
|
19
|
+
};
|
|
20
|
+
export function skinPaint(id) {
|
|
21
|
+
return isPaintSkin(id) ? { render: gradients[id], shadow: paintMaterials[id].shadow } : undefined;
|
|
22
|
+
}
|
|
23
|
+
export function SkinPaintSurface({ id }) {
|
|
24
|
+
if (!isPaintSkin(id))
|
|
25
|
+
return null;
|
|
26
|
+
return _jsxs("g", { "data-skin-overlay": id, children: [id !== 'galaxy' && id !== 'lava' && sheen, id === 'galaxy' && _jsx("g", { fill: "#fff", children: dots.filter((_, index) => index % 2 === 1).map(([cx, cy], index) => _jsx("path", { className: "dca-fx dca-fx-node", d: star4(index % 2 ? 10 : 15), transform: `translate(${cx} ${cy})`, style: { animationDelay: `${(index * .43) % 1.8}s` } }, `${cx}-${cy}`)) }), _jsx("rect", { className: "dca-fx dca-skin-energy", ...materialBounds, fill: paintMaterials[id].accent, opacity: "0" })] });
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=SkinDecorations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkinDecorations.js","sourceRoot":"","sources":["../src/SkinDecorations.tsx"],"names":[],"mappings":"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"}
|
package/dist/accessories.css
CHANGED
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
.dca-robot[data-gesture='blink'] .dca-part-caret { animation: none !important; }
|
|
10
10
|
|
|
11
11
|
/* Lift an upright tool beside the face rather than sweeping it across the screen. */
|
|
12
|
-
.dca-robot[data-held-state='holding'] .dca-action-celebrate :is(.dca-part-arm-l-w, .dca-part-arm-l) {
|
|
12
|
+
.dca-robot[data-held-state='holding'] .dca-action-celebrate :is(.dca-part-arm-l-w, .dca-part-arm-l-b, .dca-part-arm-l) {
|
|
13
13
|
transform: translate(30px, -65px) rotate(20deg);
|
|
14
14
|
}
|
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const heldIds: readonly ["task-board", "wrench", "shield", "magnifier", "control-panel"];
|
|
3
|
-
export type HeldId = typeof heldIds[number];
|
|
4
|
-
export declare const secondaryIds: readonly ["none", "forehead-goggles", "task-board", "wrench", "shield", "magnifier", "control-panel"];
|
|
5
|
-
export type PrimaryId = typeof primaryIds[number];
|
|
6
|
-
export type SecondaryId = typeof secondaryIds[number];
|
|
7
|
-
export type DecorationId = Exclude<PrimaryId | SecondaryId, 'none'>;
|
|
1
|
+
import { type BackId, type FaceId, type HandId, type HeadId, type ItemId, type ItemOf, type Rarity, type SkinId, type Slot, type Zone } from './items.js';
|
|
8
2
|
export interface Appearance {
|
|
9
|
-
version:
|
|
3
|
+
version: 1;
|
|
10
4
|
palette: number;
|
|
11
5
|
baseFace: number;
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
head: HeadId | 'none';
|
|
7
|
+
face: FaceId | 'none';
|
|
8
|
+
hand: HandId | 'none';
|
|
9
|
+
back: BackId | 'none';
|
|
10
|
+
skin: SkinId | 'none';
|
|
14
11
|
}
|
|
15
|
-
export
|
|
16
|
-
export declare
|
|
17
|
-
export declare
|
|
12
|
+
export type SlotValue<S extends Slot> = ItemOf<S> | 'none';
|
|
13
|
+
export declare const slotPresence: Record<Slot, number>;
|
|
14
|
+
export declare const rarityWeights: Record<Rarity, number>;
|
|
18
15
|
export declare function hashSeed(seed: string): number;
|
|
19
|
-
export declare function isHeld(id: SecondaryId): id is HeldId;
|
|
20
16
|
export declare const originalAppearance: Appearance;
|
|
21
17
|
export declare function normalizeName(name: string): string;
|
|
18
|
+
export declare function equippedIds(appearance: Appearance): ItemId[];
|
|
19
|
+
export declare function occupiedZones(appearance: Appearance): Set<Zone>;
|
|
20
|
+
export declare function canEquip<S extends Slot>(appearance: Appearance, slot: S, id: SlotValue<S>): boolean;
|
|
21
|
+
export declare function equip<S extends Slot>(appearance: Appearance, slot: S, id: SlotValue<S>): {
|
|
22
|
+
appearance: Appearance;
|
|
23
|
+
cleared: Slot[];
|
|
24
|
+
};
|
|
25
|
+
export declare function hasConflicts(appearance: Appearance): boolean;
|
|
22
26
|
export declare function deriveAppearance(name: string): Appearance;
|
|
23
27
|
export declare function sampleSeed(seed: string, round: number, index: number): string;
|
|
24
28
|
export declare function appearanceWall(seed: string, round?: number): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearanceModel.d.ts","sourceRoot":"","sources":["../src/appearanceModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appearanceModel.d.ts","sourceRoot":"","sources":["../src/appearanceModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEpM,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AACD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;AAE1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAA2D,CAAA;AACzG,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAiE,CAAA;AAElH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AACD,eAAO,MAAM,kBAAkB,EAAE,UAA2H,CAAA;AAC5J,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAwC;AAE3F,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAE5D;AACD,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAE/D;AACD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAInG;AACD,wBAAgB,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,IAAI,EAAE,CAAA;CAAE,CASpI;AACD,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAG5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAqBzD;AACD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAEpE;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI;;;IAKrD"}
|
package/dist/appearanceModel.js
CHANGED
|
@@ -1,26 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export const
|
|
3
|
-
export const
|
|
4
|
-
export const secondaryIds = ['none', 'forehead-goggles', ...heldIds];
|
|
5
|
-
// Explicit allow-list, including the undecorated head. No cartesian-product fallback.
|
|
6
|
-
const faceAccessories = ['none', ...heldIds];
|
|
7
|
-
export const compatibility = {
|
|
8
|
-
none: [...faceAccessories, 'forehead-goggles'],
|
|
9
|
-
'baseball-cap': faceAccessories, 'bucket-hat': faceAccessories, beret: faceAccessories,
|
|
10
|
-
beanie: faceAccessories, 'top-hat': faceAccessories, 'wizard-hat': faceAccessories,
|
|
11
|
-
'chef-hat': faceAccessories, 'party-hat': faceAccessories, crown: faceAccessories,
|
|
12
|
-
'hard-hat': faceAccessories, nightcap: faceAccessories, 'straw-hat': faceAccessories,
|
|
13
|
-
poop: [...faceAccessories, 'forehead-goggles'], banana: [...faceAccessories, 'forehead-goggles'],
|
|
14
|
-
'fried-egg': [...faceAccessories, 'forehead-goggles'], 'rubber-duck': [...faceAccessories, 'forehead-goggles'],
|
|
15
|
-
'paper-boat': [...faceAccessories, 'forehead-goggles'], 'traffic-cone': [...faceAccessories, 'forehead-goggles'],
|
|
16
|
-
sprout: [...faceAccessories, 'forehead-goggles'], donut: [...faceAccessories, 'forehead-goggles'],
|
|
17
|
-
};
|
|
18
|
-
export function isCompatible(primary, secondary) {
|
|
19
|
-
return compatibility[primary].includes(secondary);
|
|
20
|
-
}
|
|
21
|
-
export function withPrimary(appearance, primary) {
|
|
22
|
-
return { ...appearance, primary, secondary: isCompatible(primary, appearance.secondary) ? appearance.secondary : 'none' };
|
|
23
|
-
}
|
|
1
|
+
import { conflicts, itemOf, items, rarities, slots } from './items.js';
|
|
2
|
+
export const slotPresence = { head: .85, face: .35, hand: .4, back: .25, skin: .3 };
|
|
3
|
+
export const rarityWeights = { common: 55, uncommon: 27, rare: 12, epic: 5, legendary: 1 };
|
|
24
4
|
export function hashSeed(seed) {
|
|
25
5
|
let value = 0x811c9dc5;
|
|
26
6
|
for (let index = 0; index < seed.length; index++)
|
|
@@ -32,19 +12,71 @@ export function hashSeed(seed) {
|
|
|
32
12
|
value = Math.imul(value, 0x846ca68b);
|
|
33
13
|
return (value ^ (value >>> 16)) >>> 0;
|
|
34
14
|
}
|
|
35
|
-
export
|
|
36
|
-
export const originalAppearance = { version: 2, palette: -1, baseFace: 0, primary: 'none', secondary: 'none' };
|
|
15
|
+
export const originalAppearance = { version: 1, palette: -1, baseFace: 0, head: 'none', face: 'none', hand: 'none', back: 'none', skin: 'none' };
|
|
37
16
|
export function normalizeName(name) { return name.trim().normalize('NFC'); }
|
|
17
|
+
export function equippedIds(appearance) {
|
|
18
|
+
return slots.map(slot => appearance[slot]).filter((id) => id !== 'none');
|
|
19
|
+
}
|
|
20
|
+
export function occupiedZones(appearance) {
|
|
21
|
+
return new Set(equippedIds(appearance).flatMap(id => [...itemOf(id).zones]));
|
|
22
|
+
}
|
|
23
|
+
export function canEquip(appearance, slot, id) {
|
|
24
|
+
if (id === 'none')
|
|
25
|
+
return true;
|
|
26
|
+
if (itemOf(id).slot !== slot)
|
|
27
|
+
return false;
|
|
28
|
+
return slots.every(other => other === slot || appearance[other] === 'none' || !conflicts(appearance[other], id));
|
|
29
|
+
}
|
|
30
|
+
export function equip(appearance, slot, id) {
|
|
31
|
+
if (id !== 'none' && itemOf(id).slot !== slot)
|
|
32
|
+
throw new TypeError(`Cannot equip ${id} in the ${slot} slot`);
|
|
33
|
+
const next = { ...appearance, [slot]: id };
|
|
34
|
+
const cleared = [];
|
|
35
|
+
if (id !== 'none')
|
|
36
|
+
for (const other of slots) {
|
|
37
|
+
const current = next[other];
|
|
38
|
+
if (other !== slot && current !== 'none' && conflicts(current, id)) {
|
|
39
|
+
next[other] = 'none';
|
|
40
|
+
cleared.push(other);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { appearance: next, cleared };
|
|
44
|
+
}
|
|
45
|
+
export function hasConflicts(appearance) {
|
|
46
|
+
const ids = equippedIds(appearance);
|
|
47
|
+
return ids.some((a, index) => ids.slice(index + 1).some(b => conflicts(a, b)));
|
|
48
|
+
}
|
|
38
49
|
export function deriveAppearance(name) {
|
|
39
50
|
const seed = normalizeName(name);
|
|
40
51
|
if (!seed)
|
|
41
52
|
return { ...originalAppearance };
|
|
42
53
|
const draw = (dimension) => hashSeed(JSON.stringify(['dotcraft-avatar', 1, seed, dimension])) / 0x100000000;
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
const appearance = { ...originalAppearance, palette: Math.floor(draw('palette') * 12), baseFace: Math.floor(draw('face') * 5) };
|
|
55
|
+
const occupied = new Set();
|
|
56
|
+
for (const slot of slots) {
|
|
57
|
+
if (draw(`${slot}-presence`) >= slotPresence[slot])
|
|
58
|
+
continue;
|
|
59
|
+
const slotItems = items.filter(item => item.slot === slot);
|
|
60
|
+
const tiers = rarities.filter(rarity => slotItems.some(item => item.rarity === rarity));
|
|
61
|
+
let roll = draw(`${slot}-rarity`) * tiers.reduce((sum, rarity) => sum + rarityWeights[rarity], 0);
|
|
62
|
+
let rarity = tiers[tiers.length - 1];
|
|
63
|
+
for (const tier of tiers) {
|
|
64
|
+
roll -= rarityWeights[tier];
|
|
65
|
+
if (roll < 0) {
|
|
66
|
+
rarity = tier;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// A tier with no zone-compatible item leaves the slot empty, so rare combinations stay rare.
|
|
71
|
+
const pool = slotItems.filter(item => item.rarity === rarity && item.zones.every(zone => !occupied.has(zone)));
|
|
72
|
+
if (!pool.length)
|
|
73
|
+
continue;
|
|
74
|
+
const pick = pool[Math.floor(draw(`${slot}-item`) * pool.length)];
|
|
75
|
+
appearance[slot] = pick.id;
|
|
76
|
+
for (const zone of pick.zones)
|
|
77
|
+
occupied.add(zone);
|
|
78
|
+
}
|
|
79
|
+
return appearance;
|
|
48
80
|
}
|
|
49
81
|
export function sampleSeed(seed, round, index) {
|
|
50
82
|
return JSON.stringify([seed, round, index]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearanceModel.js","sourceRoot":"","sources":["../src/appearanceModel.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"appearanceModel.js","sourceRoot":"","sources":["../src/appearanceModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,11 +72,45 @@
|
|
|
72
72
|
calc(h + 27.55)) 36%, transparent));
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
@keyframes dca-skin-energy {
|
|
76
|
+
0%, 100% { opacity: 0; }
|
|
77
|
+
50% { opacity: var(--dca-skin-energy-peak); }
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
[data-mascot-effort='medium'] .dca-robot[data-effects='live'] .dca-skin-energy {
|
|
81
|
+
--dca-skin-energy-peak: .16;
|
|
82
|
+
animation: dca-skin-energy 6s ease-in-out infinite;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[data-mascot-effort='high'] .dca-robot[data-effects='live'] .dca-skin-energy {
|
|
86
|
+
--dca-skin-energy-peak: .26;
|
|
87
|
+
animation: dca-skin-energy 3.8s ease-in-out infinite;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
[data-mascot-effort='extraHigh'] .dca-robot[data-effects='live'] .dca-skin-energy {
|
|
91
|
+
--dca-skin-energy-peak: .38;
|
|
92
|
+
animation: dca-skin-energy 2.8s ease-in-out infinite;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[data-mascot-effort='medium'] .dca-robot[data-effects='live'] :is(.dca-skin-lava, .dca-skin-galaxy, .dca-skin-holo) stop { animation-duration: 4.6s; }
|
|
96
|
+
[data-mascot-effort='high'] .dca-robot[data-effects='live'] :is(.dca-skin-lava, .dca-skin-galaxy, .dca-skin-holo) stop { animation-duration: 3.2s; }
|
|
97
|
+
[data-mascot-effort='extraHigh'] .dca-robot[data-effects='live'] :is(.dca-skin-lava, .dca-skin-galaxy, .dca-skin-holo) stop { animation-duration: 2.2s; }
|
|
98
|
+
[data-mascot-effort='medium'] .dca-robot[data-effects='live'] .dca-fx-sheen { animation-duration: 3.4s; }
|
|
99
|
+
[data-mascot-effort='high'] .dca-robot[data-effects='live'] .dca-fx-sheen { animation-duration: 2.4s; }
|
|
100
|
+
[data-mascot-effort='extraHigh'] .dca-robot[data-effects='live'] .dca-fx-sheen { animation-duration: 1.6s; }
|
|
101
|
+
[data-mascot-effort='high'] .dca-robot[data-effects='live'] [data-skin-overlay='galaxy'] .dca-fx-node { animation-duration: 1.1s; }
|
|
102
|
+
[data-mascot-effort='extraHigh'] .dca-robot[data-effects='live'] [data-skin-overlay='galaxy'] .dca-fx-node { animation-duration: .7s; }
|
|
103
|
+
|
|
75
104
|
[data-mascot-context='max'] .dca-robot {
|
|
76
105
|
animation: composer-mascot-max-overdrive-edge 3.8s ease-in-out infinite;
|
|
77
106
|
will-change: filter;
|
|
78
107
|
}
|
|
79
108
|
|
|
109
|
+
[data-mascot-context='max'] .dca-robot[data-effects='live'] .dca-skin-energy {
|
|
110
|
+
--dca-skin-energy-peak: .3;
|
|
111
|
+
animation: dca-skin-energy 3.8s ease-in-out infinite;
|
|
112
|
+
}
|
|
113
|
+
|
|
80
114
|
[data-mascot-context='max'] .dca-robot .dca-paint-body stop:nth-child(1) {
|
|
81
115
|
animation: composer-mascot-max-coat-dark 3.8s ease-in-out infinite;
|
|
82
116
|
}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export interface
|
|
3
|
-
id: DecorationId;
|
|
1
|
+
import { type Item, type ItemId, type Rarity, type Series, type Slot } from './items.js';
|
|
2
|
+
export interface DecorationCopy {
|
|
4
3
|
name: string;
|
|
5
|
-
category: 'Hats' | 'Novelty' | 'Accessories';
|
|
6
4
|
feature: string;
|
|
7
5
|
colors: readonly string[];
|
|
8
6
|
mount: string;
|
|
9
7
|
}
|
|
8
|
+
export type Decoration = Item & DecorationCopy;
|
|
9
|
+
export declare const slotLabels: Record<Slot, string>;
|
|
10
|
+
export declare const rarityMeta: Record<Rarity, {
|
|
11
|
+
label: string;
|
|
12
|
+
color: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const seriesLabels: Record<Series, string>;
|
|
10
15
|
export declare const decorations: Decoration[];
|
|
11
|
-
export declare const decorationOf: (id:
|
|
12
|
-
export declare const decorationName: (id:
|
|
13
|
-
export declare function
|
|
16
|
+
export declare const decorationOf: (id: ItemId) => Decoration;
|
|
17
|
+
export declare const decorationName: (id: ItemId | "none") => string;
|
|
18
|
+
export declare function decorationsOf(slot: Slot): Decoration[];
|
|
19
|
+
export declare function decorationsByRarity(rarity: Rarity): Decoration[];
|
|
20
|
+
export declare function decorationsBySeries(series: Series): Decoration[];
|
|
21
|
+
export declare const rarityOrder: (rarity: Rarity) => number;
|
|
22
|
+
export declare const slotOrder: (slot: Slot) => number;
|
|
23
|
+
export declare const seriesOrder: (series: Series) => number;
|
|
14
24
|
//# sourceMappingURL=decorationCatalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorationCatalog.d.ts","sourceRoot":"","sources":["../src/decorationCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decorationCatalog.d.ts","sourceRoot":"","sources":["../src/decorationCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAEnI,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd;AACD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,cAAc,CAAA;AAE9C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAA4E,CAAA;AACxH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAMvE,CAAA;AACD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAE/C,CAAA;AAiFD,eAAO,MAAM,WAAW,EAAE,UAAU,EAAuD,CAAA;AAC3F,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,KAAG,UAA8C,CAAA;AACxF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,GAAG,MAAM,WAA2C,CAAA;AAC7F,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE,CAA0D;AACjH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAA8D;AAC/H,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAA8D;AAC/H,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,WAA6B,CAAA;AACvE,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,WAAwB,CAAA;AAC5D,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,WAA8B,CAAA"}
|
|
@@ -1,37 +1,96 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
1
|
+
import { itemOf, items, rarities, seriesIds, slots } from './items.js';
|
|
2
|
+
export const slotLabels = { head: 'Head', face: 'Face', hand: 'Hand', back: 'Back', skin: 'Skin' };
|
|
3
|
+
export const rarityMeta = {
|
|
4
|
+
common: { label: 'Common', color: '#8a94a6' },
|
|
5
|
+
uncommon: { label: 'Uncommon', color: '#3f9d5b' },
|
|
6
|
+
rare: { label: 'Rare', color: '#3b7be8' },
|
|
7
|
+
epic: { label: 'Epic', color: '#8b5cf6' },
|
|
8
|
+
legendary: { label: 'Legendary', color: '#e0962c' },
|
|
9
|
+
};
|
|
10
|
+
export const seriesLabels = {
|
|
11
|
+
everyday: 'Everyday', dev: 'Dev culture', tech: 'Tech & cyber', fantasy: 'Fantasy', nature: 'Nature', snack: 'Snack', critters: 'Critters',
|
|
12
|
+
};
|
|
13
|
+
const held = 'Screen-left hand; shares the arm pivot, stows for laptop and question sign, then restores';
|
|
14
|
+
const copy = {
|
|
15
|
+
'baseball-cap': { name: 'Baseball cap', feature: 'Rounded crown with a short right-facing brim', colors: ['#e87967', '#b94f50', '#f5a18c'], mount: 'Crown overlaps the top edge; the brim stays inside the body' },
|
|
16
|
+
'bucket-hat': { name: 'Bucket hat', feature: 'Flat top with a continuous downward brim', colors: ['#94bda6', '#5b887a', '#bed8c1'], mount: 'Brim follows the top edge with a slight center overlap' },
|
|
17
|
+
beret: { name: 'Beret', feature: 'Soft left-leaning crown with a short stem', colors: ['#b17498', '#784c71', '#cf9db5'], mount: 'Narrow band rests on top; the crown leans left' },
|
|
18
|
+
beanie: { name: 'Beanie', feature: 'Rounded crown and wide folded cuff with minimal texture', colors: ['#e9a653', '#bc753d', '#f7c676'], mount: 'Folded cuff sits on the top edge; crown stays centered' },
|
|
19
|
+
'top-hat': { name: 'Top hat', feature: 'Tall crown, narrow brim, and burgundy band', colors: ['#465069', '#293247', '#c96e85'], mount: 'Narrow brim rests flat on top; crown tapers at its base' },
|
|
20
|
+
'wizard-hat': { name: 'Wizard hat', feature: 'Curved point, wide brim, and gold star', colors: ['#8773c1', '#594b93', '#f4cc75'], mount: 'Wide brim rests on top; point curves into the center safe area' },
|
|
21
|
+
'chef-hat': { name: 'Chef hat', feature: 'Three-lobed puff with an upright band', colors: ['#f5eee3', '#d7caba', '#fffaf1'], mount: 'Band rests at the center of the top edge' },
|
|
22
|
+
'party-hat': { name: 'Party hat', feature: 'Cone with two colored bands and a pom-pom', colors: ['#ea9baf', '#8075b7', '#f5d07b'], mount: 'Shallow curved base follows the top of the body' },
|
|
23
|
+
crown: { name: 'Crown', feature: 'Three rounded points with a central sapphire', colors: ['#efc65c', '#c99139', '#73b8cc'], mount: 'Curved gold band wraps the top edge; all points face up' },
|
|
24
|
+
'hard-hat': { name: 'Hard hat', feature: 'Rounded shell, center ridge, and short front brim', colors: ['#f5bd48', '#d68d32', '#ffdc79'], mount: 'Short brim overlaps the top edge; ridge stays centered' },
|
|
25
|
+
nightcap: { name: 'Nightcap', feature: 'Soft drooping point with a pom-pom', colors: ['#789cc9', '#4c709f', '#dce8f4'], mount: 'Soft band follows the top edge; pom-pom stays upper right' },
|
|
26
|
+
'straw-hat': { name: 'Straw hat', feature: 'Low round crown, wide oval brim, and red band', colors: ['#e8c78a', '#c49b5e', '#c57568'], mount: 'Wide brim rests flat without entering the arm areas' },
|
|
27
|
+
poop: { name: 'Poop', feature: 'Three rounded layers with a playful curled tip', colors: ['#a97b5f', '#805840', '#c49976'], mount: 'Wide bottom layer rests directly on top; color separates each layer' },
|
|
28
|
+
banana: { name: 'Banana', feature: 'Crescent fruit with stems and an inner color plane', colors: ['#f3cf62', '#dbaa40', '#89705a'], mount: 'Outer curve touches the top; both stems point up' },
|
|
29
|
+
'fried-egg': { name: 'Fried egg', feature: 'Irregular rounded white with a raised golden yolk', colors: ['#fff9e8', '#e6d9bb', '#f3be43'], mount: 'White spreads across the top; raised yolk defines the silhouette' },
|
|
30
|
+
'rubber-duck': { name: 'Rubber duck', feature: 'Round head, flat orange bill, and short raised tail', colors: ['#f6d05e', '#e4ae3e', '#e58b4b'], mount: 'Belly rests flat on top, with bill left and tail right' },
|
|
31
|
+
'paper-boat': { name: 'Paper boat', feature: 'Folded hull with a central triangular plane', colors: ['#d6e7eb', '#92b5c1', '#f1f7f5'], mount: 'Folded hull edge rests on top; main fold stays centered' },
|
|
32
|
+
'traffic-cone': { name: 'Traffic cone', feature: 'Orange cone with a white band and flat base', colors: ['#ed985f', '#c96c43', '#fff0dd'], mount: 'Flat base rests on top; cone tapers upward' },
|
|
33
|
+
sprout: { name: 'Sprout', feature: 'Short stem with two leaves pointing in different directions', colors: ['#89b875', '#537f59', '#b5d38f'], mount: 'Stem grows directly from the top edge without a pot or base' },
|
|
34
|
+
donut: { name: 'Donut', feature: 'Clear center hole, half-ring of icing, and a few sprinkles', colors: ['#dbab70', '#bf8456', '#e5a0b3'], mount: 'Lower curve touches the top; center remains an open cutout' },
|
|
35
|
+
'ringed-planet': { name: 'Ringed planet', feature: 'Banded sand-colored planet inside a tilted pale ring with a soft glow', colors: ['#d9b07a', '#b8875a', '#f1e3c8'], mount: 'Ring underside touches the top edge; the planet floats above the center' },
|
|
36
|
+
'cat-ears': { name: 'Cat ears', feature: 'Two tan triangular ears with pink inner planes', colors: ['#c9a27e', '#f2a0b4'], mount: 'Ears rise from the top corners; nothing sits between them' },
|
|
37
|
+
'cowboy-hat': { name: 'Cowboy hat', feature: 'Tall creased crown over a wide curved brim with a dark band', colors: ['#b98352', '#a8734a', '#6e4a2e'], mount: 'Brim rests across the top edge and stays clear of the arms' },
|
|
38
|
+
mushroom: { name: 'Mushroom', feature: 'Red cap with cream spots on a short cream stem', colors: ['#e8654f', '#fff4ef', '#fff1dc'], mount: 'Stem stands on the top edge; the cap overhangs both sides' },
|
|
39
|
+
'shark-fin': { name: 'Shark fin', feature: 'Gray dorsal fin with a lighter leading plane', colors: ['#8b95a5', '#a7b1c0'], mount: 'Fin base spans the top edge center' },
|
|
40
|
+
'propeller-cap': { name: 'Propeller cap', feature: 'Yellow and red cap dome with a spinning propeller on a button', colors: ['#f6b500', '#e8654f', '#c9d2ff'], mount: 'Dome overlaps the top edge; the propeller spins flat at full size' },
|
|
41
|
+
'graduation-cap': { name: 'Graduation cap', feature: 'Black mortarboard with a gold button and a swinging tassel', colors: ['#2b2f3a', '#3c4658', '#f6b500'], mount: 'Skull cap rests on the top edge; the board floats above it' },
|
|
42
|
+
'ice-cream': { name: 'Ice cream', feature: 'Strawberry scoop with an upright cone and a cherry', colors: ['#f2a0b4', '#e0ad84', '#e8654f'], mount: 'Scoop rests on the top edge; the cone points up' },
|
|
43
|
+
'flower-crown': { name: 'Flower crown', feature: 'Green wreath with alternating pink and yellow blossoms', colors: ['#89b875', '#f2a0b4', '#f6b500'], mount: 'Wreath follows the top edge without a brim' },
|
|
44
|
+
'pirate-hat': { name: 'Pirate hat', feature: 'Black tricorn with an upturned brim and a white skull mark', colors: ['#2b2f3a', '#3c4658', '#ffffff'], mount: 'Brim rests on the top edge; points stay clear of the arms' },
|
|
45
|
+
lightning: { name: 'Lightning', feature: 'Yellow bolt standing upright with a breathing glow', colors: ['#ffcf11', '#fff3c4'], mount: 'Lower tip touches the top edge center' },
|
|
46
|
+
'crystal-cluster': { name: 'Crystal cluster', feature: 'Three violet crystals with a lighter facet and a breathing glow', colors: ['#8b5cf6', '#a78bfa', '#c4b5fd'], mount: 'Crystal bases sit on the top edge' },
|
|
47
|
+
ufo: { name: 'UFO', feature: 'Hovering saucer with a glass dome, blinking lights and a tractor beam', colors: ['#8b95a5', '#a2c5d1', '#c7f6ff'], mount: 'Saucer floats above the head; the beam lands on the top edge' },
|
|
48
|
+
shades: { name: 'Shades', feature: 'Two dark lenses with a short bridge pushed up on the brow', colors: ['#2b2f3a', '#6b7280'], mount: 'Fits within the forehead band above the screen' },
|
|
49
|
+
'forehead-goggles': { name: 'Forehead goggles', feature: 'Two blue-gray lenses with a center bridge', colors: ['#8b7568', '#a2c5d1', '#dec8ae'], mount: 'Fits within the forehead band; bridge anchors above the screen' },
|
|
50
|
+
'mecha-faceplate': { name: 'Mecha faceplate', feature: 'White face armor with a dark visor band, angular yellow-green eyes, a red chin plate and two vents', colors: ['#f4f6fb', '#1d2433', '#d94a3a'], mount: 'Replaces the face inside the white screen frame; the eyes change light, not shape' },
|
|
51
|
+
'pixel-screen': { name: 'Pixel screen', feature: 'Dark monitor with phosphor-green pixel eyes: blocks, a blocky smile, a loading bar and dim dashes', colors: ['#1f2a3a', '#7dff8a'], mount: 'Replaces the face inside the white screen frame; pixel glyphs carry all four expressions' },
|
|
52
|
+
'gold-faceplate': { name: 'Gold faceplate', feature: 'Armored gold plate whose fixed eye slits change light, not shape: cyan idle, warm flare, amber scan, dim ember', colors: ['#efc04a', '#bf8a2a', '#6fdcff'], mount: 'Replaces the face inside the white screen frame; light carries all four expressions' },
|
|
53
|
+
'neon-visor': { name: 'Neon visor', feature: 'Full smoked visor with a pair of LED eyes that lid, squint and rest, plus a passing scan line', colors: ['#1d2433', '#4de3ff', '#c7f6ff'], mount: 'Replaces the face inside the white screen frame; the LED pair carries all four expressions' },
|
|
54
|
+
'task-board': { name: 'Task board', feature: 'White planning board with connected role-color markers and a yellow accent', colors: ['#ffffff', '#3161f7', '#f6b500'], mount: held },
|
|
55
|
+
wrench: { name: 'Wrench', feature: 'White open-ended wrench with role-color outlines and a yellow handle inset', colors: ['#ffffff', '#3161f7', '#f6b500'], mount: held },
|
|
56
|
+
'coffee-mug': { name: 'Coffee mug', feature: 'White mug with a role-color band and rising steam', colors: ['#ffffff', '#3161f7', '#5a3c2a'], mount: held },
|
|
57
|
+
shield: { name: 'Shield', feature: 'White shield with a role-color outline and upright check', colors: ['#ffffff', '#3161f7', '#f6b500'], mount: held },
|
|
58
|
+
magnifier: { name: 'Magnifier', feature: 'Upright white lens frame with a role-color outline and a lower grip', colors: ['#ffffff', '#3161f7', '#f6b500'], mount: held },
|
|
59
|
+
'control-panel': { name: 'Control panel', feature: 'White control panel with dark rails and role-color and yellow knobs', colors: ['#ffffff', '#3161f7', '#f6b500'], mount: held },
|
|
60
|
+
'magic-wand': { name: 'Magic wand', feature: 'Dark wand tipped with a gold star and drifting sparkles', colors: ['#3b2f5c', '#f6b500', '#fff3c4'], mount: held },
|
|
61
|
+
'energy-blade': { name: 'Energy blade', feature: 'Compact hilt with a blade that cycles cyan, magenta and green while it extends and retracts', colors: ['#2a3140', '#4de3ff', '#e6fbff'], mount: `${held}; the blade rises beside the body, never across the screen` },
|
|
62
|
+
paintbrush: { name: 'Paintbrush', feature: 'Wooden brush with a steel ferrule and a role-color paint tip', colors: ['#e0ad84', '#8b95a5', '#3161f7'], mount: held },
|
|
63
|
+
'boba-tea': { name: 'Boba tea', feature: 'White cup of milk tea with dark pearls and a yellow straw', colors: ['#ffffff', '#e0ad84', '#3c4658'], mount: held },
|
|
64
|
+
gamepad: { name: 'Gamepad', feature: 'White controller with a role-color d-pad and two buttons', colors: ['#ffffff', '#3161f7', '#f6b500'], mount: held },
|
|
65
|
+
flag: { name: 'Flag', feature: 'Steel pole with a waving role-color pennant', colors: ['#8b95a5', '#3161f7'], mount: `${held}; the pennant rises beside the body` },
|
|
66
|
+
lantern: { name: 'Lantern', feature: 'Red paper lantern with dark caps and a warm breathing glow', colors: ['#e8654f', '#3c4658', '#ffd970'], mount: held },
|
|
67
|
+
staff: { name: 'Staff', feature: 'Wooden staff topped with a glowing orb that shifts violet, cyan and pink', colors: ['#8a6520', '#8b5cf6', '#c4b5fd'], mount: `${held}; the orb rises beside the body` },
|
|
68
|
+
cape: { name: 'Cape', feature: 'Crimson cape that flares wide below the body with a lighter lining', colors: ['#b23a48', '#d65a68'], mount: 'Collar sits at the shoulders behind the body; the flares show beside and below the base' },
|
|
69
|
+
'crescent-moon': { name: 'Crescent moon', feature: 'Yellow crescent rising behind the head with a small star', colors: ['#f6d365', '#fff3c4'], mount: 'Moon shows behind the upper-left of the head' },
|
|
70
|
+
jetpack: { name: 'Jetpack', feature: 'Two steel tanks with red caps and flickering flames', colors: ['#8b95a5', '#e8654f', '#ffb347'], mount: 'Tanks show beside both arms behind the body; flames flicker below' },
|
|
71
|
+
'star-trail': { name: 'Star trail', feature: 'Three gold four-point stars twinkling beside the body', colors: ['#f6b500', '#fff3c4'], mount: 'Stars float beside the body and twinkle at full size' },
|
|
72
|
+
balloons: { name: 'Balloons', feature: 'Three balloons on strings rising beside the head', colors: ['#e8654f', '#f6b500', '#4f7cf6'], mount: 'Strings meet behind the left shoulder; the bunch bobs at full size' },
|
|
73
|
+
'bat-wings': { name: 'Bat wings', feature: 'Two scalloped violet wings with darker membranes that flap', colors: ['#5b3a8c', '#3d2563'], mount: 'Wings spread from behind the shoulders and stay clear of the head' },
|
|
74
|
+
'butterfly-wings': { name: 'Butterfly wings', feature: 'Two pink two-lobed wings with cream inner planes that flap', colors: ['#f2a0b4', '#fff3c4'], mount: 'Wings spread from behind the shoulders' },
|
|
75
|
+
halo: { name: 'Halo', feature: 'Flat golden aureole centered on the antenna light with a breathing glow', colors: ['#f6b500', '#ffe08a', '#fff7dc'], mount: 'Ring sits behind the light and hats; the light disc covers its center' },
|
|
76
|
+
'angel-wings': { name: 'Angel wings', feature: 'Two white feathered wings with a soft glow and a slow flap', colors: ['#ffffff', '#eef1ff', '#c9d2ff'], mount: 'Wings spread from behind the shoulders' },
|
|
77
|
+
'sun-rays': { name: 'Sun rays', feature: 'Twelve alternating gold rays turning slowly behind the body', colors: ['#f6b500', '#ffcf11'], mount: 'Rays radiate from the body center' },
|
|
78
|
+
'orbit-ring': { name: 'Orbit ring', feature: 'Tilted orbit belt with three bodies that circle in front of and behind the robot', colors: ['#b9c4ff', '#f6b500', '#ff9ad9'], mount: 'Belt crosses low around the body; bodies pass in front below the screen' },
|
|
79
|
+
'dragon-wings': { name: 'Dragon wings', feature: 'Two large crimson wings with dark membranes and ember tips that flap', colors: ['#b23a48', '#7f2634', '#ffb347'], mount: 'Wings spread wide from behind the shoulders' },
|
|
80
|
+
stripes: { name: 'Stripes', feature: 'Diagonal light stripes across the body and arms', colors: ['#ffffff'], mount: 'One continuous overlay across the body and arms; reads through every palette' },
|
|
81
|
+
chrome: { name: 'Chrome', feature: 'Mirror steel with a horizon line and a sweeping sheen', colors: ['#f4f7fb', '#9aa6b8', '#3c4658'], mount: 'Replaces the body and arm paint; face marks keep the palette' },
|
|
82
|
+
gold: { name: 'Gold', feature: 'Polished gold with a sweeping sheen', colors: ['#f6d365', '#b8862c', '#fff3c4'], mount: 'Replaces the body and arm paint; face marks keep the palette' },
|
|
83
|
+
lava: { name: 'Lava', feature: 'Molten rock whose glow flows between ember red and bright orange', colors: ['#e8451f', '#ffb347', '#4a1208'], mount: 'Replaces the body and arm paint; face marks keep the palette' },
|
|
84
|
+
holographic: { name: 'Holographic', feature: 'Iridescent foil whose colors flow across the body', colors: ['#ff8ad4', '#8ad8ff', '#c9ff8a'], mount: 'Replaces the body and arm paint; face marks keep the palette' },
|
|
85
|
+
galaxy: { name: 'Galaxy', feature: 'Deep space nebula that drifts between violet and blue with twinkling stars', colors: ['#4c1d95', '#2563eb', '#ffffff'], mount: 'Replaces the body and arm paint; stars twinkle on the surface' },
|
|
86
|
+
};
|
|
87
|
+
export const decorations = items.map(item => ({ ...item, ...copy[item.id] }));
|
|
88
|
+
export const decorationOf = (id) => ({ ...itemOf(id), ...copy[id] });
|
|
89
|
+
export const decorationName = (id) => id === 'none' ? 'None' : copy[id].name;
|
|
90
|
+
export function decorationsOf(slot) { return decorations.filter(item => item.slot === slot); }
|
|
91
|
+
export function decorationsByRarity(rarity) { return decorations.filter(item => item.rarity === rarity); }
|
|
92
|
+
export function decorationsBySeries(series) { return decorations.filter(item => item.series === series); }
|
|
93
|
+
export const rarityOrder = (rarity) => rarities.indexOf(rarity);
|
|
94
|
+
export const slotOrder = (slot) => slots.indexOf(slot);
|
|
95
|
+
export const seriesOrder = (series) => seriesIds.indexOf(series);
|
|
37
96
|
//# sourceMappingURL=decorationCatalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorationCatalog.js","sourceRoot":"","sources":["../src/decorationCatalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decorationCatalog.js","sourceRoot":"","sources":["../src/decorationCatalog.ts"],"names":[],"mappings":"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"}
|