Repository navigation
Releases
Releases · zombieCraig/DartRPG
v0.2.1
v0.2.0
What's New in v0.2.0
New Features
- Network Routes — New route model, widgets, and progress tracking for Infiltrate Segment moves
- Campaign Setup Wizard — Guided flow for new players through game creation
- World Truths — Reference toolbar tab for quick gameplay access
- Factions & Connections — New models, UI, and management for factions and connections
- Reference Tab — Consolidated Moves/Oracles/Assets/Truths into a single Reference screen
- Inline Oracle Results — Oracle results display inline with action support
- Recent Moves — Track and favorite recently used moves
Improvements
- Image caching (cacheWidth/cacheHeight) for memory-efficient decoding
- AppImageWidget used consistently for character images
- LocationSegment icons and updated darkNet color
- Store move IDs instead of full descriptions to reduce save data bloat
- GameSummary model and lazy game loading to reduce memory usage
- Selector-based rebuilds to reduce unnecessary UI updates
- Cached asset/move/oracle lookups in DataswornProvider
Bug Fixes
- Safe character lookups with firstWhereOrNull to prevent crashes on missing data
- Cache invalidation when Datasworn data is reloaded
- Strongly typed lists in LinkedItemsSummary
- Fixed analyzer warnings and incorrect @OverRide annotations in test mocks
- Improved test reliability for clock tab interactions
AI Image Generation
- Added Stability AI, Google Imagen, and FAL.ai providers
- AiConfigProvider extracted for cleaner config management
v0.1.2 — Code Audit & Quality Improvements
Version 0.1.2 (2026-03-06)
Features
- Implemented AI image generation for character portraits and other game assets with 14 related improvements
- Created a dedicated LocationEdgePainter for drawing edges between nodes with 12 related improvements
- Added an index file for easy importing of all location graph components with 4 related improvements
Improvements
- Enhanced screen transitions with improved visual effects and added a new Circuit Reveal transition with 13 related improvements
- Enhanced the Move model to handle embedded oracles with 4 related improvements
- Improved test reliability by making tests more resilient to UI changes and related improvements
Bug Fixes
- Fixed deprecated withOpacity() method usage throughout the codebase and related improvements
- Updated multiple files including location_graph_widget
- Updated MoveDetails widget to include the MoveOraclePanel when a move has embedded oracles with 5 related improvements
Other Improvements
- Simplified the search functionality in the Move Dialog and Moves Screen to only search move titles and 8 related improvements
- Further modularized the Location Graph System into specialized components following the component extraction pattern and related improvements
- Replaced all instances with withAlpha() for better precision and future compatibility and 3 related improvements
v0.1.1
Version 0.1.1 (2025-05-03)
Features
- Implemented AI image generation for character portraits and other game assets with 14 related improvements
- Created a dedicated LocationEdgePainter for drawing edges between nodes with 12 related improvements
- Added an index file for easy importing of all location graph components with 4 related improvements
Improvements
- Enhanced screen transitions with improved visual effects and added a new Circuit Reveal transition with 13 related improvements
- Enhanced the Move model to handle embedded oracles with 4 related improvements
- Improved test reliability by making tests more resilient to UI changes and related improvements
Bug Fixes
- Fixed deprecated withOpacity() method usage throughout the codebase and related improvements
- Updated multiple files including location_graph_widget
- Updated MoveDetails widget to include the MoveOraclePanel when a move has embedded oracles with 5 related improvements
Other Improvements
- Simplified the search functionality in the Move Dialog and Moves Screen to only search move titles and 8 related improvements
- Further modularized the Location Graph System into specialized components following the component extraction pattern and related improvements
- Replaced all instances with withAlpha() for better precision and future compatibility and 3 related improvements
v0.1.0
Version 0.1.0 (2025-05-02)
Features
- Implemented AI image generation for character portraits and other game assets with 14 related improvements
- Created a dedicated LocationEdgePainter for drawing edges between nodes with 12 related improvements
- Added an index file for easy importing of all location graph components with 4 related improvements
Improvements
- Enhanced screen transitions with improved visual effects and added a new Circuit Reveal transition with 13 related improvements
- Enhanced the Move model to handle embedded oracles with 4 related improvements
- Improved test reliability by making tests more resilient to UI changes and related improvements
Bug Fixes
- Fixed deprecated withOpacity() method usage throughout the codebase and related improvements
- Updated multiple files including location_graph_widget
- Updated MoveDetails widget to include the MoveOraclePanel when a move has embedded oracles with 5 related improvements
Other Improvements
- Simplified the search functionality in the Move Dialog and Moves Screen to only search move titles and 8 related improvements
- Further modularized the Location Graph System into specialized components following the component extraction pattern and related improvements
- Replaced all instances with withAlpha() for better precision and future compatibility and 3 related improvements
v0.0.9
Version 0.0.9 (2025-04-24)
Features
- Implemented AI image generation for character portraits and other game assets with 14 related improvements
- Created a dedicated LocationEdgePainter for drawing edges between nodes with 12 related improvements
- Added an index file for easy importing of all location graph components with 4 related improvements
Improvements
- Enhanced screen transitions with improved visual effects and added a new Circuit Reveal transition with 13 related improvements
- Enhanced the Move model to handle embedded oracles with 4 related improvements
- Improved test reliability by making tests more resilient to UI changes and related improvements
Bug Fixes
- Fixed deprecated withOpacity() method usage throughout the codebase and related improvements
- Updated multiple files including location_graph_widget
- Updated MoveDetails widget to include the MoveOraclePanel when a move has embedded oracles with 5 related improvements
Other Improvements
- Simplified the search functionality in the Move Dialog and Moves Screen to only search move titles and 8 related improvements
- Further modularized the Location Graph System into specialized components following the component extraction pattern and related improvements
- Replaced all instances with withAlpha() for better precision and future compatibility and 3 related improvements
v0.0.8
Version 0.0.8 (2025-04-22)
Features
- Implemented AI image generation for character portraits and other game assets with 14 related improvements
- Created a dedicated LocationEdgePainter for drawing edges between nodes with 12 related improvements
- Added an index file for easy importing of all location graph components with 4 related improvements
Improvements
- Enhanced screen transitions with improved visual effects and added a new Circuit Reveal transition with 13 related improvements
- Enhanced the Move model to handle embedded oracles with 4 related improvements
- Improved test reliability by making tests more resilient to UI changes and related improvements
Bug Fixes
- Fixed deprecated withOpacity() method usage throughout the codebase and related improvements
- Updated multiple files including location_graph_widget
- Updated MoveDetails widget to include the MoveOraclePanel when a move has embedded oracles with 5 related improvements
Other Improvements
- Simplified the search functionality in the Move Dialog and Moves Screen to only search move titles and 8 related improvements
- Further modularized the Location Graph System into specialized components following the component extraction pattern and related improvements
- Replaced all instances with withAlpha() for better precision and future compatibility and 3 related improvements
v0.0.7
Version 0.0.7 (2025-04-22)
- Implemented a robust image handling system for uploading, saving, and displaying images: - ✅ Created
AppImagemodel to represent images with metadata - ✅ ImplementedImageStorageServiceto handle saving and loading images to/from disk - ✅ AddedImageManagerProviderto manage images throughout the app - ✅ CreatedAppImageWidgetfor displaying images from both URLs and local storage - ✅ ImplementedImagePickerDialogfor selecting images from different sources - ✅ Enhanced theJournalEntrymodel to support both URL-based and locally stored images - ✅ Updated theCharactermodel to include animageIdfield for locally stored images - ✅ Modified theJournalEntryEditorto use the new image picker dialog - ✅ Enhanced theJournalEntryViewerto render both URL and local images inline - ✅ Updated theLinkedItemsSummarywidget to display both types of images - ✅ Added special handling for image markdown syntax () - ✅ Implemented support for a custom format for local images (id:imageId)
- Implemented a Linked Items feature in the journal editor to view linked characters, locations, move rolls, and oracle rolls: - ✅ Added a "Linked Items" button to the editor toolbar for toggling the linked items section - ✅ Reused the existing LinkedItemsSummary component from the journal entry viewer - ✅ Implemented dialog-based viewing of linked item details when clicked - ✅ Modified the following files: - ✅
dart_rpg/lib/widgets/journal/editor_toolbar.dart: Added Linked Items button - ✅dart_rpg/lib/widgets/journal/journal_entry_editor.dart: Added linked items section and dialog methods - ✅dart_rpg/lib/screens/journal_entry_screen.dart: Updated to pass the onLinkedItemsPressed callback - ✅ This feature provides easy access to linked content while editing journal entries - ✅ Improves user experience by allowing reference to linked items without leaving the editor - Simplified the search functionality in the Move Dialog and Moves Screen to only search move titles: - ✅ Modified the search filter in both locations to only check
move.nameinstead of also checkingmove.descriptionandmove.trigger- ✅ Updated the hint text from "Enter move name or description" to "Enter move title" for clarity - ✅ Modified the following files: - ✅dart_rpg/lib/widgets/journal/move_dialog.dart: Updated search filter and hint text - ✅dart_rpg/lib/screens/moves_screen.dart: Updated search filter and hint text - ✅ This change makes the search more focused and only returns moves whose titles match the search query - ✅ Improved user experience by providing more relevant search results - Further modularized the Location Graph System into specialized components following the component extraction pattern: - ✅ LocationGraphController: Manages the state and logic for the graph - ✅ LocationNodeRenderer: Handles the rendering of location nodes - ✅ LocationEdgeRenderer: Handles the rendering of edges between nodes - ✅ LocationInteractionHandler: Handles user interactions with the graph - ✅ LocationGraphWidget: Orchestrates the other components and renders the graph
v0.0.6
Version 0.0.6 (2025-04-22)
- Further modularized the Location Graph System into specialized components following the component extraction pattern: - ✅ LocationGraphController: Manages the state and logic for the graph - ✅ LocationNodeRenderer: Handles the rendering of location nodes - ✅ LocationEdgeRenderer: Handles the rendering of edges between nodes - ✅ LocationInteractionHandler: Handles user interactions with the graph - ✅ LocationGraphWidget: Orchestrates the other components and renders the graph
- Created a dedicated LocationEdgePainter for drawing edges between nodes
- Added an index file for easy importing of all location graph components
- Created comprehensive documentation in a README file
- Enhanced screen transitions with improved visual effects and added a new Circuit Reveal transition
- Fixed deprecated
withOpacity()method usage throughout the codebase - Replaced all instances with
withAlpha()for better precision and future compatibility - Updated multiple files including location_graph_widget.dart, location_node_widget.dart, oracle_category_list.dart, and quest_card.dart
- Documented conversion formula (Alpha = Opacity × 255) for future reference
- Added code quality best practices to
.clinerulesfile - Created a comprehensive guide for handling color opacity in Flutter
- Documented common opacity-to-alpha conversions for reference
- Added special handling patterns for dynamic opacity with animations
- Created a code review checklist for catching deprecation issues
- Implemented a countdown clock system for tracking game events
- Created Clock model with properties for title, segments (4, 6, 8, or 10), type (Campaign, Tension, or Trace), and progress
- Developed a custom ClockSegmentPainter for drawing circular segmented clocks
- Added clock-related methods to the Game model and GameProvider
- Created specialized components for the clock system: - ✅ ClockService: Service for clock operations - ✅ ClockForm: Component for clock data entry - ✅ ClockDialog: Component for clock creation and editing - ✅ ClockProgressPanel: Component for displaying and managing clock progress - ✅ ClockCard: Component for displaying individual clocks - ✅ ClocksTabView: Component for displaying the clocks tab
- Added a new "Clocks" tab to the Quests screen
- Implemented "Advance all Campaign" and "Advance all Tension" buttons for batch operations
- Added journal entry creation when clocks are filled completely
- Created unit tests for the Clock model and Game model's clock-related methods
- Enhanced the UI with clear, high-contrast buttons for better readability
- Implemented dropdown and dice button for moves with embedded oracles
- Created MoveOracle model to represent embedded oracles in moves
- Enhanced the Move model to handle embedded oracles
- Created MoveOraclePanel widget to display the dropdown and dice button
- Updated MoveDetails widget to include the MoveOraclePanel when a move has embedded oracles
- Updated MoveDialog class to handle oracle rolls from moves
- Fixed issue with oracle results not showing in the journal
- Stored oracle results in the MoveRoll's moveData property
- Enhanced journal entry display to show oracle results
- Added tests to verify the implementation
- Improved the user experience for moves with embedded oracles
- Improved asset card system to properly display abilities with toggle circles
- Created a flexible AssetContentWidget that handles both summary and detail views
- Fixed layout issues that were causing overflow errors in asset cards
- Updated all asset display locations to use the new components consistently
- Modified the AssetPanel to use the AssetDetailDialog for consistent display
- Implemented tutorial system with contextual help popups for new players
- Created TutorialService to manage tutorial state and display logic
- Developed a reusable TutorialPopup widget for displaying contextual help
- Added global and per-game settings to enable/disable tutorials
- Integrated tutorials with the Journal Screen to guide users in creating sessions
- Implemented persistence of tutorial state using SharedPreferences
- Enhanced character short name functionality with auto-generation and customization options
- Added "Random Handle" and "Make l33t" buttons to the character form
- Created LeetSpeakConverter utility for converting text to leet speak
- Enhanced OracleService with recursive search for oracle tables by key anywhere in hierarchy
- Improved oracle table lookup to work with nested tables like "social/fe_runner_handles"
- Implemented a loading screen for resource-intensive operations with console-style animation
- Created a dynamic message provider system for flexible loading screen content
- Added background loading of Datasworn data with proper coordination
- Implemented minimum loading time enforcement for better user experience
- Added "System ready." message that only appears when loading is complete
- Restructured the Location Graph System into a more modular and maintainable architecture
- Created specialized components for the location system: - ✅ LocationService: Service for location operations - ✅ LocationForm: Component for location data entry - ✅ ConnectionPanel: Component for managing connections - ✅ LocationNodeWidget: Component for displaying individual nodes - ✅ LocationDialog: Component for location creation and editing - ✅ LocationListView: Component for displaying locations in list format
- Simplified the LocationScreen by delegating to specialized components
- Improved error handling and user feedback for location operations
- Restructured the Quest Management System into a more modular and maintainable architecture
- Created specialized components for the quest system: - ✅ QuestForm: Component for quest data entry - ✅ QuestDialog: Component for quest creation and editing - ✅ QuestProgressPanel: Component for progress tracking - ✅ QuestTabList: Component for displaying quests by status - ✅ QuestCard: Component for displaying individual quests - ✅ QuestActionsPanel: Component for quest actions - ✅ QuestService: Service for quest operations
- Added tests for the new quest components
- Restructured the Move functionality into a more modular and maintainable architecture
- Created a dedicated MoveDialog class to encapsulate move selection and rolling logic
- Separated move-related widgets into specialized components
- Moved move-related methods from JournalEntryScreen to the MoveDialog class
- Enhanced test structure to accommodate the new architecture
- Fixed issues with the Move button in the journal entry screen
- Improved test reliability by making tests more resilient to UI changes
- Implemented automatic processing of oracle references in oracle results
- Enhanced DataswornLinkParser to handle both link formats for oracle references
- Created OracleReferenceProcessor utility to process nested oracle references
- Updated OracleResultText widget to handle reference processing with loading indicators
- Enhanced OracleRoll model to store nested oracle rolls
- Modified all oracle rolling methods to use the new reference processing functionality
- Added comprehensive error handling and logging for oracle reference processing
- Improved oracle result display to show nested oracle rolls
- Added unit tests to verify oracle reference processing functionality
- Fixed issue with collections in JSON file not being properly parsed
- Standardized logging approach to always use LoggingService instead of dart:developer
- Updated DataswornLinkParser to use LoggingService for consistent logging
- Enhanced logging with proper tags and context information for better traceability
- Quest button in journal editor toolbar for direct access to Quest Screen
- Fixed GameScreen to respect initialTabIndex when explicitly provided
- Enhanced keyboard shortcut handling for CTRL+Q in the editor
- Quest viewer with tabs for Ongoing, Completed, and Forsaken quests
- Quest creation and management functionality
- Quest progress tracking with 10-segment progress bar
- Quest status changes (complete, forsake)
- Keyboard shortcuts for quick navigation (CTRL+Q for Quests)
- Enhanced journal entry screen with rich text editing
- Character handle/short name support for easier referencing
- Autocompletion for character and location references
- Linked items summary for journal entries
- Improved navigation flow based on character creation status
v0.0.5
Version 0.0.5
No changelog entries found for this version.