Commit Graph
58 Commits
Author SHA1 Message Date
Leonid Pershin ea18d6bcb0 Mark phase 33 complete. 2026-08-20 04:46:20 +03:00
Leonid Pershin 5a431bba99 Merge branch 'main' into phase/32-weather-warmth
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	src/HSchool.Simulation/School.cs
2026-08-20 04:03:42 +03:00
Leonid PershinandCursor 02d11cdbbb Mark phase 32 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 04:01:22 +03:00
Leonid PershinandCursor 871178909e Merge phase 34 wear and home.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:52:48 +03:00
Leonid PershinandCursor 84da00f1e8 Mark phase 34 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:49:38 +03:00
Leonid PershinandCursor 3a77a8f985 Mark phase 36 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:43:20 +03:00
Leonid PershinandCursor 69106cb48b Mark phase 34 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:33:10 +03:00
Leonid PershinandCursor af90bb9f9d Merge phase 31 dress generator.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:27:06 +03:00
Leonid PershinandCursor e0a349d7cc Mark phase 31 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:25:35 +03:00
Leonid PershinandCursor eb7e8b5b99 Mark phase 32 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:06:26 +03:00
Leonid PershinandCursor d8f4958167 Merge phase 29 country.
ci / server (push) Failing after 3m53s
ci / client (push) Successful in 19s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 02:59:46 +03:00
Leonid PershinandCursor 13d3353609 Mark phase 29 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 02:55:57 +03:00
Leonid PershinandCursor cf086600c3 Merge phase 30 apparel defs.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 02:54:21 +03:00
Leonid PershinandCursor 2b9bb23f9f Mark phase 30 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 02:48:17 +03:00
Leonid PershinandCursor 2833a09799 Mark phase 29 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 02:38:46 +03:00
Leonid Pershin 450495f666 Update design documentation for inventory and climate phases, clarify staffing test results, and add new presence test for hiring and assigning a teacher during lessons.
ci / server (push) Failing after 3m41s
ci / client (push) Successful in 16s
2026-08-20 02:34:16 +03:00
Leonid PershinandCursor 418a4eaec2 Merge phase 23 example pack.
ci / server (push) Failing after 3m32s
ci / client (push) Failing after 12s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 01:12:47 +03:00
Leonid PershinandCursor 7744436a2f Merge phase 28 screen tests.
ci / server (push) Failing after 3m39s
ci / client (push) Failing after 14s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 01:08:32 +03:00
Leonid PershinandCursor 5985c56b38 Mark phase 23 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 01:06:48 +03:00
Leonid PershinandCursor 4460780c7f Mark phase 28 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 01:06:24 +03:00
Leonid PershinandCursor 2419f454cb Mark phase 28 as in progress.
ci / server (push) Failing after 3m39s
ci / client (push) Failing after 11s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:53:37 +03:00
Leonid PershinandCursor 65e5b0ae41 Mark phase 23 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:51:50 +03:00
Leonid PershinandCursor edd3d35c79 Merge phase 26 school seed.
ci / server (push) Failing after 3m34s
ci / client (push) Failing after 12s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:43:33 +03:00
Leonid Pershin 7a59ef27f4 Merge phase 24 behavior numbers.
ci / server (push) Failing after 3m35s
ci / client (push) Successful in 13s
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	docs/phases/README.md
#	src/HSchool.Content/CatalogLoader.cs
2026-08-20 00:36:32 +03:00
Leonid PershinandCursor 2b4cd29bda Merge phase 27 save format and dump.
ci / server (push) Failing after 3m34s
ci / client (push) Successful in 13s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:34:54 +03:00
Leonid PershinandCursor 40c450af40 Merge phase 22 pack identity.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:32:39 +03:00
Leonid PershinandCursor 764433f94a Mark phase 27 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:31:08 +03:00
Leonid PershinandCursor 267ecb1225 Mark phase 26 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:29:19 +03:00
Leonid PershinandCursor f245076be8 Mark phase 24 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:28:31 +03:00
Leonid PershinandCursor 5d447c44b5 Mark phase 22 as done.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:22:30 +03:00
Leonid PershinandCursor 6fdb66bba6 Mark phase 27 as in progress.
ci / server (push) Failing after 3m38s
ci / client (push) Successful in 14s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:01:05 +03:00
Leonid PershinandCursor 0ae633995f Mark phase 26 as in progress.
ci / client (push) Successful in 14s
ci / server (push) Failing after 4m17s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 23:59:57 +03:00
Leonid PershinandCursor 0c3eb219c8 Mark phase 24 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 23:57:59 +03:00
Leonid PershinandCursor fcbc5bb22c Mark phase 22 as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 23:55:53 +03:00
Leonid Pershin e5a0ae5b9d Enhance staffing management with uncovered teacher tracking
ci / server (push) Failing after 3m43s
ci / client (push) Successful in 14s
- Updated `protocol.md` to clarify the concept of uncovered subjects and the number of additional teachers required.
- Introduced `teachersShort` property in the `StaffingSubject` interface to indicate how many more teachers are needed for a subject.
- Enhanced localization strings to reflect the new uncovered teacher information in both English and Russian.
- Updated the management panel UI to display the number of teachers short for each uncovered subject.
- Revised the `Uncovered` method in the staffing logic to return detailed information about uncovered subjects, including the shortfall of teachers.
- Added tests to validate the new uncovered teacher tracking functionality and ensure accurate reporting in the staffing API.
- Marked related tasks as complete in the documentation for the golden fixtures phase.
2026-08-19 23:53:37 +03:00
Leonid Pershin c27d43f66a Add foundational phase documentation for mod development
ci / server (push) Failing after 3m39s
ci / client (push) Successful in 14s
2026-08-19 23:35:30 +03:00
Leonid Pershin 5cd5a6d258 Update decision-making phase and enhance localization for presence tracking
ci / server (push) Failing after 3m40s
ci / client (push) Successful in 14s
- Marked tasks as complete in the decision-making phase documentation, indicating readiness for implementation.
- Updated the README to reflect the completion status of the decision-making phase.
- Enhanced localization strings to include new presence tracking features, improving user experience.
- Revised the game screen logic to display real-time presence status, including walking states for individuals.
- Added tests to validate the new localization strings and presence functionalities, ensuring robust performance.
2026-08-19 21:00:12 +03:00
Leonid Pershin b135a9caad Enhance protocol and simulation features with activity tracking and behavior definitions
- Updated protocol documentation to include new `activity` and `activityLabel` fields in the person card response, reflecting real-time activity status.
- Introduced `BehaviorDef` to define behavior rules, including need thresholds and lesson skill gains, enhancing AI decision-making.
- Revised the `DefCatalog` to incorporate behavior definitions and updated validation logic to ensure proper behavior handling.
- Enhanced the simulation to manage presence and activity states, allowing for more dynamic interactions within the school environment.
- Updated tests to validate the new activity tracking and behavior functionalities, ensuring robust performance and reliability.
- Improved localization strings to support new activity and behavior features, enhancing user experience.
2026-08-19 19:49:44 +03:00
Leonid Pershin 3c54f981b7 Update wire protocol to version 7 and enhance presence management features
ci / server (push) Failing after 3m44s
ci / client (push) Successful in 15s
- Bumped the wire protocol version to 7, reflecting significant changes in the communication structure.
- Introduced a new presence message type for real-time occupancy updates, including node activity and individual presence states.
- Updated the API to include a directory endpoint for fetching short id→name mappings, improving client-side name resolution.
- Revised the map snapshot structure to be static, with people and current lessons now handled through the presence stream.
- Enhanced client-side handling of presence updates, including UI adjustments to display live occupancy and activity.
- Updated documentation to reflect the new protocol features and changes in presence management.
- Added tests to validate the new presence functionalities and ensure robust handling of real-time data.
2026-08-19 17:00:53 +03:00
Leonid Pershin 4137400621 Enhance AI and simulation components with presence management and routing capabilities
ci / server (push) Failing after 3m39s
ci / client (push) Successful in 14s
- Introduced the `HSchool.Ai` project, responsible for routing, day plans, and presence management.
- Updated the `HSchool.Simulation` project to integrate with the new AI functionalities, improving decision-making and presence tracking.
- Added `travelMinutes` to room and territory definitions, ensuring accurate movement calculations within the simulation.
- Enhanced the `School` class to manage presence and implement empty-time skipping functionality.
- Updated documentation to reflect the new AI features and their impact on school simulation.
- Added tests for presence management and routing to ensure robust functionality and reliability.
2026-08-19 16:33:52 +03:00
Leonid Pershin c16c34a83c Refactor project structure and enhance AI and simulation components
- Updated project roles to include a new `HSchool.Ai` component, detailing its responsibilities in routing and decision-making.
- Revised the `HSchool.Simulation` component to integrate with the new AI functionalities, improving the interaction between simulation and AI.
- Expanded documentation to reflect the changes in project roles and the introduction of AI features.
- Added tests for the new AI functionalities, ensuring robust pathfinding and decision-making capabilities.
- Updated phase documentation to outline the new stages of school life, focusing on presence and behavior.
2026-08-19 15:57:12 +03:00
Leonid Pershin d61240d5c1 Enhance timetable functionality and UI integration
ci / server (push) Failing after 3m31s
ci / client (push) Successful in 13s
- Updated protocol documentation to include new `classId` and `roomLabel` fields in the timetable API responses.
- Added classes and rooms to the timetable response structure, improving data accessibility for client applications.
- Enhanced the UI components to display timetable information, including class and room details, in the management and people panels.
- Implemented functionality to fetch and display personal timetables for individuals, ensuring a comprehensive view of schedules.
- Revised localization strings to support new timetable features and improve user experience.
- Added tests to validate the new timetable functionalities and ensure robustness in handling timetable data.
2026-08-19 10:45:09 +03:00
Leonid Pershin cad3068bac Update wire protocol to version 6 and enhance timetable functionality
ci / client (push) Successful in 15s
ci / server (push) Failing after 3m53s
- Bumped the wire protocol version to 6, reflecting changes in the communication structure.
- Expanded the timetable API with new endpoints for fetching and managing lesson schedules, including `GET /api/schools/{id}/timetable` and `POST /api/schools/{id}/timetable/pin`.
- Updated the protocol documentation to include detailed descriptions of the new timetable features and message structures.
- Enhanced the client-side implementation to support the new timetable functionalities, including lesson pinning and unpinning.
- Revised server-side logic to handle timetable operations and ensure proper integration with existing school management features.
- Added tests to validate the new timetable functionalities and ensure robustness in handling lesson data.
2026-08-19 10:05:05 +03:00
Leonid Pershin 2011d12b1d Add timetable planning and related tests to school simulation
ci / server (push) Failing after 3m33s
ci / client (push) Successful in 13s
- Introduced a new project for timetable planning, dependent on HSchool.Content.
- Updated documentation to reflect the addition of timetable planning and its dependencies.
- Added tests for timetable planning to ensure deterministic behavior with the same staff and map.
- Revised architecture documentation to include the new HSchool.Schedule component and its interactions.
2026-08-19 00:55:02 +03:00
Leonid Pershin 2ebc783585 Enhance school simulation management by introducing a new SchoolWeekDays option, allowing configuration of the number of working days in a week. Update the API to include school week days in responses and enhance documentation to reflect these changes. Revise UI components to support the new management features, ensuring a seamless user experience when hiring and assigning staff. Update localization strings for improved clarity and consistency across the application.
ci / server (push) Failing after 3m37s
ci / client (push) Successful in 13s
2026-08-19 00:47:09 +03:00
Leonid Pershin 94842ab192 Enhance staffing management in school simulation by introducing API endpoints for hiring staff and assigning subjects. Implement payroll cap validation to ensure hiring and subject assignments do not exceed the allocated budget. Update the simulation options to include a monthly payroll cap and revise related classes to support new staffing functionalities. Enhance documentation to reflect these changes and update tests to validate the new features. 2026-08-19 00:19:09 +03:00
Leonid Pershin c189578680 Implement applicant pool functionality in school simulation, allowing for the management of job seekers who are not yet part of the school roster. Update the catalog to include staffing definitions and enhance the API to support applicant data retrieval. Revise the school architecture to handle applicant refresh logic and ensure proper integration with existing roster management. Update tests to validate the new applicant functionalities and ensure robustness in handling staffing scenarios. 2026-08-19 00:01:56 +03:00
Leonid Pershin 65feda3756 add shel 2026-08-18 23:51:10 +03:00
Leonid Pershin 7f6852548d Implement yearly intake functionality in school simulation, allowing for the graduation of students and the addition of new first-year pupils. Update the roster management to reflect these changes, ensuring proper entity handling in the simulation. Enhance the API to support name sets during roster installation and revise related tests to validate the new intake process and roster updates.
ci / server (push) Failing after 3m40s
ci / client (push) Failing after 20s
2026-08-18 19:57:59 +03:00
Leonid Pershin 533bd80f5e Implement people management features by adding API endpoints for retrieving school rosters and individual person cards. Enhance the UI to support a people browser with filtering and pagination capabilities. Update localization strings for improved user experience and ensure robust handling of person data. Revise documentation to reflect new API functionalities and update tests to validate the new features.
ci / server (push) Failing after 11s
ci / client (push) Successful in 17s
2026-08-18 19:44:42 +03:00