5.1 KiB
5.1 KiB
tarinai_
AI-first entrypoint for a static browser simulation/game. Keep this file small; read deeper docs only when needed.
v39.15.70 robot cleaner tuning
- Tuned ロボ掃除機 targeting: normal speed is 60, high-speed mode is 120, and speed no longer changes based on the selected cleanup targets.
- The cleaner checks the nearest matching target every 2 seconds, then keeps trying to clean that target between scans. Contact cleanup still removes every matching object it touches.
- The 死骸 target also covers blood traces. When たりない is enabled, nearby Tarinai panic while chased and are cleaned on contact.
Read Strategy
- Start here for architecture, script order constraints, and where to look next.
- For game mechanics, UI, items, and tarinai behavior, read
GAME_FEATURES.md. - For subsystem work, read
AI_MAP.mdplus only the matching files. - For exact file inventory, run
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/ai_inventory.ps1 -Allor narrow it:powershell -NoProfile -ExecutionPolicy Bypass -File scripts/ai_inventory.ps1 ui. Python equivalent:python scripts/ai_inventory.py --all. - For machine-readable routing, read
FILES.json. - Avoid loading all assets into context; asset filenames are mostly self-describing and grouped by glob.
Runtime Shape
- No bundler;
index.htmlloads ordered global-IIFE scripts with?v=39.15.103. - Mutable runtime lives on
window; primary entities areWorld,Tarinai, items, structures, ants, family graph, weather, and save snapshots. - Update loop:
main.jscreates the world/UI loop;World.updatedelegates toTarinaiSystemOrder.update;system_order.jsruns named phases. - UI loop: pointer/tool/UI intents go through
command_dispatcher.js; canvas drawing is in render modules; side panels areui_*.js. - Generated/static app shell:
app_manifest.json,service-worker.js, andjs/version.jsmust stay version-aligned.
File Routing
index.html: DOM shell, CSS/JS load order, panels/dialogs/canvas.css/*.css: base/layout/panel/components/mobile styling.js/world*.js: world state, view, update phases, tools, placement, combat, environment, family/social, ants.js/tarinai*.js: creature state, needs, actions, behavior, social life, item effects, update pipeline, rendering.js/item*.js,js/structures*.js: item registry/runtime/lifecycle/dynamic behavior/rendering plus structures.js/simulation*.js,js/system_order.js,js/sim_core.js: concrete update systems and phase ordering.js/ui*.js,js/text_catalog.js,js/command_dispatcher.js: DOM UI, input, selected panel, logs, charts, family tree, tools, labels.js/save*.js,js/snapshot_system.js,js/restore_coordinator.js,js/history_system.js: persistence and history.js/physics*.js,js/mechanical_system.js,js/constraint_system.js,js/collision_footprint_system.js: geometry, mechanics, constraints, collisions.assets/sprites/tarinai_*.webp: creature state sprites.assets/ui/tool_*: tool palette icons; otherassets/ui/*are app/help icons.assets/objects/*: field object images.assets/sounds/*: voice and SFX samples.scripts/*: generators, regression checks, and AI inventory.
Conventions
*_pipeline= ordered runner/facade.*_step_*= pipeline stage wrapper.*_system= domain service or compatibility facade.*_runtime= stable runtime-facing facade.*_registry= definition lookup/normalization.- Many split files preserve regression contracts; do not collapse them casually.
Checks
- Syntax:
node --check js/*.js - Regression:
python scripts/regression_check.py - Inventory sanity:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/ai_inventory.ps1 -All
UI media isolation / scroll repair
- PC / smartphone UI override rules are separated into
@media (min-width: 981px)and@media (max-width: 980px). - PC family tree card is restored below the main game layout, not inside the right menu.
- Smartphone manual scroll no longer uses internal vertical scroll traps for event log / family tree content.
- Auto-scroll does not open collapsed cards.
Event/family/oshibyo UI fixes
- Event UI hides direct player item placement records while keeping those records in the internal log.
- Collapsed Event UI no longer leaves a large blank area from the log-card min-height.
- Family tree nodes show inherited stats in a 2x2 grid and move the tarinai portrait to the upper-right.
- Oshibyo lodged position is anchored to the left side of the tarinai sprite.
Family polish
- Family tree generation row spacing is tightened.
- Family tree personality tags also use a 2x2 grid (up to 4 visible tags).
- Sprinkler effective cleaning radius is increased to 3x the previous value and still filters targets by actual distance.
Owned object panic / shoot effect
- Tarinai panic when their own plushie or simple grass bed is destroyed.
- The selected Tarinai data behavior text explicitly shows the owned-object panic reason.
- Shooting impact effects are larger and remain visible for slightly longer.