4.3 KiB
Content and visual guide
Visual source of truth
Do not invent tool-UI-only item designs. js/item_visual_registry.js is the canonical descriptor table for drift-prone item visuals; field drawing in js/items.js and generated previews must consume the same concepts. Tool icons in assets/ui/tool_*.webp are generated previews and must match field rendering. Update scripts/generate_item_icons.py when changing item helper silhouettes; regenerate icons before shipping.
Canonical helper mapping:
- Weather rain overlay:
drawRaininrender.js; diagonal blue line streaks only, never item droplets. - Horizontal item droplet:
drawOvalWaterDropSprite; used by fallen water items, zunda juice, mercury. Same silhouette; recolor only. - Sleep drug:
drawSleepTabletSprite. - Laxative:
drawLaxativeTabletSprite; zunchi-motif tablet. - Mystery drug:
drawMysteryTabletSprite; question-mark tablet. - Ammo:
drawBulletSprite; bullet silhouette. - Protein/niteropu: powder-pile rendering in the parameter-item branch.
Tool groups
TOOL_CATEGORIES in js/data.js owns the runtime-generated tool palette. CSS colors/icons are tied to data-tool-category and data-tool values:
- Operation/observation: observe, delete, poke, pinch, new, water hose.
- Food/water/grass: zunda mochi, love mochi, fight mochi, grass, water bowl, zunda juice.
- Medicine/effects: sleep drug, laxative, protein, niteropu, ammo, mystery drug, mercury, giant drug, dwarf drug.
- Habitat/living things: zunchi, bed, nest box, ant nest, ball.
- Hazards/obstacles: stone, genkotsu, firecracker, vertical fence, horizontal fence.
When adding or renaming a tool, update TOOL_DEFINITIONS, TOOL_CATEGORIES, TEXT_CATALOG.toolTips, CSS icon mapping, generated assets/ui/tool_*.webp, and docs. Do not duplicate category membership in index.html.
Gameplay data registries
- Item effects:
TarinaiEffectRegistryowns labels, display colors, modifiers, exclusivity/removal metadata, behavior callbacks, and mystery-drug candidates. Tarinai item-effect methods are the integration layer and should route apply/tick/remove behavior through the registry. - Diseases:
TarinaiDiseaseRegistryowns disease flags, labels, symptoms/display text, cure-rule notes, and mystery-drug eligibility. - Food:
TarinaiFoodRegistryowns labels, serving classes, decay multipliers, hygiene penalties, and special effect IDs. - Weather:
TarinaiWeatherSystemowns weather transitions and rain-spawned water items. Rain visuals are diagonal line streaks only. Rain-spawned water items, water bowls, zunda juice, and mercury are separate item/object concepts. - Ants:
ANT_EXTENSION_HOOKSdocuments future ecology slots only. Do not change worker count, queen founding, carrying, or nest removal balance as part of registry/event cleanup.
UI copy and labels
Most visible UI remains Japanese. Keep user-facing naming consistent: 生活 has been renamed to 精神; selected Tarinai combat summary shows fight win rate, not cumulative defeats.
Bubble text inventory
Active Tarinai/world bubble texts:
- Symbols:
!,?,♡,.... - Sleep:
Zzz.... - Eating/poop:
もぐ,ぶりゅっ,ぶりゅ…. - Fear/fight:
はぁぁぁ!,はうー!,はっ...はっ.... - Disease/recovery:
うぅ…,はう. - Random small voice:
はう,はうぅ,はうっ,はぅ. - Item effects:
???.
When adding bubbles, keep them short; every bubble may also trigger audio.bubble.
Audio
Sound settings are in the top-right sound menu, not inside Event UI. Categories: Tarinai voice, notification, operation. js/sound_pack.js is the canonical metadata source for sound IDs, categories, gains, cooldowns, sample paths, and ID mapping; js/audio.js is the playback engine. Missing samples fall back to synthetic audio. Notification and operation sounds are intentionally louder than voice sounds.
The Event card owns in-page push toast settings for log kinds: death, accident, birth, fight, food, weather, grass, relation. Those settings are separate from audio categories and persist through localStorage.
Ecology and credits
Ecology dialog card copy and images come from TEXT_CATALOG.ecologyCards; image paths should use real assets or generated WebP assets. Credits are hardcoded in index.html; update them when adding new external media sources.