// SVG ASSETS DATABASE
// High-quality vector graphics for core game elements.
// Offline-first, reliable, lightweight.
window.SVG_ASSETS = {
"default": ``,
// --- SKILL CHECK ITEMS (EXISTING) ---
"Apple": ``,
"Forest": ``,
"Three": ``,
"Bus": ``,
"Sport": ``,
"Cold": ``,
"Rain": ``,
"Hour": ``,
"Write": ``,
"Banana": ``,
"Dog": ``,
"Cat": ``,
"Car": ``,
"House": ``,
// --- NEW ANIMALS ---
"Lion": ``,
"Tiger": ``,
"Bear": ``,
"Wolf": ``,
"Fox": ``,
"Rabbit": ``,
"Mouse": ``,
"Elephant": ``,
"Monkey": ``,
"Zebra": ``,
"Giraffe": ``,
"Cow": ``,
"Pig": ``,
"Sheep": ``,
"Duck": ``,
// --- NUMBERS ---
"One": ``,
"Two": ``,
"Four": ``,
"Five": ``,
"Six": ``,
"Seven": ``,
"Eight": ``,
"Nine": ``,
"Ten": ``,
"Eleven": ``,
"Twelve": ``,
"Twenty": ``,
"Hundred": ``,
// --- COLORS ---
"Red": ``,
"Blue": ``,
"Green": ``,
"Yellow": ``,
"Black": ``,
"White": ``,
"Pink": ``,
"Purple": ``,
"Orange": ``,
"Brown": ``,
"Grey": ``,
"Gold": ``,
"Silver": ``,
"Violet": ``,
"Indigo": ``,
"Turquoise": ``,
"Beige": ``,
"First": ``,
"Second": ``,
"Third": ``,
"Plus": ``,
"Mother": ``,
"Grandmother": ``,
"Grandfather": ``,
"Son": ``,
"Aunt": ``,
"Cousin": ``,
"Woman": ``,
"Boy": ``,
"Wife": ``,
"Water": ``,
"Cheese": ``,
"Meat": ``,
"Cake": ``,
// --- BODY PARTS ---
"Hand": ``,
"Eye": ``,
"Ear": ``,
"Face": ``,
"Finger": ``,
"Shoulder": ``,
"Neck": ``,
"Back": ``,
"Stomach": ``,
"Brain": ``,
// --- CLOTHING ---
"Shirt": ``,
"Pants": ``,
"Dress": ``,
"Shoes": ``,
"Hat": ``,
"Socks": ``,
"Jacket": ``,
// --- HOUSEHOLD ITEMS ---
"Table": ``,
"Chair": ``,
"Bed": ``,
"Lamp": ``,
"Door": ``,
"Window": ``,
"Book": ``,
"Television": ``,
"Phone": ``,
// --- NATURE ---
"Tree": ``,
"Flower": ``,
"Sun": ``,
"Moon": ``,
"Star": ``,
"Cloud": ``,
"River": ``,
"Mountain": ``,
// --- ACTIONS ---
"Run": ``,
"Jump": ``,
"Sleep": ``,
"Eat": ``,
"Drink": ``,
"Read": ``,
"Play": ``,
"Sing": ``,
"Dance": ``,
"Walk": ``
"Chocolate": ``,
"Juice": ``,
"Coffee": ``,
"Potato": ``,
"Cream": ``,
"Dark": ``,
"Light": ``,
// --- RUSSIAN WORDS ---
"Собака": ``,
"Рыба": ``,
"Птица": ``,
"Тигр": ``,
"Обезьяна": ``,
"Зебра": ``,
"Корова": ``,
"Свинья": ``,
"Овца": ``,
"Лошадь": ``,
"Синий": ``,
"Желтый": ``,
"Белый": ``,
"Розовый": ``,
"Фиолетовый": ``,
"Оранжевый": ``,
"Серый": ``,
"Индиго": ``,
"Кремовый": ``,
"Темный": ``,
"Светлый": ``,
"Минус": ``,
"Мать": ``,
"Папа": ``,
"Сестра": ``,
"Брат": ``,
"Дочь": ``,
"Дядя": ``,
"Родители": ``,
"Семья": ``,
"Малыш": ``,
"Мужчина": ``,
"Девочка": ``,
"Друг": ``,
"Жена": ``,
"Яблоко": ``,
"Апельсин": ``,
"Хлеб": ``,
"Молоко": ``,
"Яйцо": ``,
"Курица (еда)": ``,
"Рыба (еда)": ``,
"Пицца": ``,
"Чай": ``,
"Картофель": ``,
"Помидор": ``,
"Нога": ``,
"Голова": ``,
"Нос": ``,
"Ухо": ``,
"Рот": ``,
"Зуб": ``,
"Волосы": ``,
"Лицо": ``,
"Палец": ``,
"Ступня": ``,
"Колено": ``,
"Плечо": ``,
"Шея": ``,
"Спина": ``,
"Живот": ``,
"Сердце": ``,
"Мозг": ``,
"Кость": ``,
"Шляпа": ``,
"Рубашка": ``,
"Платье": ``,
"Юбка": ``,
"Брюки": ``,
"Джинсы": ``,
"Обувь": ``,
"Носки": ``,
"Пальто": ``
};
// UTIL: Encode SVG string to Data URI
window.svgToDataUri = function(svg) {
const encoded = encodeURIComponent(svg);
return `data:image/svg+xml;charset=utf-8,${encoded}`;
}
// GENERATOR: Create simple, unique SVG for common terms
window.generateWordSvg = function(term) {
const t = String(term || 'default').toLowerCase();
const bg = {
jungle: '#14532d', crystal: '#1e3a8a', space: '#1f2937'
};
const base = (color) => `\n ";
// Animals
if(['fish'].includes(t)) {
const svg = base('#0ea5e9') + `\n \n \n \n ` + end;
return svg;
}
if(['pig'].includes(t)) {
const svg = base('#f472b6') + `\n \n \n \n \n \n ` + end;
return svg;
}
if(['tiger'].includes(t)) {
const svg = base('#f59e0b') + `\n \n ` + end;
return svg;
}
if(['lion'].includes(t)) {
const svg = base('#d97706') + `\n \n \n \n \n ` + end;
return svg;
}
if(['bird'].includes(t)) {
const svg = base('#0891b2') + `\n \n \n \n ` + end;
return svg;
}
if(['cow'].includes(t)) {
const svg = base('#a3e635') + `\n \n \n \n ` + end;
return svg;
}
// Grammar words
if(['for'].includes(t)) {
const svg = base('#9333ea') + `\n \n \n \n \n FOR` + end;
return svg;
}
if(['since'].includes(t)) {
const svg = base('#2563eb') + `\n \n \n \n SINCE` + end;
return svg;
}
if(['during'].includes(t)) {
const svg = base('#14b8a6') + `\n \n \n \n \n DURING` + end;
return svg;
}
if(['while'].includes(t)) {
const svg = base('#ef4444') + `\n \n \n \n WHILE` + end;
return svg;
}
// Default emblem with initial letter and hashed color
const hash = Array.from(t).reduce((h,c)=> (h*31 + c.charCodeAt(0))>>>0, 7);
const hue = hash % 360;
const color = `hsl(${hue}, 75%, 55%)`;
const svg = base(color) + `\n ${String(term).slice(0,1).toUpperCase()}\n ${term}` + end;
return svg;
}
// API: Unified getter for any term
window.getSvgDataUri = function(key) {
const term = String(key || 'default');
const svg = (window.SVG_ASSETS && window.SVG_ASSETS[term]) ? window.SVG_ASSETS[term] : window.generateWordSvg(term);
return window.svgToDataUri(svg);
}
// HELPER: Convert SVG string to Data URI
window.getSvgDataUri = function(key) {
const svg = window.SVG_ASSETS[key] || window.SVG_ASSETS["default"];
const encoded = encodeURIComponent(svg);
return `data:image/svg+xml;charset=utf-8,${encoded}`;
};
// LEVEL ICON GENERATOR (Dynamic)
window.getLevelSvg = function(level) {
let themeColor = "#48bb78"; // Jungle Green
let icon = "";
if (level <= 10) {
// Jungle Theme
themeColor = "#48bb78";
icon = ``;
} else if (level <= 20) {
// Crystal Cave Theme
themeColor = "#805ad5";
icon = ``;
} else {
// Space Theme
themeColor = "#2c5282";
icon = ``;
}
const svg = `
`;
const encoded = encodeURIComponent(svg);
return `data:image/svg+xml;charset=utf-8,${encoded}`;
};
// MASCOT GENERATOR
window.getMascotSvg = function(mood) {
let eyes = "";
let mouth = "";
if(mood === 'happy') {
eyes = ``;
mouth = ``;
} else if (mood === 'sad') {
eyes = ``;
mouth = ``;
} else { // excited
eyes = ``;
mouth = ``;
}
const svg = `
`;
const encoded = encodeURIComponent(svg);
return `data:image/svg+xml;charset=utf-8,${encoded}`;
};
// JUNGLE BACKGROUND GENERATOR
window.getBackgroundSvg = function() {
const svg = `
`;
const encoded = encodeURIComponent(svg);
return `data:image/svg+xml;charset=utf-8,${encoded}`;
};