Changelog

All notable changes to this package are documented in this file.

[1.0.0] – 2026-09-09

Initial release.

Added

  • Procedural generation — AquariumRandomPuzzleGenerator builds unique, solvable boards of any size from 5×5 up to 30×30, with a time budget and an optional target AquariumPuzzleDifficulty (Easy/Medium/Hard, best effort).
  • Generate from a sprite — the Editor workbench turns a solution texture (plus an optional region texture) into a full puzzle: water mask from pixel luminance, regions either sampled from the region texture or built automatically around the water.
  • Full-color final layout — paint a final pixel-art solution (FinalPaintMask/FinalPaintColors) that’s automatically revealed once the player completes the puzzle.
  • Solver — AquariumPuzzleSolver validates a board and checks uniqueness/solvability.
  • Interactive play logic — AquariumPuzzlePlayField, a dependency-free model for pouring water, marking crosses, checking mistakes, and detecting completion — no view code, render it however you like.
  • Puzzle assets — AquariumPuzzleAsset ScriptableObjects store authored levels.
  • Collections & registry — AquariumLevelCollection/AquariumLevelCollectionRegistry
    organise levels ByTheme, BySize, or ByDifficulty. A BySize collection can link its size to an AquariumGameConfig category instead of a fixed width/height, so the two can’t drift apart when the config changes.
  • AquariumGameConfig — one config for a game’s puzzle rules: board-size categories with per-size economy (LaunchCost/WinReward), shared by authored and random levels alike, plus a Random Generation section layered on top. TryResolveWinReward resolves an authored level’s reward the same way a random one’s is — by matching board size, with the level’s own CustomCompletionReward as an override.
  • Editor tools — an authoring workbench (manual region/water painting, sprite-based generation, water-based region generation, final-state picture painting), a mini-preview, a content validator, collection/registry editors, and Project Setup tools to create or sync a project’s config and registry assets.
  • Demo sample — a dependency-free IMGUI showcase scene plus a UGUI demo scene using standard Unity UI, with example 6×6 letter-puzzle content and collections.
  • No-Code Integration sample — two pre-wired, playable starter scenes (menu + gameplay, already connected) demonstrating a full generate/select/play/complete loop wired entirely through the Inspector, no C# required. Includes reusable components for level selection with filters, scene handoff, progress tracking, and board auto-fit — see the sample’s SceneSetup.md for the full walkthrough.
  • No external dependencies — the runtime assembly references nothing outside Unity itself; drop it into any Built-in / URP / HDRP project.