You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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 .clinerules file
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