diff --git a/BUILD_NOTE.txt b/BUILD_NOTE.txt index 55074fa..a5d7199 100644 --- a/BUILD_NOTE.txt +++ b/BUILD_NOTE.txt @@ -6,7 +6,7 @@ tarinai_compact_save_stage4 - Deflate state is folded into the low bit of the frame-length varuint, eliminating the separate compression byte. - 15-bit text conversion uses arithmetic Unicode range mapping instead of a 32768-character string and reverse Map. - Binary schema 51 is the current save format; schemas 49 and 50 remain readable. Achievement payload v6 stores 72 unlock bits and persistent statistician progress while v5 remains importable. -- Version: 39.16.94 +- Version: 39.16.109 - CompressionStream and DecompressionStream are drained concurrently to avoid browser backpressure stalls. - Load confirmation uses the in-game dialog; fan wind is realtime; zunchi tool preview opacity, carried plushie depth, and blanket grass rules were corrected. @@ -15,92 +15,92 @@ tarinai_compact_save_stage4 - Signal effects use the exported TarinaiEffect constructor. - Pressure-switch placement/editor overlays display the configured detection radius. -- v39.16.18: removed redundant physics normalization, dirty-marking, compaction, pickup, and collision bookkeeping; unified one-way-fence and bounce corrections while retaining debug diagnostics and defensive recovery paths. +- v39.16.105: removed redundant physics normalization, dirty-marking, compaction, pickup, and collision bookkeeping; unified one-way-fence and bounce corrections while retaining debug diagnostics and defensive recovery paths. - Earlier mechanism pass: stronger passive spring, persistent detector ranges, robot-cleaner signal power, and electric shock effect. -- v39.16.17: fixed the undefined bodyFor reference in mechanical one-way-fence contact handling by using the canonical body velocity helper. +- v39.16.105: fixed the undefined bodyFor reference in mechanical one-way-fence contact handling by using the canonical body velocity helper. -- v39.16.16: link rendering no longer depends on midpoint spatial visibility; bounce fences launch Tarinai without shock damage; passive springs are more under-damped and elastic. +- v39.16.105: link rendering no longer depends on midpoint spatial visibility; bounce fences launch Tarinai without shock damage; passive springs are more under-damped and elastic. -- v39.16.16: population chart includes per-bucket births/deaths; rotators accept signed motor speed; champion personality bonuses inherit through descendants; champion-pair mate weighting is moderately reduced. -- v39.16.16: colony population chart records births/deaths, rotators accept negative motor speed, champion personality boosts inherit through descendants, champion-pair mating is slightly reduced, and one-way fence previews/pathfinding honor the passable direction. +- v39.16.105: population chart includes per-bucket births/deaths; rotators accept signed motor speed; champion personality bonuses inherit through descendants; champion-pair mate weighting is moderately reduced. +- v39.16.105: colony population chart records births/deaths, rotators accept negative motor speed, champion personality boosts inherit through descendants, champion-pair mating is slightly reduced, and one-way fence previews/pathfinding honor the passable direction. -- v39.16.16: one-way fences allow Tarinai forward crossing in swept collision; chart legend dots toggle series; wire tools attach to Tarinai/ants; energized living endpoints panic and take damage; selected data reports electrocution. +- v39.16.105: one-way fences allow Tarinai forward crossing in swept collision; chart legend dots toggle series; wire tools attach to Tarinai/ants; energized living endpoints panic and take damage; selected data reports electrocution. -- v39.16.19: added direct food/medicine giving by placement or pinched drop, with a give overlay, stronger food-gift personality change, and heart bursts; removed unused collision reasons and duplicate constraint projection dirty checks. +- v39.16.105: added direct food/medicine giving by placement or pinched drop, with a give overlay, stronger food-gift personality change, and heart bursts; removed unused collision reasons and duplicate constraint projection dirty checks. -- v39.16.20: localized the direct-feeding personality reason, normalized electrocution deaths to the Japanese electrocution label, added detector-controlled gate fences, made chart legend labels fully clickable, and escaped non-ASCII runtime source. +- v39.16.105: localized the direct-feeding personality reason, normalized electrocution deaths to the Japanese electrocution label, added detector-controlled gate fences, made chart legend labels fully clickable, and escaped non-ASCII runtime source. -- v39.16.21: hid pinch overlays for rope/rod/spring/wire connection items and added detector time schedules with a dual-thumb range control, overnight ranges, and persistent copy/save state. +- v39.16.105: hid pinch overlays for rope/rod/spring/wire connection items and added detector time schedules with a dual-thumb range control, overnight ranges, and persistent copy/save state. -- v39.16.22: shortened detector copy, removed the time-range explanatory hint, cascaded connection-item removal when any endpoint disappears, and repaired detached plushies so they return to a living owner or disappear with a missing owner. +- v39.16.105: shortened detector copy, removed the time-range explanatory hint, cascaded connection-item removal when any endpoint disappears, and repaired detached plushies so they return to a living owner or disappear with a missing owner. -- v39.16.23: excluded transient splat effects from all connection endpoint selection and renamed the user-facing feeding need from the formal feeding term to the appetite label. -- v39.16.25: added toilet-seeking before normal defecation; renamed rain shelter to parasol; added sunny +3.5C and unsheltered rain -3.5C felt-temperature corrections; parasols neutralize both and block sunbathing. Pet food, first aid, and sedative remain included. +- v39.16.105: excluded transient splat effects from all connection endpoint selection and renamed the user-facing feeding need from the formal feeding term to the appetite label. +- v39.16.105: added toilet-seeking before normal defecation; renamed rain shelter to parasol; added sunny +3.5C and unsheltered rain -3.5C felt-temperature corrections; parasols neutralize both and block sunbathing. Pet food, first aid, and sedative remain included. -- v39.16.29: replaced toilet-seeking with walkable toilet sand that immediately removes poop spawned on its surface; added a parasol ground shadow and explicit hot-sun/cold-rain temperature-seeking targets; fixed null candidate temperatures being interpreted as 0C. +- v39.16.105: replaced toilet-seeking with walkable toilet sand that immediately removes poop spawned on its surface; added a parasol ground shadow and explicit hot-sun/cold-rain temperature-seeking targets; fixed null candidate temperatures being interpreted as 0C. -- v39.16.29: aligned parasol placement overlay with its shade, made toilet sand absorb rain water, expanded Happy/Athletic/War presets, simplified Athletic rotators, and reserved their full rotation envelope from fences. +- v39.16.105: aligned parasol placement overlay with its shade, made toilet sand absorb rain water, expanded Happy/Athletic/War presets, simplified Athletic rotators, and reserved their full rotation envelope from fences. -- v39.16.30: added a few bounce fences to War, reduced ordinary-fence restitution, restored ball collisions for visible sleeping Tarinai, moved nest-box tooltips closer, allowed movable-item placement overlap, and fixed delete-tool target lookup. +- v39.16.105: added a few bounce fences to War, reduced ordinary-fence restitution, restored ball collisions for visible sleeping Tarinai, moved nest-box tooltips closer, allowed movable-item placement overlap, and fixed delete-tool target lookup. -- v39.16.31: unified in-world tooltip spacing, added the Hair Trigger preset, and replaced physics-category line-like tool icons with distinct semantic silhouettes. +- v39.16.105: unified in-world tooltip spacing, added the Hair Trigger preset, and replaced physics-category line-like tool icons with distinct semantic silhouettes. -- v39.16.35: moved snap-mode switching to a dedicated operation control with Free/20px/40px/60px cycling, removed F/G from size badges, allowed valid placement against the field top edge, and standardized preset descriptions with Japanese full stops. +- v39.16.105: moved snap-mode switching to a dedicated operation control with Free/20px/40px/60px cycling, removed F/G from size badges, allowed valid placement against the field top edge, and standardized preset descriptions with Japanese full stops. -- v39.16.37: unified biological/environmental conditions into the detector, removed the standalone sensor and relay types with no save migration, folded temperature/limits, moved secondary controls into the header menu, preserved tool mode while browsing tarinai data, and added five-second mobile selection tips. +- v39.16.105: unified biological/environmental conditions into the detector, removed the standalone sensor and relay types with no save migration, folded temperature/limits, moved secondary controls into the header menu, preserved tool mode while browsing tarinai data, and added five-second mobile selection tips. -- v39.16.38: detector numeric sliders match the time-control presentation; colony settings are unified; display settings are inline; meter colors, snap control, range-delete icon, and ant chart defaults are revised. +- v39.16.105: detector numeric sliders match the time-control presentation; colony settings are unified; display settings are inline; meter colors, snap control, range-delete icon, and ant chart defaults are revised. -- v39.16.39: restored the compact sticky operation palette, added exact-match panel search, reorganized colony settings/stats, and refreshed range-delete and mechanism icons. -- v39.16.40: moved partial panel search to the header with previous/next navigation and tooltip text indexing; localized snap mode labels; simplified bounce-fence and reciprocator icons; matched expanded colony settings to the chart background. +- v39.16.105: restored the compact sticky operation palette, added exact-match panel search, reorganized colony settings/stats, and refreshed range-delete and mechanism icons. +- v39.16.105: moved partial panel search to the header with previous/next navigation and tooltip text indexing; localized snap mode labels; simplified bounce-fence and reciprocator icons; matched expanded colony settings to the chart background. -39.16.41: Added local achievements and optional self-hosted shared unlock percentage API. +39.16.105: Added local achievements and optional self-hosted shared unlock percentage API. -39.16.42: Expanded achievements to ten conditions, added local/shared reset, rapid-event windows, generation streaks, and special collision tracking. +39.16.105: Expanded achievements to ten conditions, added local/shared reset, rapid-event windows, generation streaks, and special collision tracking. -39.16.44: Expanded achievements to fifteen conditions, changed rapid deaths to 50 in 10 seconds, moved conditions into game tooltips, added toast-to-button absorption, and added colony disease/happiness, cumulative hand feeding, ritual ignition, and laxative-starvation achievements. +39.16.105: Expanded achievements to fifteen conditions, changed rapid deaths to 50 in 10 seconds, moved conditions into game tooltips, added toast-to-button absorption, and added colony disease/happiness, cumulative hand feeding, ritual ignition, and laxative-starvation achievements. -39.16.44: Audited all achievements; fixed impossible slave generation tracking, persisted generation runs, queued simultaneous unlock toasts, hardened launched-zunchi stop detection, and preserved laxative-at-death timing. +39.16.105: Audited all achievements; fixed impossible slave generation tracking, persisted generation runs, queued simultaneous unlock toasts, hardened launched-zunchi stop detection, and preserved laxative-at-death timing. -39.16.45: Added seven play-style achievements for passive observation, fifty world placements, detector automation, rope/rod/spring coverage, a five-minute death-free 25-Tarinai colony, 25 live ants, and 30 cumulative ant kills; persisted world-scoped timers and placement progress. +39.16.105: Added seven play-style achievements for passive observation, fifty world placements, detector automation, rope/rod/spring coverage, a five-minute death-free 25-Tarinai colony, 25 live ants, and 30 cumulative ant kills; persisted world-scoped timers and placement progress. -39.16.46: Revised achievement naming and disclosure UI, replaced achievement tooltips with inline post-unlock descriptions and horizontal shared-rate bars, merged detector automation plus link coverage into 機械化産業, changed placement and ant-kill goals to persistent totals of 100, and made direct-feeding progress reset with the field. +39.16.105: Revised achievement naming and disclosure UI, replaced achievement tooltips with inline post-unlock descriptions and horizontal shared-rate bars, merged detector automation plus link coverage into 機械化産業, changed placement and ant-kill goals to persistent totals of 100, and made direct-feeding progress reset with the field. -39.16.47: Added 大いなる母 and 喧嘩両成敗, renamed five achievements, revised five revealed descriptions, and added a debug-only all-achievements button. +39.16.105: Added 大いなる母 and 喧嘩両成敗, renamed five achievements, revised five revealed descriptions, and added a debug-only all-achievements button. -39.16.48: Corrected the zunchi-slave fight-record threshold text to 30%; fixed wire placement totals, danger-kill attribution for 喧嘩両成敗, partial legacy link migration, strict player-ID validation, post-unlock storage writes, and debug-only unlock isolation from shared statistics. +39.16.105: Corrected the zunchi-slave fight-record threshold text to 30%; fixed wire placement totals, danger-kill attribution for 喧嘩両成敗, partial legacy link migration, strict player-ID validation, post-unlock storage writes, and debug-only unlock isolation from shared statistics. -39.16.49: Added additive client-to-server full-state synchronization for automatic aggregate recovery after server-side achievement data loss. +39.16.105: Added additive client-to-server full-state synchronization for automatic aggregate recovery after server-side achievement data loss. -39.16.51: Expanded achievements from 27 to 43 with history, cleanup, care, ecology, temperature, weather, medicine, combat, and ant-experiment conditions; persisted the required reset-scoped metadata in a new incompatible save schema; made nest-box and pipe occupants weather-protected; and added false-positive guards for time-zero markers and stale ant damage attribution. +39.16.105: Expanded achievements from 27 to 43 with history, cleanup, care, ecology, temperature, weather, medicine, combat, and ant-experiment conditions; persisted the required reset-scoped metadata in a new incompatible save schema; made nest-box and pipe occupants weather-protected; and added false-positive guards for time-zero markers and stale ant damage attribution. -39.16.52: Reorganized achievements into four collapsible categories, removed achievement tooltips, surfaced pre-unlock disclosures in the achievement UI, and replaced native browser confirmations with a shared in-game dialog. +39.16.105: Reorganized achievements into four collapsible categories, removed achievement tooltips, surfaced pre-unlock disclosures in the achievement UI, and replaced native browser confirmations with a shared in-game dialog. -39.16.53: Renamed the four achievement categories to 生態/実験/建築/その他, moved unlocked achievements to the top of their own categories, disclosed four additional conditions before unlock, raised 大いなる母 to 3333 births, and moved achievement unlock toasts to the upper-left. +39.16.105: Renamed the four achievement categories to 生態/実験/建築/その他, moved unlocked achievements to the top of their own categories, disclosed four additional conditions before unlock, raised 大いなる母 to 3333 births, and moved achievement unlock toasts to the upper-left. -39.16.54: Added 真・たりない観察, 悠久の歴史, 五体満足, and 零体満足; disclosed 悠久の歴史 before unlock; reduced achievement overhead by skipping closed-dialog list rebuilds, caching category mappings, debouncing pending sync, and retaining periodic full recovery sync. +39.16.105: Added 真・たりない観察, 悠久の歴史, 五体満足, and 零体満足; disclosed 悠久の歴史 before unlock; reduced achievement overhead by skipping closed-dialog list rebuilds, caching category mappings, debouncing pending sync, and retaining periodic full recovery sync. -39.16.55: Added 町のお医者さん and 割とふわふわ; changed ベビーブーム to 30 births per minute and 管理された楽園 to one uninterrupted happy in-game day from play day 6; repaired shared つつく targeting, damage, plushie fling, and hover overlay; corrected manual rotator/reciprocator push direction; tightened tool/limit typography; reduced periodic achievement scans; and changed server aggregate writes to compact v2 JSON with legacy-state migration. -39.16.56: Added 混沌ヲ希求スル者 and 潔癖症; made fight progress persistent; revised ミニマリスト, おくすり手帳全埋め, and 清掃業者; and made achievement-rate bars visible on unlocked cards. +39.16.105: Added 町のお医者さん and 割とふわふわ; changed ベビーブーム to 30 births per minute and 管理された楽園 to one uninterrupted happy in-game day from play day 6; repaired shared つつく targeting, damage, plushie fling, and hover overlay; corrected manual rotator/reciprocator push direction; tightened tool/limit typography; reduced periodic achievement scans; and changed server aggregate writes to compact v2 JSON with legacy-state migration. +39.16.105: Added 混沌ヲ希求スル者 and 潔癖症; made fight progress persistent; revised ミニマリスト, おくすり手帳全埋め, and 清掃業者; and made achievement-rate bars visible on unlocked cards. -39.16.57: Compactly embeds unlocked achievements and persistent achievement progress in exported spell saves; spell loads merge achievements without erasing local progress and resync restored unlocks to the server. +39.16.105: Compactly embeds unlocked achievements and persistent achievement progress in exported spell saves; spell loads merge achievements without erasing local progress and resync restored unlocks to the server. -39.16.59: Replaced JSON-string achievement metadata in spell/save binaries with a sparse binary schema; achievement unlock masks are raw bits, progress is bit-packed, timestamps use minute deltas, and old v39.16.57 spells remain readable. -39.16.60: Added persistent sniper, megalopolis, and love-mochi fertility achievements; changed chaos progress to fight-mochi-influenced fights only; extended compact spell progress without migrating obsolete generic fight counts; omitted completed achievement counters from spell metadata; and tightened population-limit labels/layout. +39.16.105: Replaced JSON-string achievement metadata in spell/save binaries with a sparse binary schema; achievement unlock masks are raw bits, progress is bit-packed, timestamps use minute deltas, and old v39.16.105 spells remain readable. +39.16.105: Added persistent sniper, megalopolis, and love-mochi fertility achievements; changed chaos progress to fight-mochi-influenced fights only; extended compact spell progress without migrating obsolete generic fight counts; omitted completed achievement counters from spell metadata; and tightened population-limit labels/layout. -39.16.62: Expanded achievements from 54 to 59 with single-digit FPS, 24-hour continuous play, five toilet-sand placements, park-ground editing, and four ground changes per second; revised safety, observation, and empty-click conditions; moved the two observation achievements to the bottom of その他; and expanded binary achievement masks to eight bytes while retaining schemas 41–43. +39.16.105: Expanded achievements from 54 to 59 with single-digit FPS, 24-hour continuous play, five toilet-sand placements, park-ground editing, and four ground changes per second; revised safety, observation, and empty-click conditions; moved the two observation achievements to the bottom of その他; and expanded binary achievement masks to eight bytes while retaining schemas 41–43. -39.16.63: Fixed achievement progress typography and tab-switch observation continuity; added アリ観察 and 命のバトン; persisted sticky-bomb pass counts; aligned sauna/enemy-ant conditions; removed obsolete spell compatibility; current exports use schema 45 and achievement payload v4. +39.16.105: Fixed achievement progress typography and tab-switch observation continuity; added アリ観察 and 命のバトン; persisted sticky-bomb pass counts; aligned sauna/enemy-ant conditions; removed obsolete spell compatibility; current exports use schema 45 and achievement payload v4. -## v39.16.64 +## v39.16.105 - Added 毎日たりない観察 and 抵抗器じゃない. - Daily streak state is carried by achievement payload v5 and binary schema 46. - Achievement aggregate JSON migrates compact v2/verbose input to compact v3 automatically under the API file lock. -## v39.16.65 +## v39.16.105 - Re-audited the not-yet-deployed shared achievement server with generated randomized unlock data instead of a fixed production sample. - Shared summaries are read-only; only POST session/unlock/sync/reset calls register or update players, and GET mutations are rejected. - State writes now use a separate lock file plus atomic same-directory replacement, preserving the previous state across interrupted writes. @@ -108,26 +108,26 @@ tarinai_compact_save_stage4 - `completionistEligible: false` now prevents `true_tarinai_observer` from being re-added by the same sync payload. - The randomized server audit covers 32 v2/verbose migrations and 72 concurrent player syncs with exact semantic comparison. -## v39.16.66 +## v39.16.105 - Added seesaw cooperative play and friendship growth. - Added circuit-board editor with positioned input/output terminals and AND/OR/NOT gates. - Added electrical control for fan, stove, dry ice, and duplicator. - Added connectable-item and circuit-terminal highlights while wiring. - Save snapshot/schema: 38/47. -## v39.16.67 +## v39.16.105 - Circuit board editor now uses a grid canvas with direct gate placement and cursor-drawn wiring. - Legacy circuit layouts are intentionally not converted. - Colony state evaluates every two in-game hours; growing populations cannot be classified as Weakened. - Seesaw action selection, fixed orientation, and placement preview were corrected. -## v39.16.68 +## v39.16.105 - Seesaw leisure can start at a lower boredom threshold, and a waiting rider raises the second rider's action priority. - Active paired play is shown as 「シーソーをしている。」 in selected Tarinai data. - Seesaws render in the low/back item layer instead of covering Tarinai sprites. - AND/OR gate input pins and gate outputs are snapped to the same 40px circuit-editor grid used by cursor wiring. -## v39.16.69 +## v39.16.105 - Circuit-board internal wiring now uses straight grid segments with explicit branch junctions and unlimited fan-out per terminal. - Removed OR and added a one-input/one-output rectifier; internal logic parts rotate in 90-degree steps. - Circuit-board external terminal counts and positions are editable; the board footprint and default terminal spacing were expanded. @@ -136,7 +136,7 @@ tarinai_compact_save_stage4 - Save snapshot/schema: 39/48. Older saves are intentionally unsupported. -## v39.16.70 +## v39.16.105 - The default circuit-board grid is now 10x6, one quarter of the previous editor area, with a correspondingly smaller world footprint. - Circuit-board width and height are editable; the board world size follows the grid dimensions. - Input/output terminal count is limited by board height, and every external terminal can be dragged independently onto the left, right, top, or bottom edge. @@ -147,7 +147,7 @@ tarinai_compact_save_stage4 - Save snapshot/schema: 40/49. Older saves are intentionally unsupported. -## v39.16.71 +## v39.16.105 - Circuit-board external terminals are now placed directly with IN/OUT terminal tools; the +/- terminal-count controls were removed. - Disconnected external terminals are dimmed in the circuit-board editor; connected terminals retain their signal colors and cannot be deleted until their world wire is removed. - Placement previews no longer use the generic ellipse fallback: circle items use circles, obstacle/mechanical items use their collision footprints, and special items use dedicated shapes. @@ -156,7 +156,7 @@ tarinai_compact_save_stage4 - Save snapshot/schema remains 40/49; the persisted circuit-board v4 structure is unchanged. -## v39.16.72 +## v39.16.105 - Circuit-board default grid is 10x10 and both dimensions can grow to 20x20; the world footprint scales proportionally in both axes. - AND gate body height is two grid cells. Compact one-input parts can be placed one grid row from the top/bottom edges when their rotated pins remain in bounds. - Placement previews prefer shared occupancy/collision footprints; the dedicated seesaw preview was removed and circuit boards use their rectangular board footprint. @@ -164,7 +164,7 @@ tarinai_compact_save_stage4 - Save snapshot/schema remains 40/49; the persisted circuit-board v4 structure is unchanged. -## v39.16.73 +## v39.16.105 - Circuit-board editing shows placement ghosts for pending internal parts and terminals. - Q/E rotates pending internal parts by 90 degrees before placement. - The ON constant source is documented in the editor. @@ -172,14 +172,14 @@ tarinai_compact_save_stage4 - Save snapshot/schema remains 40/49. -## v39.16.76 +## v39.16.105 - Removed the circuit-board OFF constant source. - Added the achievement 「情報化産業」 for transmitting an active signal directly from one circuit board output to another circuit board input through wire or insulated wire. - Extended the 8-byte achievement mask to use its final bit, supporting all 64 current achievements. - Save snapshot/schema remains 40/49. -## v39.16.78 +## v39.16.105 - Fixed 「あぁ^~ たまらねぇぜ」: burst zunchi no longer treat their spawn overlap with the owner as a collision. - A burst zunchi now becomes eligible only after it has cleared the owner once; a later fatal return collision unlocks the achievement, including routes that reflect and accelerate on a bounce fence. - Preserved the existing nonfatal, stopped, and player-held disqualification behavior. @@ -190,15 +190,15 @@ tarinai_compact_save_stage4 - Undo/Redo and valid ground changes now reset 監視カメラ observation progress as world interventions. - Added route-level and secondary regression coverage for these achievement paths. Ambiguous achievement semantics identified by the renewed audit remain unchanged pending explicit specification. -39.16.78: Applied confirmed achievement semantics: birth-status slave/king appearances count; dynasty achievements require direct parent-child qualifying lineage; Overprotective treatment counts only actual beneficial health recovery; Unplanned City counts deletion operations rather than removed objects; Surveillance Camera requires 3 uninterrupted game days and resets on gameplay interventions; wire-shock partial progress remains nonpersistent; Pest Control counts only player-caused ant deaths. +39.16.105: Applied confirmed achievement semantics: birth-status slave/king appearances count; dynasty achievements require direct parent-child qualifying lineage; Overprotective treatment counts only actual beneficial health recovery; Unplanned City counts deletion operations rather than removed objects; Surveillance Camera requires 3 uninterrupted game days and resets on gameplay interventions; wire-shock partial progress remains nonpersistent; Pest Control counts only player-caused ant deaths. -## v39.16.80 +## v39.16.105 - Optimized Tarinai social-neighbor scans with squared-distance filtering, nearest-N partial selection, pair-deduplicated symmetric work, cached personality profiles, and shared disease spread logic. - Added personality-derived crowd comfort bounds. Overcrowded Tarinai flee toward less crowded space with the specified behavior text; undercrowded Tarinai become stressed and approach the nearest living Tarinai with the specified loneliness text. -## v39.16.85 +## v39.16.105 - Replaced Undo/Redo object snapshots and recursive patch history with the existing synchronous binary save codec payload. - Exposed binary snapshot encode/decode helpers from TarinaiSaveCodec for internal history reuse without Base32768 text conversion or asynchronous compression. - Replaced JSON.stringify-based duplicate detection with a compact dual 32-bit fingerprint over the encoded history bytes. @@ -206,7 +206,7 @@ tarinai_compact_save_stage4 - Added binary-history regression coverage for storage shape, duplicate suppression, Undo restoration, and Redo restoration. -## v39.16.85 +## v39.16.105 - Render stack optimization: static visible stacks are cached by static spatial generation and camera region, while dynamic stacks reuse previous-frame order before insertion sorting and are merged linearly. - Link rendering now uses dedicated AABB spatial cells instead of per-frame full type-bucket fallback scans. - Carried plushies render at owner-relative positions without mutating simulation coordinates during rendering. @@ -214,32 +214,32 @@ tarinai_compact_save_stage4 - Render-layer sort keys are computed once per stack insertion. -## v39.16.85 +## v39.16.105 - Reduced fixed render cost by skipping the fallback full-screen gradient whenever the transformed field fully covers the viewport. - Cached full-screen fallback gradients and rebuilt atmospheric full-screen lighting at 8 Hz instead of constructing multiple full-screen gradients every frame. - Reused dynamic render-layer entries, sort maps, and previous-order ID arrays to reduce per-frame garbage collection as population grows. -## v39.16.86 +## v39.16.105 - Removed social crowd-retreat selection and the overcrowded colony-state distance scan. - Removed the unconditional three-second full terrain-cache invalidation; cached terrain now refreshes only from real terrain changes, with splat fading invalidating local chunks. - Throttled structure dependency safety sweeps, staggered item/ant compaction, and stopped timer-only item bucket rebuilds. - Deferred periodic statistics UI refreshes and collapsed population statistics into a single pass. - Ordinary item additions/removals no longer invalidate the full terrain cache unless cached terrain items actually changed. -## v39.16.88 +## v39.16.105 - Large-save restore uses an adaptive non-damaging settling phase for dense loaded populations, preventing synthetic body-overlap and obstacle-correction impulses from cascading into impact deaths. - Duplicator loading takes priority over direct feeding when a Tarinai overlaps the machine. - Save schema 50 explicitly stores elapsed completed days; total simulation time is restored monotonically and seasons/climate derive from elapsed days. Schema 49 spells remain readable. -## v39.16.89 +## v39.16.105 - Moved the ずんちどれい and たりない王 population-chart toggles to immediately after 死亡数. - Removed the 12-second periodic Tarinai runtime-cache full sweep that caused large-population performance regressions. - Runtime relationship/cache cleanup is now scheduled only after accumulated deaths reach max(20, floor(living population * 15%)), then runs once during the next Tarinai compaction and resets its counter. -## v39.16.90 +## v39.16.105 - Added eight playstyle-survey achievements: 数こそ力, 少数精鋭, 踩屎感, 快適な寝床, 石に枕す, 季節を越えて, 推し, and 統計学者. - 数こそ力 unlocks at 100 living Tarinai. 少数精鋭 requires 1-25 living Tarinai continuously for five game days and discloses its condition/progress before unlock. - 統計学者 counts 30 statistics-tab or chart-series visibility button presses in persistent achievement state, so field resets do not clear its progress. @@ -247,7 +247,7 @@ tarinai_compact_save_stage4 - Updated the Item lifecycle pipeline regression to validate local bucket/spatial invalidation when passive serving-food decay actually changes its visual footprint. -## v39.16.94 +## v39.16.105 - Removed previous-order render Maps and custom insertion sorting; dynamic visible lists now use native Array.sort after culling. - Removed the shared route cache while retaining actor-local route throttling. - Disabled detailed performance counters in normal play; diagnostics remain available only in explicit debug/perf mode. @@ -256,7 +256,27 @@ tarinai_compact_save_stage4 - Added sustained hysteresis to automatic performance-profile transitions to prevent rapid quality oscillation. - Death-reference cleanup now executes in bounded per-frame chunks after the existing adaptive death threshold. -## v39.16.94 +## v39.16.105 - Fixed dense-population birth regression caused by incremental Tarinai spatial-grid bucket ordering interacting with an early 20-candidate contact cutoff. Contact interactions now consider the complete already-fetched local candidate set while retaining only the nearest bounded interaction list. - Moved the "季節を越えて" achievement from the ecology category to "その他". -39.16.96: UI input/limits/zoom refinements, infection chance reduced to one-third, 75 achievements, grass spatial/hot-path optimization, summer flat temperature bonus removed. +39.16.105: UI input/limits/zoom refinements, infection chance reduced to one-third, 75 achievements, grass spatial/hot-path optimization, summer flat temperature bonus removed. + +- v39.16.105: restricted in-world item tooltips to sleep furniture; delete tool now removes lodged pins after pinch-equivalent detach effects; raised confusion/breeding colony-state thresholds; clicking a Tarinai scrolls the right panel to Tarinai Data. + + +## v39.16.107 +- Long-session runtime caches now expire independently of deaths; recurring fight resolution no longer creates permanent time-bucket keys. +- Visual effects OFF now gates effect creation/update/drawing, including rain, while ON keeps the existing visual budgets unchanged and uses broader effect pooling plus allocation-free update traversal. +- Hidden family trees no longer run full graph normalization/pruning from simulation maintenance; pending cleanup is handled when the family view is opened. + +## v39.16.106 +- Renamed the achievement 「メメント・モリ」 to 「多数の死は統計上の数字でしかない」. +- Replaced push-only log kinds with six shared event categories: 生命 / 危険 / 交流 / 生活 / 環境 / 観察. Category toggles now filter both the event UI and push notifications. +- Prevented family-tree layout work before first use and while the family section is inactive; tab switches reuse family caches, cancel offscreen in-progress layout work, use one activation event, and throttle scroll-driven tab detection to animation frames. +- Manual Tarinai addition now resets 監視カメラ observation progress as a player intervention. + + +## v39.16.109 +- Repaired family-tree activation after lazy-render cancellation and added blank-view recovery rendering. +- Robot cleaners keep obstructed cleanup targets and route around nest boxes/fences instead of permanently excluding nearby zunchi. +- Added the achievement 「マッドサイエンティスト」 for administering mystery drug to 10 distinct Tarinai. diff --git a/FILES.json b/FILES.json index 22c5608..80f5ee5 100644 --- a/FILES.json +++ b/FILES.json @@ -1,6 +1,6 @@ { "purpose": "Token-efficient machine-readable routing for tarinai_. Use scripts/ai_inventory.py for exact current file expansion.", - "version": "39.16.98", + "version": "39.16.109", "entrypoints": { "app": "index.html", "runtime": "js/main.js", diff --git a/achievement_api.php b/achievement_api.php index d439797..3b7a2c8 100644 --- a/achievement_api.php +++ b/achievement_api.php @@ -81,6 +81,7 @@ const ACHIEVEMENT_IDS = [ 'well_informed', 'lively_making', 'memento_mori', + 'mad_scientist', ]; const DATA_DIR_NAME = '.achievement_data'; const DATA_FILE_NAME = 'state.json'; diff --git a/app_manifest.json b/app_manifest.json index 48459a8..3dd37b6 100644 --- a/app_manifest.json +++ b/app_manifest.json @@ -1,5 +1,5 @@ { - "version": "39.16.98", + "version": "39.16.109", "css": [ "css/base.css", "css/layout.css", diff --git a/assets/sounds/achievement_unlock.mp3 b/assets/sounds/achievement_unlock.mp3 new file mode 100644 index 0000000..9d814a7 Binary files /dev/null and b/assets/sounds/achievement_unlock.mp3 differ diff --git a/css/components.css b/css/components.css index a13e84e..a9ad7fb 100644 --- a/css/components.css +++ b/css/components.css @@ -335,13 +335,20 @@ border: 1px solid rgba(192, 138, 96, 0.24); background: rgba(255, 247, 239, 0.74); } +.event-category-heading { + margin-bottom: 7px; + font-size: 11px; + font-weight: 700; + color: rgba(82, 66, 52, 0.88); +} .push-master { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; - margin-bottom: 8px; + margin-top: 9px; + margin-bottom: 0; } .push-kind-grid { display: grid; @@ -419,6 +426,13 @@ .log-push-toast.log-push-weather::before { background: #7bbbdc; } .log-push-toast.log-push-grass::before { background: #8cc77a; } .log-push-toast.log-push-event::before { background: #8b82d6; } + +.log-push-toast.log-push-life::before { background: #82bd72; } +.log-push-toast.log-push-danger::before { background: #df845d; } +.log-push-toast.log-push-social::before { background: #b28bd0; } +.log-push-toast.log-push-living::before { background: #d7ad58; } +.log-push-toast.log-push-environment::before { background: #70aac8; } +.log-push-toast.log-push-observe::before { background: #9b9184; } .log-push-toast.leaving { animation: logPushOut .18s ease both; } diff --git a/css/layout.css b/css/layout.css index 18545dc..c05d30a 100644 --- a/css/layout.css +++ b/css/layout.css @@ -295,9 +295,15 @@ meter { .log-grass { border-left-color: rgba(72, 148, 67, 0.68); } .log-weather { border-left-color: rgba(92, 142, 210, 0.62); } .log-relation { border-left-color: rgba(204, 126, 176, 0.62); } -.log-observe { border-left-color: rgba(175, 146, 86, 0.62); } .log-event { border-left-color: rgba(132, 120, 210, 0.62); } +.log-life { border-left-color: rgba(105, 166, 96, 0.68); } +.log-danger { border-left-color: rgba(214, 104, 70, 0.72); } +.log-social { border-left-color: rgba(184, 116, 184, 0.66); } +.log-living { border-left-color: rgba(183, 151, 74, 0.68); } +.log-environment { border-left-color: rgba(82, 142, 170, 0.66); } +.log-observe { border-left-color: rgba(142, 132, 116, 0.62); } + /* Clearer tool category grouping. */ .tool-category[data-tool-category="operate"] { --tool-cat-a: rgba(224,239,255,0.82); --tool-cat-b: rgba(203,226,255,0.74); --tool-cat-line: rgba(82,128,190,0.26); } .tool-category[data-tool-category="food"] { --tool-cat-a: rgba(236,252,219,0.82); --tool-cat-b: rgba(214,244,194,0.74); --tool-cat-line: rgba(96,156,72,0.26); } diff --git a/index.html b/index.html index c00fce4..8e2e0bc 100644 --- a/index.html +++ b/index.html @@ -4,14 +4,14 @@