Enhance school creation and staffing management with native language support
ci / server (push) Failing after 3m44s
ci / client (push) Successful in 14s

- Updated protocol documentation to include `nativeLanguages` in `nameSets` and added `nativeLanguage` to school creation options.
- Enhanced the UI for school creation to allow selection of native languages, improving user experience.
- Revised API interfaces to accommodate new native language features, ensuring proper data handling.
- Improved localization strings to support new native language functionalities in both English and Russian.
- Updated tests to validate the new native language features and ensure robust functionality in staffing scenarios.
This commit is contained in:
Leonid Pershin
2026-08-19 22:22:31 +03:00
parent 21d79cb49b
commit 5a00ad7746
48 changed files with 2064 additions and 312 deletions
@@ -61,9 +61,4 @@
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 48, "stdDev": 16 },
},
{
"defName": "ForeignLanguage",
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 50, "stdDev": 15 },
},
]
@@ -0,0 +1,40 @@
[
{
"defName": "English",
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 48, "stdDev": 15 },
"adultChance": 0.4,
"ageMeans": [
{ "age": 11, "mean": 28 },
{ "age": 17, "mean": 50 },
],
},
{
"defName": "German",
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 42, "stdDev": 14 },
"adultChance": 0.08,
"ageMeans": [
{ "age": 14, "mean": 24 },
{ "age": 17, "mean": 42 },
],
},
{
"defName": "BelarusianLanguage",
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 52, "stdDev": 13 },
"ageMeans": [
{ "age": 7, "mean": 32 },
{ "age": 17, "mean": 56 },
],
},
{
"defName": "UkrainianLanguage",
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 52, "stdDev": 13 },
"ageMeans": [
{ "age": 7, "mean": 32 },
{ "age": 17, "mean": 56 },
],
},
]
@@ -1,6 +1,7 @@
[
{
"defName": "Agility",
"always": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 50, "stdDev": 14 },
"bodyLimits": [
@@ -11,6 +12,7 @@
},
{
"defName": "Strength",
"always": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 50, "stdDev": 14 },
"bodyLimits": [
@@ -20,6 +22,7 @@
},
{
"defName": "Endurance",
"always": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 50, "stdDev": 13 },
"bodyLimits": [
@@ -0,0 +1,13 @@
[
{
"defName": "Communication",
"always": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 52, "stdDev": 12 },
"ageMeans": [
{ "age": 7, "mean": 32 },
{ "age": 17, "mean": 52 },
{ "age": 40, "mean": 58 },
],
},
]
@@ -0,0 +1,52 @@
[
{
"defName": "Pedagogy",
"work": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 48, "stdDev": 14 },
"ageMeans": [
{ "age": 22, "mean": 40 },
{ "age": 45, "mean": 58 },
],
},
{
"defName": "Medicine",
"work": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 46, "stdDev": 15 },
"ageMeans": [
{ "age": 22, "mean": 38 },
{ "age": 45, "mean": 56 },
],
},
{
"defName": "Cooking",
"work": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 50, "stdDev": 14 },
"ageMeans": [
{ "age": 20, "mean": 42 },
{ "age": 45, "mean": 58 },
],
},
{
"defName": "Administration",
"work": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 48, "stdDev": 13 },
"ageMeans": [
{ "age": 22, "mean": 40 },
{ "age": 45, "mean": 57 },
],
},
{
"defName": "Librarianship",
"work": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 46, "stdDev": 13 },
"ageMeans": [
{ "age": 22, "mean": 38 },
{ "age": 45, "mean": 55 },
],
},
]