Refactor save manager validation and update state structure
- Updated the save manager to enforce a new format version (2) and improved validation checks for the save data structure. - Enhanced the `validate_data` function to ensure all required fields are present and valid. - Adjusted the handling of legacy saves and introduced new checks for various state fields. - Improved number formatting in the global script for better readability of large numbers. - Updated tests to reflect changes in the save manager and validation logic, ensuring compatibility with the new state structure. - Added new tests for group indexing and production transactions to ensure correctness of entity management and resource production.
This commit is contained in:
+4
-4
@@ -8,14 +8,14 @@ godot --headless --path Owniverse.GI --script res://tests/test_time.gd
|
||||
|
||||
Команда выполняется из общей папки проектов. Тесты используют искусственные состояния; сохранение игрока не читается и не перезаписывается.
|
||||
|
||||
Проверяются границы десятых долей года, производство ресурсов на этих границах, накопление дробного остатка, скорости 1–10 000 лет/сек, продолжение после загрузки, недопустимые интервалы и миграция сохранений.
|
||||
Проверяются границы десятых долей года, производство ресурсов на этих границах, накопление дробного остатка, скорости 1–10 000 лет/сек, продолжение после загрузки и недопустимые интервалы.
|
||||
|
||||
Схема состояния `0.1.1` хранит:
|
||||
|
||||
- `time.datetime` — накопленный возраст, включая необработанную дробную часть;
|
||||
- `time.year` — последний рассчитанный возраст с точностью до десятой доли года.
|
||||
|
||||
Сохранения `0.1.0` проходят старую проверку целого года. При загрузке стадией игры оставшийся промежуток до последней десятой рассчитывается ровно один раз, после чего применяется версия `0.1.1`. Оставшаяся часть меньше 0,1 года сохраняется.
|
||||
Сохранения используют только актуальную структуру состояния и не поддерживают прежние форматы.
|
||||
|
||||
## Согласованные правила эволюции
|
||||
|
||||
@@ -55,7 +55,7 @@ godot --headless --path Owniverse.GI --script res://tests/test_life.gd
|
||||
|
||||
Проверяются абиогенез, деградация, повторные попытки без создания дополнительных планет, появление C0.0 на прежней звезде, остатки вероятностей, сохранение/продолжение, однократная инициализация старых планет и отсутствие воскрешения после бластов.
|
||||
|
||||
Проверка загрузки этических правил, миграции распределений и отделения космических цивилизаций:
|
||||
Проверка загрузки этических правил, распределений и отделения космических цивилизаций:
|
||||
|
||||
```sh
|
||||
godot --headless --path Owniverse.GI --script res://tests/test_civilization_state.gd
|
||||
@@ -70,4 +70,4 @@ godot --headless --path Owniverse.GI --script res://tests/test_civilization_stat
|
||||
godot --headless --path Owniverse.GI --script res://tests/test_civilization_evolution.gd
|
||||
```
|
||||
|
||||
Проверяются реальные коэффициенты C0.2, войны и побочный ущерб C2.0, замена планет колониями с сохранением хозяина, дипломатическое влияние, бонус периода от структур и деградация при их отсутствии. Ускоренная модель проходит все стадии C0.2 → C4.4 → Ct. Проверки контролируют сохранение населения, целочисленность этик, валидацию сохранения и детерминированное продолжение после сериализации. Миграция часов цивилизаций использует `life_version = 3`.
|
||||
Проверяются реальные коэффициенты C0.2, войны и побочный ущерб C2.0, замена планет колониями с сохранением хозяина, дипломатическое влияние, бонус периода от структур и деградация при их отсутствии. Ускоренная модель проходит все стадии C0.2 → C4.4 → Ct. Проверки контролируют сохранение населения, целочисленность этик, валидацию сохранения и детерминированное продолжение после сериализации.
|
||||
|
||||
Reference in New Issue
Block a user