- Added functionality to open a phenomenon selector and handle selection changes in StatusBar.
- Updated StatusWidget to support disabling the popover for direct click actions, enhancing user interaction.
- Cleaned up unused code in StatusBar for improved readability.
- Updated binary localization files for English, Simplified Chinese, and Traditional Chinese to include new translations and enhancements.
- Ensured consistency and accuracy across all language files to improve user experience.
- Translated and added various story styles to localization files for English, Simplified Chinese, and Traditional Chinese.
- Updated the StoryTeller class to utilize the translation function for story styles, enhancing the storytelling experience across different languages.
- Refactored misfortune theme identifiers for clarity and consistency.
- Introduced a new function `_get_misfortune_theme` to handle theme translations.
- Updated `_pick_misfortune_theme` to utilize theme IDs and improved localization for misfortune results.
- Added new entries in localization files for English and Chinese, covering various misfortune themes and result messages.
- Improved user experience by ensuring all misfortune-related texts are properly translated and formatted.
- Added `owned_regions` attribute to the Avatar class to track regions owned by avatars.
- Introduced `occupy_region` and `release_region` methods for managing region ownership and ensuring proper relationship handling.
- Updated AvatarManager to clear relationships when an avatar is released, ensuring no lingering references.
- Refactored region ownership logic in the Occupy action and Simulator to utilize the new methods for better clarity and maintainability.
- Enhanced game loading process to establish ownership relationships correctly during game state restoration.
- Added new hidden domain names and descriptions to the zh-TW translation files.
- Updated StatusWidget to display cooldown years with proper localization.
- Enhanced zh-TW JSON localization with new labels for hidden domains, improving user experience.
* fix(i18n): add zh-TW to language options in settings menu
* fix(i18n): add zh-TW to language options in splash layer
* fix(i18n): add zh-TW support to setLocale function
* feat(i18n): add zh-TW game config files (names)
* feat(i18n): add zh-TW AI prompt templates
* docs:修正 glossary 繁中欄位
* docs:解決 glossary 衝突
* fix(i18n):補齊 zh-TW world info 標題
- Added a new section in EN_README.md for Docker Compose usage, outlining the steps to clone the repository and start the service.
- Updated README.md to include application access details for both frontend and backend after installation.
- Improved clarity and organization of setup instructions in both README files.
- Updated cloning URL in both EN_README.md and README.md to reflect the correct repository.
- Enhanced LLM configuration section in EN_README.md with recommended frontend setup and local deployment options.
- Improved formatting and clarity of setup instructions in README.md.
- Updated `HiddenDomainInfo` interface to include `cd_years` and `open_prob` properties for better domain management.
- Modified `serialize_active_domains` function to serialize new properties.
- Enhanced `StatusWidget` to display additional information about hidden domains, including cooldown years and open probability.
- Updated localization files for English and Chinese to reflect new status labels for hidden domains.
- Updated `serialize_active_domains` to include both active and inactive hidden domains, adding an `is_open` property for each domain.
- Modified `StatusBar` and `StatusWidget` components to reflect the new domain state, displaying appropriate labels and colors based on the activation status.
- Adjusted localization files for English and Chinese to align with the updated hidden domain features.
- Implemented `serialize_active_domains` function to gather and format active hidden domains from the game world.
- Updated `game_loop` to include active domains in the broadcast state.
- Enhanced `StatusBar` component to display active domains with a new `StatusWidget`, including dynamic labels and colors based on the number of active domains.
- Added localization support for hidden domain messages in both English and Chinese.
- Updated the world store to manage active domains state and synchronize with the backend.
* feat: add avatar metrics tracking feature (#110)
Add AvatarMetrics dataclass for tracking avatar state snapshots
- Add AvatarMetrics dataclass for recording monthly snapshots
- Add metrics_history field to Avatar with opt-in tracking
- Implement automatic monthly snapshot recording in Simulator
- Add backward compatibility support for existing save files
- Set default tracking limit to 1200 months (100 years)
- Add comprehensive tests with 100% coverage
- Move documentation to specs directory with simplified chinese
* fix: convert Traditional Chinese comments to Simplified Chinese
修正程式碼中的繁體中文註解為簡體中文,以符合專案規範。
Fix Traditional Chinese comments to Simplified Chinese in codebase.
* feat: add draggable sidebar resizer
- Add resizer handle between map and event panel
- Sidebar width adjustable from 300px to 50% screen width
- Default width remains 400px
- Auto-adjust on window resize
* fix: preserve map zoom when resizing sidebar
Only update viewport screen size without re-fitting the map
* fix: use window size for canvas to prevent map scaling on resize
- Canvas size now based on window instead of container
- Sidebar resize only clips the visible area, map stays same size
- Remove CSS stretch on canvas element
* docs: update sidebar-resizer spec with canvas fix
* fix: use str() instead of .value for realm i18n display
Fix bug where user-facing messages displayed raw enum values like
"FOUNDATION_ESTABLISHMENT" instead of translated names like "筑基".
The Realm and Stage classes already have __str__ methods that return
i18n translated text, but several places were incorrectly using
.value which returns the raw enum string.
Changed files:
- src/classes/single_choice.py: item exchange messages
- src/classes/kill_and_grab.py: loot messages
- src/classes/fortune.py: fortune discovery messages
- src/classes/avatar/inventory_mixin.py: purchase error messages
Also added unit tests and integration tests to prevent regression.
* test: add integration tests for all modified files
Add tests covering:
- kill_and_grab.py: context string realm display
- fortune.py: weapon/auxiliary intro realm display
- inventory_mixin.py: can_buy_item error message realm display