151 lines
4.2 KiB
JavaScript
151 lines
4.2 KiB
JavaScript
(function () {
|
|
"use strict";
|
|
|
|
const fallback = "z";
|
|
const sharedSizes = {
|
|
marker: 18,
|
|
tiny: 22,
|
|
small: 32,
|
|
medium: 44,
|
|
large: 64,
|
|
focus: 88
|
|
};
|
|
|
|
const characters = {
|
|
"young z": {
|
|
id: "young z",
|
|
displayLabel: "young z",
|
|
avatar: "/assets/avatars/young-z.jpeg",
|
|
glow: "#d8a95a",
|
|
accent: "#f4bf5f",
|
|
fallback,
|
|
expressions: {
|
|
calm: "/assets/avatars/young-z.jpeg",
|
|
happy: "/assets/avatars/young-z.jpeg",
|
|
surprised: "/assets/avatars/young-z.jpeg"
|
|
},
|
|
sizes: sharedSizes,
|
|
observatory: {
|
|
territory: "nostalgic-playful",
|
|
presenceKeywords: ["childhood", "play", "crayon", "sun", "blanket", "game", "desk", "drawing", "nostalgia"],
|
|
atmosphere: "warm childhood light",
|
|
focusScale: 1.08
|
|
}
|
|
},
|
|
z: {
|
|
id: "z",
|
|
displayLabel: "z",
|
|
avatar: "/assets/avatars/z.jpeg",
|
|
glow: "#d6c38a",
|
|
accent: "#d8c891",
|
|
fallback,
|
|
expressions: {
|
|
calm: "/assets/avatars/z.jpeg",
|
|
receptive: "/assets/avatars/z.jpeg"
|
|
},
|
|
sizes: sharedSizes,
|
|
observatory: {
|
|
territory: "archive-return",
|
|
presenceKeywords: ["website", "archive", "observer", "traveler", "making", "return", "home"],
|
|
atmosphere: "steady archive lantern",
|
|
focusScale: 1
|
|
}
|
|
},
|
|
aphy: {
|
|
id: "aphy",
|
|
displayLabel: "aphy",
|
|
avatar: "/assets/avatars/aphy.jpeg",
|
|
glow: "#7fb089",
|
|
accent: "#83d4df",
|
|
fallback,
|
|
expressions: {
|
|
calm: "/assets/avatars/aphy.jpeg",
|
|
curious: "/assets/avatars/aphy.jpeg",
|
|
thinking: "/assets/avatars/aphy.jpeg"
|
|
},
|
|
sizes: sharedSizes,
|
|
observatory: {
|
|
territory: "system-symbolic",
|
|
presenceKeywords: ["system", "terminal", "logic", "error", "debug", "console", "css", "search", "backup", "symbol"],
|
|
atmosphere: "soft diagnostic glow",
|
|
focusScale: 1.04
|
|
}
|
|
},
|
|
lima: {
|
|
id: "lima",
|
|
displayLabel: "lima",
|
|
avatar: "/assets/avatars/lima.jpg",
|
|
glow: "#d06b78",
|
|
accent: "#e7a176",
|
|
fallback,
|
|
expressions: {
|
|
calm: "/assets/avatars/lima.jpg",
|
|
happy: "/assets/avatars/lima.jpg",
|
|
protective: "/assets/avatars/lima.jpg"
|
|
},
|
|
sizes: sharedSizes,
|
|
observatory: {
|
|
territory: "warm-protective",
|
|
presenceKeywords: ["warm", "home", "safe", "protect", "kitchen", "ring", "love", "rest", "care", "light"],
|
|
atmosphere: "protective kitchen warmth",
|
|
focusScale: 1.12
|
|
}
|
|
},
|
|
"sensei chi": {
|
|
id: "sensei chi",
|
|
displayLabel: "sensei chi",
|
|
avatar: "/assets/avatars/sensei-chi.jpeg",
|
|
glow: "#75a9bd",
|
|
accent: "#9ec4be",
|
|
fallback,
|
|
expressions: {
|
|
calm: "/assets/avatars/sensei-chi.jpeg",
|
|
reflective: "/assets/avatars/sensei-chi.jpeg"
|
|
},
|
|
sizes: sharedSizes,
|
|
observatory: {
|
|
territory: "reflective-patient",
|
|
presenceKeywords: ["quiet", "reflect", "patience", "tea", "garden", "lesson", "wisdom", "still"],
|
|
atmosphere: "slow reflective tea light",
|
|
focusScale: 1.06
|
|
}
|
|
},
|
|
"future z": {
|
|
id: "future z",
|
|
displayLabel: "future z",
|
|
avatar: "/assets/avatars/future-z.jpeg",
|
|
glow: "#a58ac9",
|
|
accent: "#b7a6cf",
|
|
fallback,
|
|
expressions: {
|
|
calm: "/assets/avatars/future-z.jpeg",
|
|
nostalgic: "/assets/avatars/future-z.jpeg",
|
|
warning: "/assets/avatars/future-z.jpeg"
|
|
},
|
|
sizes: sharedSizes,
|
|
observatory: {
|
|
territory: "temporal",
|
|
presenceKeywords: ["future", "time", "age 40", "later", "return", "warning", "ordinary", "clock"],
|
|
atmosphere: "distant temporal shimmer",
|
|
focusScale: 1.1
|
|
}
|
|
}
|
|
};
|
|
|
|
function get(character) {
|
|
return characters[character] || characters[fallback];
|
|
}
|
|
|
|
function source(character, expression) {
|
|
const config = get(character);
|
|
return (config.expressions && expression && config.expressions[expression]) || config.avatar || characters[fallback].avatar;
|
|
}
|
|
|
|
window.MemoryAvatarRegistry = {
|
|
fallback,
|
|
characters,
|
|
get,
|
|
source
|
|
};
|
|
}());
|