Leonid Pershin
b314f50112
Wire sick-teacher stay-home into cancelled lessons.
...
Heavy flu keeps the assigned teacher off the day plan; pupils get 48/73 no-teacher marks and a one-shot LessonCancelled notice instead of silent empty rooms.
2026-08-21 14:17:37 +03:00
Leonid Pershin and Cursor
4a52107bd2
Add person-to-person disease contagion with outbreak notices.
...
Node/class contact rolls use pair+day seeds; vanilla respiratory diseases spread, and a threshold raises an info toast instead of per-sneeze noise.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 13:55:24 +03:00
Leonid Pershin and Cursor
a369308116
Merge branch 'phase/78-diseases'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 13:39:49 +03:00
Leonid Pershin
3288287da9
Add AI parent meetings after a class last lesson.
...
Class teachers rarely keep the homeroom; invited parents walk onto the map, opinions nudge, then parents leave OffCampus. No player schedule API.
2026-08-21 13:33:40 +03:00
Leonid Pershin
2d633411e4
Add DiseaseDef diseases with weather vectors and excused absence.
...
Vanilla ships several diseases whose stages drive lesson gain, stay-home
rolls, and illness attendance; cold/rain/snow raise onset via BehaviorDef scale.
2026-08-21 13:28:57 +03:00
Leonid Pershin
ccb185566e
Merge branch 'phase/74-attendance'
2026-08-21 13:15:05 +03:00
Leonid Pershin
9e429d0cd7
Show director summons as info toasts and presence queue labels.
...
Corridor waiters need a summon-phase byte on presence (v11); EventDef DirectorSummoned is info-only so clocks keep running.
2026-08-21 13:07:47 +03:00
Leonid Pershin and Cursor
a2b35da4dd
Add lesson attendance from presence (present/late/absent).
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 12:37:01 +03:00
Leonid Pershin and Cursor
d3c2327e23
Merge branch 'phase/77-health-conditions'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 12:22:23 +03:00
Leonid Pershin and Cursor
1ac71aa80d
Merge branch 'phase/73-lesson-marks'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 12:00:53 +03:00
Leonid Pershin
e40f130248
Auto-summon pupils to the principal after fight breaks, with a corridor FIFO queue.
2026-08-21 11:49:06 +03:00
Leonid Pershin and Cursor
b359bebb41
Add lesson marks 2-5 from lesson quality once per slot.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 11:45:14 +03:00
Leonid Pershin and Cursor
2d31a59a81
Add health condition list, tick, and save for phase 77.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 11:41:25 +03:00
Leonid Pershin
bb0b799d41
Merge branch 'phase/69-offense-memory'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# src/HSchool.Server/Api/PeopleModels.cs
# src/HSchool.Server/Game/PersonCardReader.cs
2026-08-21 09:58:31 +03:00
Leonid Pershin and Cursor
4096d5306e
Add class-teacher slots on SchoolClass with owner-only assign/clear.
...
EOF
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 09:37:37 +03:00
Leonid Pershin
fdcaed0f74
Remember recent quarrels, fights and reprimands on the person.
...
Short offense list for the pupil card and save, capped by BehaviorDef — not a discipline score.
2026-08-21 09:37:12 +03:00
Leonid Pershin
023dbc85c3
Merge branch 'phase/66-scene-prompt'
2026-08-20 23:43:13 +03:00
Leonid Pershin and Cursor
3c682a2b74
Add scene fragments to portrait prompts after clothing.
...
Thing, room, yard and climate precipitation can contribute a short prompt when they are in frame, with a budget so chairs stay silent.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 23:35:17 +03:00
Leonid Pershin and Cursor
f36af269bb
Pause the school on warning notices until the owner dismisses them.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 22:33:38 +03:00
Leonid Pershin and Cursor
a554738084
Add EventDef notices, morning and lesson bells, and info toasts.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 20:46:33 +03:00
Leonid Pershin and Cursor
9972b30257
Keep defender-victim opinions as allies after a quarrel.
...
The clash penalty applied to every pair except defender looking at the victim, so the person being helped disliked the defender like a second enemy.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 18:15:55 +03:00
Leonid Pershin and Cursor
a80c6f097a
Refuse enemies joining an open talk circle.
...
RankInvitees already skipped enemies when a circle formed; a later Chat in the same node still joined without checking opinions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 17:25:36 +03:00
Leonid Pershin and Cursor
118d1815d8
Record slice 7 B-C recheck after later slices drifted climate and dress paths.
...
Adds a weather-drop walk test so a jacket is not teleported onto the body; PE change regressions already red on main stay open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 16:17:45 +03:00
Leonid Pershin and Cursor
19554d4362
Review slice 9 C-D: persist clash opinions and the bully's victim.
...
FinishConflict never set RosterTalkDirty, so people.json skipped quarrel shifts until some other save — the same seam as the A-B talk-circle fix. First BullyVictimId write stayed in RAM only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:27:49 +03:00
Leonid Pershin
63cde56cc3
Merge branch 'phase/46-speech-home'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/09-social/README.md
# src/HSchool.Server/Game/SchoolWorker.cs
# tests/HSchool.Ai.Tests/TalkCirclesTests.cs
# tests/HSchool.Simulation.Tests/MorningOpinionsTests.cs
# tests/HSchool.Simulation.Tests/TalkCircleTests.cs
2026-08-20 14:06:29 +03:00
Leonid Pershin and Cursor
92c2143329
Add speech-topic policy from tomorrow and a morning family talk.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:53:12 +03:00
Leonid Pershin and Cursor
cc9ea18480
Merge branch 'review/slice-9-ab'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:40:20 +03:00
Leonid Pershin and Cursor
b38d0bb628
Persist talk opinions and pick topics by weight.
...
A finished circle never set Tick's peopleChanged bit, so people.json kept pre-talk numbers until morning drift. PickTopic compared a 0..total roll to a 0..1 cursor, so gossip almost never changed the subject.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:34:34 +03:00
Leonid Pershin
c526921779
Merge branch 'phase/44-quarrel-fight'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/README.md
# src/HSchool.Content/PeopleDefs.cs
# src/HSchool.People/Roster.cs
# src/HSchool.People/Seed.cs
2026-08-20 13:24:12 +03:00
Leonid Pershin and Cursor
395107c959
Add recess quarrels, rare yard and gym fights, and apologies.
...
Bullies remember a victim by a trait field, a defender can join, staff break up a fight with a reprimand, and skip empty time clears leftover clashes so they cannot last forever.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 11:31:06 +03:00
Leonid Pershin
ee6930a39d
Merge branch 'phase/45-presence-talk'
...
# Conflicts:
# docs/phases/README.md
# src/HSchool.Server/Api/PeopleModels.cs
# src/HSchool.Server/Game/PersonCardReader.cs
2026-08-20 11:27:58 +03:00
Leonid Pershin
ae2e3ddc14
Merge branch 'phase/47-romance-pack'
...
ci / server (push) Failing after 3m39s
ci / client (push) Successful in 19s
# Conflicts:
# docs/phases/README.md
# src/HSchool.Content/PeopleDefs.cs
# src/HSchool.People/Seed.cs
2026-08-20 11:00:12 +03:00
Leonid Pershin and Cursor
2034946378
Show talk-circle partners and topic on the location panel and Now tab.
...
The frame and card share member ids; the client builds the sentence from the directory and locale.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:43:16 +03:00
Leonid Pershin
d2911c3daf
Complete phase 47 romance pack on generic orientation and affinity hooks.
...
Vanilla catalogs stay without crushes; a content pack ships the overlay so later mods can reuse it.
2026-08-20 10:42:42 +03:00
Leonid Pershin and Cursor
f7d5e0c042
Add lesson whispers, teacher catch chance, and after-bell teacher talk.
...
Whispering cuts lesson skill gain from BehaviorDef; a teacher in the room may interrupt into a discipline circle, and pedagogy scales the pupil's opinion of the teacher.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:35:31 +03:00
Leonid Pershin
51b4c22b69
Merge branch 'phase/39-school-owners'
ci / client (push) Successful in 18s
ci / server (push) Failing after 3m51s
2026-08-20 09:56:13 +03:00
Leonid Pershin and Cursor
ce71a91a67
Add rain and snow minutes to the morning commute.
...
Day plans take a precomputed extra; Ai does not know precipitation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:40:24 +03:00
Leonid Pershin and Cursor
1b3479f984
Halve lesson gain when the bag has no textbook for the subject.
...
Locker and home do not count. A pack without the field keeps vanilla 0.5.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:27:46 +03:00
Leonid Pershin and Cursor
384f9d7273
Merge branch 'phase/51-warmth-lesson'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:09:55 +03:00
Leonid Pershin and Cursor
274814aecd
Scale lesson gain by warmth the same way hunger already did.
...
The bar was live and drove dressing; a frozen pupil in class still learned as if it were May.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:06:50 +03:00
Leonid Pershin
ac17abfd90
Merge branch 'phase/42-talk-circles'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/README.md
# src/HSchool.Simulation/PersonLog.cs
2026-08-20 09:03:38 +03:00
Leonid Pershin
47fc10da02
Add talk circles with TopicDef, staff/phone chat, and opinion outcomes.
2026-08-20 08:55:55 +03:00
Leonid Pershin and Cursor
c2579d6767
Scale lesson skill gain by the teacher's subject skill.
...
Hiring a 78-math applicant already cost more than a 41; the class now actually learns faster when that teacher is in the room.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 08:54:13 +03:00
Leonid Pershin
4b236a7916
Merge main into phase/39-school-owners.
...
Keep school owners and phase 41 opinions/portraits together; ResetAsync wipes all saves so shared AppHost tests stay isolated.
2026-08-20 08:36:13 +03:00
Leonid Pershin and Cursor
fbc32f2bfc
Grow lesson skills only when the assigned teacher is standing in the room.
...
The timetable already named a teacher; learning ignored whether they were in the toilet, still walking, or not a person at all.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 08:33:28 +03:00
Leonid Pershin
26be7c87f8
WIP phase 39: school owners, my/others menu, guest restrictions.
2026-08-20 07:58:12 +03:00
Leonid Pershin
6264034e4b
Merge branch 'phase/41-opinions'
...
# Conflicts:
# docs/phases/README.md
2026-08-20 07:58:05 +03:00
Leonid Pershin
b1b4f18b40
Add opinions storage, morning drift, and Connections card tab.
2026-08-20 07:34:57 +03:00
Leonid Pershin
660340c216
Enhance apparel definitions: Introduce 'UpperUnderwear' layer and related items (Bra, SportsBra, SoftBra) to support gender-specific clothing. Update inventory and dress generation logic to accommodate new layers and ensure proper coverage. Adjust localization for new apparel terms and refine tests for underwear functionality.
2026-08-20 07:20:40 +03:00
Leonid Pershin
b9d91d387e
Merge phase/40-clock-tempo.
2026-08-20 07:07:00 +03:00