diff --git a/AGENTS.md b/AGENTS.md index 9307d08..600893d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,7 +20,7 @@ way; this file is *how to work in them*. | connection handling, workers, saves | `src/HSchool.Server` | | what runs locally | `src/HSchool.AppHost/AppHost.cs` | | screens, dialogs, formatting, UI language | `src/HSchool.Client/src` | -| clothing, inventory, climate, dress codes | [`docs/design/inventory.md`](docs/design/inventory.md) — slice 7, phases 29–37; country is live, clothing is not | +| clothing, inventory, climate, dress codes | [`docs/design/inventory.md`](docs/design/inventory.md) — slice 7, phases 29–37; country and wardrobes are live, weather is not | ## Commands diff --git a/docs/phases/31-dress-generator.md b/docs/phases/31-dress-generator.md index acc69d1..91595c3 100644 --- a/docs/phases/31-dress-generator.md +++ b/docs/phases/31-dress-generator.md @@ -12,30 +12,30 @@ ## Задачи -- [ ] Экземпляр вещи на человеке: `def`, `color`, `condition` (1), место (`worn` / `bag` / +- [x] Экземпляр вещи на человеке: `def`, `color`, `condition` (1), место (`worn` / `bag` / `locker` / `home`), для учебника — `subject` -- [ ] Генератор одевает учеников, сотрудников, родителей и соискателей от семейного сида: +- [x] Генератор одевает учеников, сотрудников, родителей и соискателей от семейного сида: слои без пересечения, пол, возраст, дефолтные правила (обычная форма, без яркого на теле) -- [ ] Учебники — по одному на предмет параллели ученика; в сумке пока могут лежать все, разнос +- [x] Учебники — по одному на предмет параллели ученика; в сумке пока могут лежать все, разнос «сегодняшние vs шкафчик» — в фазе 33/35 -- [ ] Портфель, телефон, бутылка — с возрастом и шансом из данных, не из константы в генераторе -- [ ] Навык `Hauling` (`always`); предел массы в дефе правил; на карточке несёшь/можешь. +- [x] Портфель, телефон, бутылка — с возрастом и шансом из данных, не из константы в генераторе +- [x] Навык `Hauling` (`always`); предел массы в дефе правил; на карточке несёшь/можешь. Перегруз ходьбу не трогает; в сумку сверх предела генератор не кладёт -- [ ] `GET .../people/{id}` отдаёт надетое и ношу; список людей — нет -- [ ] Карточка пока без вкладок: секции «Одежда» и «Ноша» в том же свитке -- [ ] `people.json` пишется при создании и наборе; золотой отпечаток обновляется в этом коммите +- [x] `GET .../people/{id}` отдаёт надетое и ношу; список людей — нет +- [x] Карточка пока без вкладок: секции «Одежда» и «Ноша» в том же свитке +- [x] `people.json` пишется при создании и наборе; золотой отпечаток обновляется в этом коммите с объяснением, что изменилось -- [ ] Строки через `t(...)` / локали каталога +- [x] Строки через `t(...)` / локали каталога ## Тесты, без которых фаза не закрыта -- [ ] Тот же сид, страна, карта и язык → те же id вещей, цвета и места -- [ ] На одном слое не две вещи; платье занимает низ и верх сразу -- [ ] Юбка не выдаётся мужчинам на тело; яркий верх не выдаётся на тело при дефолтных правилах -- [ ] Ученик параллели с математикой имеет учебник этого предмета -- [ ] Родитель и соискатель одеты -- [ ] Масса в сумке ≤ предела -- [ ] Старый `people.json` без инвентаря поднимается: генератор одевает при загрузке и пишет +- [x] Тот же сид, страна, карта и язык → те же id вещей, цвета и места +- [x] На одном слое не две вещи; платье занимает низ и верх сразу +- [x] Юбка не выдаётся мужчинам на тело; яркий верх не выдаётся на тело при дефолтных правилах +- [x] Ученик параллели с математикой имеет учебник этого предмета +- [x] Родитель и соискатель одеты +- [x] Масса в сумке ≤ предела +- [x] Старый `people.json` без инвентаря поднимается: генератор одевает при загрузке и пишет файл (как пул соискателей в фазе 11) ## Критерий готовности diff --git a/docs/protocol.md b/docs/protocol.md index 578d960..1edfc82 100644 --- a/docs/protocol.md +++ b/docs/protocol.md @@ -211,7 +211,8 @@ are `400` `invalid-query`. `lang` is `ru` or `en`, same as the catalog — anyth } ``` -The list row is identity only — skills, traits and needs stay on the card. Age is computed from +The list row is identity only — skills, traits, needs, clothes and what they carry stay on the +card. Age is computed from `birthDate` and the published game time, not from the World. Applicants live in `saves/{id}.people.json` next to the roster and are **not** in this list. @@ -254,6 +255,11 @@ is that def in the request locale. HTTP JSON is additive — no protocol version `skills` lists only keys the person has, not every `SkillDef` in the catalog. A first-year has no Chemistry; a related tongue from the name set may sit beside the native at a low value. +`worn` is what is on the body right now: def, colour, and the layers it occupies. `carried` is +the bag — textbooks include `subject`. `carryMass` / `carryCapacity` are kilograms; overload +does not slow walking. Home and locker stay in `people.json` and are not on this card. The +people list does not include any of these fields. + ```json { "id": "f0.c0", @@ -276,7 +282,29 @@ no Chemistry; a related tongue from the name set may sit beside the native at a "children": [], "siblings": [{ "id": "f0.c1", "fullName": "Иванов Кирилл Петрович", "female": false }], "partners": [] - } + }, + "worn": [ + { + "defName": "Shirt", + "label": "Рубашка", + "color": "White", + "colorLabel": "Белый", + "layers": [{ "defName": "Top", "label": "Верх" }] + } + ], + "carried": [ + { + "defName": "Textbook", + "label": "Учебник", + "color": null, + "colorLabel": null, + "subject": "Mathematics", + "subjectLabel": "Математика", + "mass": 0.4 + } + ], + "carryMass": 1.2, + "carryCapacity": 14 } ``` diff --git a/src/HSchool.Client/src/i18n/strings.test.ts b/src/HSchool.Client/src/i18n/strings.test.ts index ef7c00f..daff97c 100644 --- a/src/HSchool.Client/src/i18n/strings.test.ts +++ b/src/HSchool.Client/src/i18n/strings.test.ts @@ -26,6 +26,7 @@ describe('t', () => { .toBe('Not enough money: 8 000 of 10 000 is committed, 2 000 free, 12 000 needed.'); expect(t('staffUncoveredShort', { label: 'Начальные классы', min: 1, max: 4, n: 3 })) .toBe('Начальные классы (1–4) — 3 short'); + expect(t('peopleCarryMass', { held: '1.2', cap: '14' })).toBe('1.2 / 14 kg'); expect(t('mapOccupancy', { name: 'Кабинет 204', activity: 'Математика · 5Б' })) .toBe('Кабинет 204 (Математика · 5Б)'); expect(t('mapHeadcount', { name: 'Коридор', count: 12 })).toBe('Коридор (12)'); diff --git a/src/HSchool.Client/src/i18n/strings.ts b/src/HSchool.Client/src/i18n/strings.ts index 86af8c6..4e9e476 100644 --- a/src/HSchool.Client/src/i18n/strings.ts +++ b/src/HSchool.Client/src/i18n/strings.ts @@ -128,6 +128,9 @@ const ru = { peopleSkills: 'Навыки', peopleTraits: 'Черты', peopleNeeds: 'Нужды', + peopleApparel: 'Одежда', + peopleCarry: 'Ноша', + peopleCarryMass: '{held} / {cap} кг', peopleFamily: 'Семья', peopleParents: 'Родители', peopleChildren: 'Дети', @@ -345,6 +348,9 @@ const en: Messages = { peopleSkills: 'Skills', peopleTraits: 'Traits', peopleNeeds: 'Needs', + peopleApparel: 'Clothes', + peopleCarry: 'Carried', + peopleCarryMass: '{held} / {cap} kg', peopleFamily: 'Family', peopleParents: 'Parents', peopleChildren: 'Children', diff --git a/src/HSchool.Client/src/net/api.ts b/src/HSchool.Client/src/net/api.ts index 245fffb..9da73ac 100644 --- a/src/HSchool.Client/src/net/api.ts +++ b/src/HSchool.Client/src/net/api.ts @@ -291,6 +291,28 @@ export interface PersonCard { readonly siblings: readonly PersonRel[]; readonly partners: readonly PersonRel[]; }; + readonly worn: readonly WornItem[]; + readonly carried: readonly CarriedItem[]; + readonly carryMass: number; + readonly carryCapacity: number; +} + +export interface WornItem { + readonly defName: string; + readonly label: string; + readonly color: string | null; + readonly colorLabel: string | null; + readonly layers: readonly DefLabel[]; +} + +export interface CarriedItem { + readonly defName: string; + readonly label: string; + readonly color: string | null; + readonly colorLabel: string | null; + readonly subject: string | null; + readonly subjectLabel: string | null; + readonly mass: number; } export async function fetchPeople(schoolId: number, query: PeopleQuery, lang: string): Promise { diff --git a/src/HSchool.Client/src/style.css b/src/HSchool.Client/src/style.css index 828ac2a..24b7e1b 100644 --- a/src/HSchool.Client/src/style.css +++ b/src/HSchool.Client/src/style.css @@ -644,6 +644,11 @@ body { font-size: 12px; } +.people__carry-mass { + margin: 0 0 4px; + font-size: 12px; +} + .people__pair { display: flex; align-items: baseline; diff --git a/src/HSchool.Client/src/ui/managementPanel.test.ts b/src/HSchool.Client/src/ui/managementPanel.test.ts index df41a24..b0ba4e9 100644 --- a/src/HSchool.Client/src/ui/managementPanel.test.ts +++ b/src/HSchool.Client/src/ui/managementPanel.test.ts @@ -55,6 +55,10 @@ function personCard(): PersonCard { activity: null, activityLabel: null, family: { parents: [], children: [], siblings: [], partners: [] }, + worn: [], + carried: [], + carryMass: 0, + carryCapacity: 0, }; } diff --git a/src/HSchool.Client/src/ui/personCard.test.ts b/src/HSchool.Client/src/ui/personCard.test.ts new file mode 100644 index 0000000..bcb2647 --- /dev/null +++ b/src/HSchool.Client/src/ui/personCard.test.ts @@ -0,0 +1,77 @@ +/** + * @vitest-environment happy-dom + */ +import { afterEach, describe, expect, it } from 'vitest'; +import type { PersonCard } from '../net/api.ts'; +import { getLocale, setLocale } from '../i18n/locale.ts'; +import { t } from '../i18n/strings.ts'; +import { renderPersonCard } from './personCard.ts'; + +const initial = getLocale(); + +afterEach(() => setLocale(initial)); + +function card(overrides: Partial = {}): PersonCard { + return { + id: 'f0.c0', + fullName: 'Иванова Мария', + surname: 'Иванова', + given: 'Мария', + patronymic: '', + female: true, + age: 12, + birthDate: '2000-03-14', + roles: ['student'], + classYear: 5, + classLetter: 'А', + classId: 'class-1', + position: null, + positionLabel: null, + body: [], + skills: [], + traits: [], + needs: [], + activity: null, + activityLabel: null, + family: { parents: [], children: [], siblings: [], partners: [] }, + worn: [ + { + defName: 'Shirt', + label: 'Рубашка', + color: 'White', + colorLabel: 'Белый', + layers: [{ defName: 'Top', label: 'Верх' }], + }, + ], + carried: [ + { + defName: 'Textbook', + label: 'Учебник', + color: null, + colorLabel: null, + subject: 'Mathematics', + subjectLabel: 'Математика', + mass: 0.4, + }, + ], + carryMass: 1.2, + carryCapacity: 14, + ...overrides, + }; +} + +describe('renderPersonCard', () => { + it('shows worn layers with colour and carried mass in the same scroll', () => { + setLocale('ru'); + const root = document.createElement('div'); + renderPersonCard(root, card(), () => {}); + + expect(root.textContent).toContain(t('peopleApparel')); + expect(root.textContent).toContain('Верх'); + expect(root.textContent).toContain('Рубашка · Белый'); + expect(root.textContent).toContain(t('peopleCarry')); + expect(root.textContent).toContain(t('peopleCarryMass', { held: '1.2', cap: '14' })); + expect(root.textContent).toContain('Учебник · Математика'); + expect(root.querySelector('.people__tabs')).toBeNull(); + }); +}); diff --git a/src/HSchool.Client/src/ui/personCard.ts b/src/HSchool.Client/src/ui/personCard.ts index 3c78c8b..b970160 100644 --- a/src/HSchool.Client/src/ui/personCard.ts +++ b/src/HSchool.Client/src/ui/personCard.ts @@ -47,6 +47,8 @@ export function renderPersonCard( appendPairs(parent, t('peopleSkills'), card.skills); appendTags(parent, t('peopleTraits'), card.traits.map((row) => row.label)); appendNeeds(parent, t('peopleNeeds'), card.needs); + appendApparel(parent, card.worn); + appendCarry(parent, card); const family = section(t('peopleFamily')); appendRelatives(family, t('peopleParents'), card.family.parents, onRelative); @@ -112,6 +114,58 @@ function appendPairs( parent.append(section(title), grid); } +function appendApparel(parent: HTMLElement, rows: PersonCard['worn']): void { + if (rows.length === 0) { + return; + } + + const grid = el('dl', { class: 'people__pairs' }); + for (const row of rows) { + const layers = row.layers.map((layer) => layer.label).join(', '); + const color = row.colorLabel ?? row.color; + const value = color !== null && color.length > 0 ? `${row.label} · ${color}` : row.label; + grid.append( + el( + 'div', + { class: 'people__pair' }, + el('dt', { text: layers.length > 0 ? layers : row.label }), + el('dd', { text: value }), + ), + ); + } + + parent.append(section(t('peopleApparel')), grid); +} + +function appendCarry(parent: HTMLElement, card: PersonCard): void { + const mass = el('p', { + class: 'people__carry-mass', + text: t('peopleCarryMass', { held: formatMass(card.carryMass), cap: formatMass(card.carryCapacity) }), + }); + const grid = el('dl', { class: 'people__pairs' }); + for (const row of card.carried) { + const extra = row.subjectLabel ?? row.colorLabel; + const value = extra !== null && extra.length > 0 ? `${row.label} · ${extra}` : row.label; + grid.append( + el( + 'div', + { class: 'people__pair' }, + el('dt', { text: value }), + el('dd', { text: formatMass(row.mass) }), + ), + ); + } + + parent.append(section(t('peopleCarry')), mass); + if (card.carried.length > 0) { + parent.append(grid); + } +} + +function formatMass(value: number): string { + return String(Math.round(value * 100) / 100); +} + function appendTags(parent: HTMLElement, title: string, values: readonly string[]): void { if (values.length === 0) { return; diff --git a/src/HSchool.Content/CatalogLoader.cs b/src/HSchool.Content/CatalogLoader.cs index 003a18e..7afe9d8 100644 --- a/src/HSchool.Content/CatalogLoader.cs +++ b/src/HSchool.Content/CatalogLoader.cs @@ -609,6 +609,11 @@ public sealed class CatalogLoader throw new ContentLoadException($"ThingDef '{thing.DefName}' has unknown skirtLength '{thing.SkirtLength}'."); } + if (thing.CarryChance is < 0f or > 1f) + { + throw new ContentLoadException($"ThingDef '{thing.DefName}' carryChance must be 0–1."); + } + var layers = new HashSet(StringComparer.Ordinal); foreach (var layer in thing.Layers) { diff --git a/src/HSchool.Content/Defs.cs b/src/HSchool.Content/Defs.cs index 9af2bb3..dfeeb10 100644 --- a/src/HSchool.Content/Defs.cs +++ b/src/HSchool.Content/Defs.cs @@ -104,6 +104,12 @@ public sealed class ThingDef : Def /// PE kit. Worn for that lesson; not a second wardrobe of everyday clothes. public bool Pe { get; init; } + + /// + /// Chance the dress generator issues this portable non-apparel item. 0 — not rolled (textbooks + /// are granted per subject instead). Apparel ignores this and fills layers. + /// + public float CarryChance { get; init; } } public sealed class PositionDef : Def; diff --git a/src/HSchool.Content/PeopleDefValidator.cs b/src/HSchool.Content/PeopleDefValidator.cs index 25c5d45..334c5d5 100644 --- a/src/HSchool.Content/PeopleDefValidator.cs +++ b/src/HSchool.Content/PeopleDefValidator.cs @@ -513,6 +513,19 @@ internal static class PeopleDefValidator throw new ContentLoadException($"BehaviorDef '{behavior.DefName}' goal weights cannot be negative."); } + if (behavior.CarryMassBase < 0f + || behavior.CarryMassPerStrength < 0f + || behavior.CarryMassPerEndurance < 0f + || behavior.CarryMassPerHauling < 0f) + { + throw new ContentLoadException($"BehaviorDef '{behavior.DefName}' carry mass cannot be negative."); + } + + if (behavior.OptionalApparelChance is < 0f or > 1f) + { + throw new ContentLoadException($"BehaviorDef '{behavior.DefName}' optionalApparelChance must be 0–1."); + } + // A pack may invert this on purpose — lunch then pulls the class out of the lesson. // The warning is the catch; refusing to load would make the number unmoddable. if (behavior.LunchWeight > behavior.DutyLessonWeight) diff --git a/src/HSchool.Content/PeopleDefs.cs b/src/HSchool.Content/PeopleDefs.cs index 999fa00..2bba117 100644 --- a/src/HSchool.Content/PeopleDefs.cs +++ b/src/HSchool.Content/PeopleDefs.cs @@ -250,6 +250,18 @@ public sealed class BehaviorDef : Def /// pulls anybody out of a lesson. /// public float LunchWeight { get; init; } = 6f; + + /// Kilograms a person can carry at strength/endurance/hauling 0, before the per-skill terms. + public float CarryMassBase { get; init; } = 5f; + + public float CarryMassPerStrength { get; init; } = 0.08f; + + public float CarryMassPerEndurance { get; init; } = 0.04f; + + public float CarryMassPerHauling { get; init; } = 0.08f; + + /// Chance each optional layer (sweater, coat, hat, accessory) is worn at generation. + public float OptionalApparelChance { get; init; } = 0.4f; } public enum BodyAttributeKind diff --git a/src/HSchool.People/CarryMass.cs b/src/HSchool.People/CarryMass.cs new file mode 100644 index 0000000..cf3ba62 --- /dev/null +++ b/src/HSchool.People/CarryMass.cs @@ -0,0 +1,63 @@ +namespace HSchool.People; + +/// +/// How much a person may carry in the bag. The curve lives on ; +/// these fallbacks match vanilla so a pack without the new fields still dresses people. +/// Worn mass does not count in this slice, and overload does not slow walking. +/// +public static class CarryMass +{ + public const string Strength = "Strength"; + public const string Endurance = "Endurance"; + public const string Hauling = "Hauling"; + + public const float DefaultBase = 5f; + public const float DefaultPerStrength = 0.08f; + public const float DefaultPerEndurance = 0.04f; + public const float DefaultPerHauling = 0.08f; + + public static float Capacity(DefCatalog catalog, IReadOnlyDictionary skills) => + Capacity(catalog, Skill(skills, Strength), Skill(skills, Endurance), Skill(skills, Hauling)); + + public static float Capacity(DefCatalog catalog, IReadOnlyDictionary skills) => + Capacity( + catalog, + Skill(skills, Strength), + Skill(skills, Endurance), + Skill(skills, Hauling)); + + public static float Capacity(DefCatalog catalog, float strength, float endurance, float hauling) + { + var rules = catalog.BehaviorRules; + var value = (rules?.CarryMassBase ?? DefaultBase) + + (strength * (rules?.CarryMassPerStrength ?? DefaultPerStrength)) + + (endurance * (rules?.CarryMassPerEndurance ?? DefaultPerEndurance)) + + (hauling * (rules?.CarryMassPerHauling ?? DefaultPerHauling)); + return MathF.Round(MathF.Max(value, 0f), 2); + } + + public static float Held(DefCatalog catalog, IEnumerable items) + { + var sum = 0f; + foreach (var item in items) + { + if (!item.Location.Equals(ItemLocations.Bag, StringComparison.Ordinal)) + { + continue; + } + + if (catalog.Things.TryGetValue(item.Def, out var def)) + { + sum += def.Mass; + } + } + + return MathF.Round(sum, 2); + } + + private static float Skill(IReadOnlyDictionary skills, string name) => + skills.TryGetValue(name, out var value) ? value : 0f; + + private static float Skill(IReadOnlyDictionary skills, string name) => + skills.TryGetValue(name, out var value) ? value : 0f; +} diff --git a/src/HSchool.People/DressGenerator.cs b/src/HSchool.People/DressGenerator.cs new file mode 100644 index 0000000..ae30818 --- /dev/null +++ b/src/HSchool.People/DressGenerator.cs @@ -0,0 +1,414 @@ +namespace HSchool.People; + +/// +/// Fills a person's wardrobe from a stream that does not touch looks or skills. Same person id +/// and school seed always yield the same items, colours and places. +/// +public static class DressGenerator +{ + public static Person Dress(DefCatalog catalog, Person person, int schoolSeed, int? pupilYear) + { + ArgumentNullException.ThrowIfNull(catalog); + ArgumentNullException.ThrowIfNull(person); + + var age = person.AgeOn(RosterGenerator.DefaultAsOf); + return Dress(catalog, person, schoolSeed, pupilYear, age); + } + + public static Person Dress( + DefCatalog catalog, + Person person, + int schoolSeed, + int? pupilYear, + int age) + { + ArgumentNullException.ThrowIfNull(catalog); + ArgumentNullException.ThrowIfNull(person); + + var rng = new Random(Seed.Mix(schoolSeed, person.Id, dayNumber: 0, Seed.ApparelSalt)); + var items = new List(); + var occupied = new HashSet(StringComparer.Ordinal); + var chance = catalog.BehaviorRules?.OptionalApparelChance ?? 0.4f; + + foreach (var layer in RequiredLayers) + { + TryWear(catalog, person, age, rng, layer, occupied, items); + } + + foreach (var layer in OptionalLayers) + { + if (rng.NextDouble() < chance) + { + TryWear(catalog, person, age, rng, layer, occupied, items); + } + } + + if (!occupied.Contains(ApparelLayers.Outer)) + { + TryStashOuter(catalog, person, age, rng, items); + } + + if (person.IsStudent && HasPhysicalEducation(catalog, pupilYear)) + { + GrantPeKit(catalog, person, age, rng, items); + } + + var capacity = CarryMass.Capacity(catalog, person.Skills); + var held = 0f; + GrantChanceCarry(catalog, person, age, rng, items, ref held, capacity); + if (person.IsStudent && pupilYear is { } year) + { + GrantTextbooks(catalog, year, rng, items, ref held, capacity); + } + + return person with { Items = items }; + } + + public static Person EnsureDressed( + DefCatalog catalog, + Person person, + int schoolSeed, + int? pupilYear, + int age) + { + if (person.Items.Count > 0) + { + return person; + } + + return Dress(catalog, person, schoolSeed, pupilYear, age); + } + + public static Roster EnsureRoster(DefCatalog catalog, Roster roster, int schoolSeed, DateTime asOf) + { + var years = roster.Classes.ToDictionary( + schoolClass => schoolClass.Id, + schoolClass => schoolClass.Year, + StringComparer.Ordinal); + var people = new Person[roster.People.Count]; + for (var i = 0; i < roster.People.Count; i++) + { + var person = roster.People[i]; + int? year = person.ClassId is { } classId && years.TryGetValue(classId, out var value) + ? value + : null; + people[i] = EnsureDressed(catalog, person, schoolSeed, year, person.AgeOn(asOf)); + } + + return new Roster(people, roster.Families, roster.Classes); + } + + public static ApplicantPool EnsurePool( + DefCatalog catalog, + ApplicantPool pool, + Roster roster, + int schoolSeed, + DateTime asOf) + { + var rosterPeople = roster.People.ToDictionary(person => person.Id, StringComparer.Ordinal); + var applicants = new Applicant[pool.Applicants.Count]; + for (var i = 0; i < pool.Applicants.Count; i++) + { + var applicant = pool.Applicants[i]; + if (rosterPeople.TryGetValue(applicant.Person.Id, out var member)) + { + applicants[i] = applicant with { Person = member }; + continue; + } + + applicants[i] = applicant with + { + Person = EnsureDressed( + catalog, + applicant.Person, + schoolSeed, + pupilYear: null, + applicant.Person.AgeOn(asOf)), + }; + } + + return pool with { Applicants = applicants }; + } + + public static bool NeedsDressing(Roster roster, ApplicantPool? pool) + { + foreach (var person in roster.People) + { + if (person.Items.Count == 0) + { + return true; + } + } + + if (pool is null) + { + return false; + } + + foreach (var applicant in pool.Applicants) + { + if (applicant.Person.Items.Count == 0) + { + return true; + } + } + + return false; + } + + /// + /// Adds textbooks for subjects the pupil just became old enough for. Existing clothes stay. + /// + public static Person EnsureYearTextbooks(DefCatalog catalog, Person person, int year) + { + if (!person.IsStudent) + { + return person; + } + + var items = person.Items.ToList(); + var held = CarryMass.Held(catalog, items); + var capacity = CarryMass.Capacity(catalog, person.Skills); + var rng = new Random(0); + GrantTextbooks(catalog, year, rng, items, ref held, capacity); + return person with { Items = items }; + } + + private static readonly string[] RequiredLayers = + [ApparelLayers.Underwear, ApparelLayers.Socks, ApparelLayers.Bottom, ApparelLayers.Top, ApparelLayers.Shoes]; + + private static readonly string[] OptionalLayers = + [ApparelLayers.OverTop, ApparelLayers.Outer, ApparelLayers.Head, ApparelLayers.Accessory]; + + private static void TryWear( + DefCatalog catalog, + Person person, + int age, + Random rng, + string layer, + HashSet occupied, + List items) + { + if (occupied.Contains(layer)) + { + return; + } + + var candidates = Apparel(catalog, person.Female, age, everyday: true) + .Where(def => def.Layers.Contains(layer, StringComparer.Ordinal) + && def.Layers.All(candidate => !occupied.Contains(candidate))) + .ToList(); + if (candidates.Count == 0) + { + return; + } + + var pick = candidates[rng.Next(candidates.Count)]; + var color = PickColor(catalog, pick, rng, worn: true); + items.Add(new InventoryItem(pick.DefName, color, Condition: 1, ItemLocations.Worn)); + foreach (var taken in pick.Layers) + { + occupied.Add(taken); + } + } + + private static void TryStashOuter( + DefCatalog catalog, + Person person, + int age, + Random rng, + List items) + { + var candidates = Apparel(catalog, person.Female, age, everyday: true) + .Where(def => def.Layers.Contains(ApparelLayers.Outer, StringComparer.Ordinal)) + .ToList(); + if (candidates.Count == 0) + { + return; + } + + var pick = candidates[rng.Next(candidates.Count)]; + var color = PickColor(catalog, pick, rng, worn: false); + items.Add(new InventoryItem(pick.DefName, color, Condition: 1, ItemLocations.Home)); + } + + private static void GrantPeKit( + DefCatalog catalog, + Person person, + int age, + Random rng, + List items) + { + foreach (var def in Apparel(catalog, person.Female, age, everyday: false).Where(candidate => candidate.Pe)) + { + var color = PickColor(catalog, def, rng, worn: false); + items.Add(new InventoryItem(def.DefName, color, Condition: 1, ItemLocations.Home)); + } + } + + private static void GrantChanceCarry( + DefCatalog catalog, + Person person, + int age, + Random rng, + List items, + ref float held, + float capacity) + { + foreach (var def in catalog.Things.Values + .Where(thing => !thing.Abstract + && thing.Portable + && thing.Layers.Count == 0 + && thing.CarryChance > 0) + .OrderBy(thing => thing.DefName, StringComparer.Ordinal)) + { + if (!AgeFits(def, age) || !SexFits(def, person.Female)) + { + continue; + } + + if (rng.NextDouble() >= def.CarryChance) + { + continue; + } + + var color = PickColor(catalog, def, rng, worn: false); + Place(catalog, items, def, color, subject: null, ref held, capacity); + } + } + + private static void GrantTextbooks( + DefCatalog catalog, + int year, + Random rng, + List items, + ref float held, + float capacity) + { + var textbook = catalog.Things.Values + .Where(thing => !thing.Abstract + && thing.Portable + && thing.Layers.Count == 0 + && thing.CarryChance <= 0) + .OrderBy(thing => thing.DefName, StringComparer.Ordinal) + .FirstOrDefault(); + if (textbook is null) + { + return; + } + + var have = items + .Where(item => item.Def.Equals(textbook.DefName, StringComparison.Ordinal) && item.Subject is not null) + .Select(item => item.Subject!) + .ToHashSet(StringComparer.Ordinal); + + foreach (var subject in catalog.Subjects.Values + .Where(def => !def.Abstract && year >= def.Grades.Min && year <= def.Grades.Max) + .OrderBy(def => def.DefName, StringComparer.Ordinal)) + { + if (!have.Add(subject.DefName)) + { + continue; + } + + var color = PickColor(catalog, textbook, rng, worn: false); + Place(catalog, items, textbook, color, subject.DefName, ref held, capacity); + } + } + + private static void Place( + DefCatalog catalog, + List items, + ThingDef def, + string? color, + string? subject, + ref float held, + float capacity) + { + var location = held + def.Mass <= capacity ? ItemLocations.Bag : ItemLocations.Home; + items.Add(new InventoryItem(def.DefName, color, Condition: 1, location, subject)); + if (location.Equals(ItemLocations.Bag, StringComparison.Ordinal)) + { + held = MathF.Round(held + def.Mass, 2); + } + } + + private static IEnumerable Apparel(DefCatalog catalog, bool female, int age, bool everyday) + { + foreach (var def in catalog.Things.Values.OrderBy(thing => thing.DefName, StringComparer.Ordinal)) + { + if (def.Abstract || def.Layers.Count == 0 || !AgeFits(def, age) || !SexFits(def, female)) + { + continue; + } + + if (everyday) + { + if (def.Pe) + { + continue; + } + + if (def.SkirtLength is not null + && def.SkirtLength.Equals(SkirtLengths.Short, StringComparison.Ordinal)) + { + continue; + } + } + + yield return def; + } + } + + private static string? PickColor(DefCatalog catalog, ThingDef def, Random rng, bool worn) + { + if (def.Colors.Count == 0) + { + return null; + } + + var pool = def.Colors.ToList(); + if (worn) + { + var quiet = def.Colors + .Where(id => catalog.Colors.TryGetValue(id, out var color) + && !color.Tags.Contains(ColorTags.Bright, StringComparer.Ordinal)) + .ToList(); + if (quiet.Count > 0) + { + pool = quiet; + } + } + + pool.Sort(StringComparer.Ordinal); + return pool[rng.Next(pool.Count)]; + } + + private static bool AgeFits(ThingDef def, int age) => + def.Age is not { } range || (age >= range.Min && age <= range.Max); + + private static bool SexFits(ThingDef def, bool female) + { + if (def.Sex is null) + { + return true; + } + + var want = female ? "female" : "male"; + return def.Sex.Equals(want, StringComparison.OrdinalIgnoreCase); + } + + private static bool HasPhysicalEducation(DefCatalog catalog, int? pupilYear) + { + if (pupilYear is not { } year) + { + return false; + } + + return catalog.Subjects.Values.Any(subject => + !subject.Abstract + && subject.DefName.Equals("PhysicalEducation", StringComparison.Ordinal) + && year >= subject.Grades.Min + && year <= subject.Grades.Max); + } +} diff --git a/src/HSchool.People/FamilyFactory.cs b/src/HSchool.People/FamilyFactory.cs index 369fc68..89f0f8a 100644 --- a/src/HSchool.People/FamilyFactory.cs +++ b/src/HSchool.People/FamilyFactory.cs @@ -78,40 +78,50 @@ internal static class FamilyFactory { parentIds.Add(fatherId); members.Add( - RollAdult( + DressGenerator.Dress( catalog, - names, - rng, - fatherId, - familyId, - female: false, - fatherBirth, - asOf, - surname, - fatherGiven, - NameGrammar.Patronymic(fatherPatronymicSource.Form, female: false, names.PatronymicRule), - isParent: childDrafts.Length > 0, - nativeLanguage)); + RollAdult( + catalog, + names, + rng, + fatherId, + familyId, + female: false, + fatherBirth, + asOf, + surname, + fatherGiven, + NameGrammar.Patronymic(fatherPatronymicSource.Form, female: false, names.PatronymicRule), + isParent: childDrafts.Length > 0, + nativeLanguage), + schoolSeed, + pupilYear: null, + SchoolYears.AgeYears(fatherBirth, asOf))); } if (hasMother) { parentIds.Add(motherId); members.Add( - RollAdult( + DressGenerator.Dress( catalog, - names, - rng, - motherId, - familyId, - female: true, - motherBirth, - asOf, - surname, - motherGiven, - NameGrammar.Patronymic(motherPatronymicSource.Form, female: true, names.PatronymicRule), - isParent: childDrafts.Length > 0, - nativeLanguage)); + RollAdult( + catalog, + names, + rng, + motherId, + familyId, + female: true, + motherBirth, + asOf, + surname, + motherGiven, + NameGrammar.Patronymic(motherPatronymicSource.Form, female: true, names.PatronymicRule), + isParent: childDrafts.Length > 0, + nativeLanguage), + schoolSeed, + pupilYear: null, + SchoolYears.AgeYears(motherBirth, asOf))); } var childIds = new List(childDrafts.Length); @@ -121,17 +131,22 @@ internal static class FamilyFactory var id = $"{familyId}.c{i}"; childIds.Add(id); members.Add( - RollChild( + DressGenerator.Dress( catalog, - names, - rng, - id, - familyId, - draft, - asOf, - surname, - fatherGiven.Form, - nativeLanguage)); + RollChild( + catalog, + names, + rng, + id, + familyId, + draft, + asOf, + surname, + fatherGiven.Form, + nativeLanguage), + schoolSeed, + draft.Seat.Year, + SchoolYears.AgeYears(draft.Birth, asOf))); } var family = new Family(familyId, parentIds, childIds, childIds.Count, fatherGiven.Form, surname.Male); @@ -151,6 +166,7 @@ internal static class FamilyFactory DateTime yearStart, DateTime asOf, int childIndex, + int schoolSeed, string? nativeLanguage = null) { var fatherGiven = FatherGivenOf(family, members); @@ -184,23 +200,28 @@ internal static class FamilyFactory surnameCases, PatronymicTable(patronymic, female)); - return new Person - { - Id = $"{family.Id}.c{childIndex}", - FamilyId = family.Id, - Female = female, - BirthDate = DateTime.SpecifyKind(birth, DateTimeKind.Utc), - Name = name, - IsStudent = true, - IsStaff = false, - IsParent = false, - ClassId = seat.ClassId, - Numbers = numbers, - Choices = choices, - Skills = skills, - Traits = traits, - Needs = needs, - }; + return DressGenerator.Dress( + catalog, + new Person + { + Id = $"{family.Id}.c{childIndex}", + FamilyId = family.Id, + Female = female, + BirthDate = DateTime.SpecifyKind(birth, DateTimeKind.Utc), + Name = name, + IsStudent = true, + IsStaff = false, + IsParent = false, + ClassId = seat.ClassId, + Numbers = numbers, + Choices = choices, + Skills = skills, + Traits = traits, + Needs = needs, + }, + schoolSeed, + seat.Year, + age); } /// @@ -226,20 +247,25 @@ internal static class FamilyFactory var birth = asOf.AddYears(-(24 + rng.Next(38))).AddDays(-rng.Next(365)); var id = $"{familyId}.p0"; - var person = RollAdult( + var person = DressGenerator.Dress( catalog, - names, - rng, - id, - familyId, - female, - birth, - asOf, - surname, - given, - NameGrammar.Patronymic(patronymicSource.Form, female, names.PatronymicRule), - isParent: false, - nativeLanguage); + RollAdult( + catalog, + names, + rng, + id, + familyId, + female, + birth, + asOf, + surname, + given, + NameGrammar.Patronymic(patronymicSource.Form, female, names.PatronymicRule), + isParent: false, + nativeLanguage), + schoolSeed, + pupilYear: null, + SchoolYears.AgeYears(birth, asOf)); return (new Family(familyId, [id], [], NextChild: 0, FatherGiven: string.Empty, Surname: surname.Male), person); } diff --git a/src/HSchool.People/Inventory.cs b/src/HSchool.People/Inventory.cs new file mode 100644 index 0000000..c4e957d --- /dev/null +++ b/src/HSchool.People/Inventory.cs @@ -0,0 +1,21 @@ +namespace HSchool.People; + +/// Where an instance lives. One place at a time — worn, bag, locker or home. +public static class ItemLocations +{ + public const string Worn = "worn"; + public const string Bag = "bag"; + public const string Locker = "locker"; + public const string Home = "home"; +} + +/// +/// One thing on a person. is set only on a textbook instance — the def is +/// shared. Condition is 1 at birth; wear is a later phase. +/// +public sealed record InventoryItem( + string Def, + string? Color, + float Condition, + string Location, + string? Subject = null); diff --git a/src/HSchool.People/Roster.cs b/src/HSchool.People/Roster.cs index 20b0728..9b3cee0 100644 --- a/src/HSchool.People/Roster.cs +++ b/src/HSchool.People/Roster.cs @@ -46,6 +46,9 @@ public sealed record Person /// Hourly rate frozen at hire. Null until the person is staff. public float? HourlyWageAsk { get; init; } + /// Worn, bag, locker and home. Empty on rosters written before clothes existed. + public IReadOnlyList Items { get; init; } = []; + public int AgeOn(DateTime asOf) => SchoolYears.AgeYears(BirthDate, asOf); } diff --git a/src/HSchool.People/Seed.cs b/src/HSchool.People/Seed.cs index 27ce514..8d5a8cb 100644 --- a/src/HSchool.People/Seed.cs +++ b/src/HSchool.People/Seed.cs @@ -16,6 +16,7 @@ public static class Seed public const int SkillGrantSalt = 8; public const int NativeLanguageSalt = 9; public const int ClimatePresetSalt = 10; + public const int ApparelSalt = 11; /// A stream that belongs to the school rather than to one family. public static int ForSchool(int schoolSeed, int salt) => Mix(schoolSeed, familyIndex: -1, salt); diff --git a/src/HSchool.People/YearlyIntake.cs b/src/HSchool.People/YearlyIntake.cs index 9518746..c6c214f 100644 --- a/src/HSchool.People/YearlyIntake.cs +++ b/src/HSchool.People/YearlyIntake.cs @@ -175,19 +175,22 @@ public static class YearlyIntake } var rng = new Random(Seed.Mix(schoolSeed, person.Id, when.Year, Seed.SkillGrantSalt)); - people[id] = person with - { - Skills = PersonSampler.EnsurePupilYear( - catalog, - names, - rng, - person.AgeOn(when), - person.Choices, - person.Traits, - person.Skills, - year, - nativeLanguage), - }; + people[id] = DressGenerator.EnsureYearTextbooks( + catalog, + person with + { + Skills = PersonSampler.EnsurePupilYear( + catalog, + names, + rng, + person.AgeOn(when), + person.Choices, + person.Traits, + person.Skills, + year, + nativeLanguage), + }, + year); } } @@ -236,7 +239,7 @@ public static class YearlyIntake var childIndex = family.NextChildIndex; var rng = new Random(Seed.Mix(schoolSeed, index, Seed.IntakeSalt + yearStart.Year * 10 + childIndex)); - var child = FamilyFactory.AddChild(catalog, names, rng, family, members, seats[cursor], yearStart, asOf, childIndex, nativeLanguage); + var child = FamilyFactory.AddChild(catalog, names, rng, family, members, seats[cursor], yearStart, asOf, childIndex, schoolSeed, nativeLanguage); people[child.Id] = child; var familyAt = families.FindIndex(candidate => candidate.Id.Equals(family.Id, StringComparison.Ordinal)); families[familyAt] = family with diff --git a/src/HSchool.Server/Api/PeopleModels.cs b/src/HSchool.Server/Api/PeopleModels.cs index b237ea4..2b97582 100644 --- a/src/HSchool.Server/Api/PeopleModels.cs +++ b/src/HSchool.Server/Api/PeopleModels.cs @@ -61,7 +61,27 @@ internal sealed record PersonCardResponse( IReadOnlyList Needs, string? Activity, string? ActivityLabel, - PersonFamilyResponse Family); + PersonFamilyResponse Family, + IReadOnlyList Worn, + IReadOnlyList Carried, + float CarryMass, + float CarryCapacity); + +internal sealed record WornItemResponse( + string DefName, + string Label, + string? Color, + string? ColorLabel, + IReadOnlyList Layers); + +internal sealed record CarriedItemResponse( + string DefName, + string Label, + string? Color, + string? ColorLabel, + string? Subject, + string? SubjectLabel, + float Mass); internal sealed record LabeledStatResponse(string Id, string Label, string Value); diff --git a/src/HSchool.Server/Game/PersonCardReader.cs b/src/HSchool.Server/Game/PersonCardReader.cs index 856714e..fe5d759 100644 --- a/src/HSchool.Server/Game/PersonCardReader.cs +++ b/src/HSchool.Server/Game/PersonCardReader.cs @@ -81,7 +81,11 @@ internal static class PersonCardReader Needs(needs, catalog, locale), activityId, activityLabel, - Family(roster, person)); + Family(roster, person), + Worn(person, catalog, locale), + Carried(person, catalog, locale), + catalog is null ? 0f : CarryMass.Held(catalog, person.Items), + Capacity(person, skills, catalog)); } private static IReadOnlyDictionary? LiveNeeds(World world, string personId) @@ -260,6 +264,99 @@ internal static class PersonCardReader return rows; } + private static IReadOnlyList Worn(Person person, DefCatalog? catalog, string locale) + { + var rows = new List(); + foreach (var item in person.Items) + { + if (!item.Location.Equals(ItemLocations.Worn, StringComparison.Ordinal)) + { + continue; + } + + IReadOnlyList layerIds = []; + if (catalog is not null && catalog.Things.TryGetValue(item.Def, out var def)) + { + layerIds = def.Layers; + } + + var layers = layerIds + .Select(layer => new DefLabelResponse(layer, catalog?.Text(locale, layer) ?? layer)) + .ToArray(); + rows.Add(new WornItemResponse( + item.Def, + ThingLabel(catalog, locale, item.Def), + item.Color, + ColorLabel(catalog, locale, item.Color), + layers)); + } + + return rows; + } + + private static IReadOnlyList Carried(Person person, DefCatalog? catalog, string locale) + { + var rows = new List(); + foreach (var item in person.Items) + { + if (!item.Location.Equals(ItemLocations.Bag, StringComparison.Ordinal)) + { + continue; + } + + var mass = catalog is not null && catalog.Things.TryGetValue(item.Def, out var def) ? def.Mass : 0f; + string? subjectLabel = null; + if (item.Subject is not null) + { + subjectLabel = catalog is not null && catalog.Subjects.TryGetValue(item.Subject, out var subject) + ? catalog.Label(locale, subject) + : item.Subject; + } + + rows.Add(new CarriedItemResponse( + item.Def, + ThingLabel(catalog, locale, item.Def), + item.Color, + ColorLabel(catalog, locale, item.Color), + item.Subject, + subjectLabel, + mass)); + } + + return rows; + } + + private static string ThingLabel(DefCatalog? catalog, string locale, string defName) + { + if (catalog is not null && catalog.Things.TryGetValue(defName, out var def)) + { + return catalog.Label(locale, def); + } + + return defName; + } + + private static string? ColorLabel(DefCatalog? catalog, string locale, string? color) => + color is null ? null : catalog?.Text(locale, color) ?? color; + + private static float Capacity( + Person person, + IReadOnlyDictionary? live, + DefCatalog? catalog) + { + if (catalog is null) + { + return 0f; + } + + if (live is not null) + { + return CarryMass.Capacity(catalog, live); + } + + return CarryMass.Capacity(catalog, person.Skills); + } + private static PersonFamilyResponse Family(Roster roster, Person person) { var family = roster.Families.FirstOrDefault(candidate => candidate.Id.Equals(person.FamilyId, StringComparison.Ordinal)); diff --git a/src/HSchool.Server/Game/SchoolWorker.cs b/src/HSchool.Server/Game/SchoolWorker.cs index c7ff754..ab9bfc0 100644 --- a/src/HSchool.Server/Game/SchoolWorker.cs +++ b/src/HSchool.Server/Game/SchoolWorker.cs @@ -924,6 +924,13 @@ internal sealed class SchoolWorker } } + if (DressGenerator.NeedsDressing(roster, applicants)) + { + roster = DressGenerator.EnsureRoster(catalog, roster, seed, school.Clock.Time); + applicants = DressGenerator.EnsurePool(catalog, applicants, roster, seed, school.Clock.Time); + generated = true; + } + if (!RosterFit.Matches(roster, demand)) { throw new SchoolContentUnavailableException( diff --git a/src/HSchool.Server/mods/core/defs/behavior/rules.jsonc b/src/HSchool.Server/mods/core/defs/behavior/rules.jsonc index 3328f29..7bd9506 100644 --- a/src/HSchool.Server/mods/core/defs/behavior/rules.jsonc +++ b/src/HSchool.Server/mods/core/defs/behavior/rules.jsonc @@ -21,4 +21,11 @@ // beats walking on to the next room, below the lesson so it never pulls // anybody out of class. Raise it past dutyLessonWeight and they will. "lunchWeight": 6, + // Bag limit: base kg + per point of Strength, Endurance and Hauling. + "carryMassBase": 5, + "carryMassPerStrength": 0.08, + "carryMassPerEndurance": 0.04, + "carryMassPerHauling": 0.08, + // Sweater, coat, hat, accessory — each rolled separately at generation. + "optionalApparelChance": 0.4, } diff --git a/src/HSchool.Server/mods/core/defs/skills/physical.jsonc b/src/HSchool.Server/mods/core/defs/skills/physical.jsonc index fca16d1..f9c1c50 100644 --- a/src/HSchool.Server/mods/core/defs/skills/physical.jsonc +++ b/src/HSchool.Server/mods/core/defs/skills/physical.jsonc @@ -30,4 +30,10 @@ { "attribute": "Build", "value": "Athletic", "min": 40 }, ], }, + { + "defName": "Hauling", + "always": true, + "range": { "min": 0, "max": 100 }, + "distribution": { "mean": 50, "stdDev": 12 }, + }, ] diff --git a/src/HSchool.Server/mods/core/defs/things/carry.jsonc b/src/HSchool.Server/mods/core/defs/things/carry.jsonc index cdb150f..0e765ce 100644 --- a/src/HSchool.Server/mods/core/defs/things/carry.jsonc +++ b/src/HSchool.Server/mods/core/defs/things/carry.jsonc @@ -1,6 +1,6 @@ [ - { "defName": "SchoolBag", "portable": true, "mass": 0.8 }, + { "defName": "SchoolBag", "portable": true, "mass": 0.8, "age": { "min": 6, "max": 18 }, "carryChance": 1 }, { "defName": "Textbook", "portable": true, "mass": 0.4 }, - { "defName": "Phone", "portable": true, "mass": 0.15, "colors": ["Black", "White", "Gray"] }, - { "defName": "Bottle", "portable": true, "mass": 0.3, "colors": ["Blue", "Green", "White"] }, + { "defName": "Phone", "portable": true, "mass": 0.15, "colors": ["Black", "White", "Gray"], "age": { "min": 11 }, "carryChance": 0.45 }, + { "defName": "Bottle", "portable": true, "mass": 0.3, "colors": ["Blue", "Green", "White"], "age": { "min": 6 }, "carryChance": 0.7 }, ] diff --git a/src/HSchool.Server/mods/core/localizations/en.jsonc b/src/HSchool.Server/mods/core/localizations/en.jsonc index 811d27c..0163aff 100644 --- a/src/HSchool.Server/mods/core/localizations/en.jsonc +++ b/src/HSchool.Server/mods/core/localizations/en.jsonc @@ -115,6 +115,7 @@ "Agility": "Agility", "Strength": "Strength", "Endurance": "Endurance", + "Hauling": "Hauling", "Diligent": "Diligent", "AbsentMinded": "Absent-minded", "Bully": "Bully", diff --git a/src/HSchool.Server/mods/core/localizations/ru.jsonc b/src/HSchool.Server/mods/core/localizations/ru.jsonc index 7b8b625..c910028 100644 --- a/src/HSchool.Server/mods/core/localizations/ru.jsonc +++ b/src/HSchool.Server/mods/core/localizations/ru.jsonc @@ -115,6 +115,7 @@ "Agility": "Ловкость", "Strength": "Сила", "Endurance": "Выносливость", + "Hauling": "Переноска", "Diligent": "Усидчивый", "AbsentMinded": "Рассеянный", "Bully": "Задира", diff --git a/tests/HSchool.AppHost.Tests/InventoryApiTests.cs b/tests/HSchool.AppHost.Tests/InventoryApiTests.cs new file mode 100644 index 0000000..a7a308a --- /dev/null +++ b/tests/HSchool.AppHost.Tests/InventoryApiTests.cs @@ -0,0 +1,154 @@ +using System.Net.Http.Json; +using System.Text.Json; +using System.Text.Json.Nodes; + +namespace HSchool.AppHost.Tests; + +[Collection(AppHostCollection.Name)] +public class InventoryApiTests(AppHostFixture fixture) +{ + private static readonly DateTime Start = new(2012, 4, 3, 6, 0, 0, DateTimeKind.Utc); + + [Fact] + public async Task Card_IncludesWornAndCarried_ListDoesNot() + { + using var client = fixture.App.CreateHttpClient("server"); + await SchoolApiTests.ResetAsync(client); + var school = await SchoolApiTests.CreateAsync(client, "Гардероб карточка", Start, seed: 31); + + var page = await client.GetFromJsonAsync( + $"/api/schools/{school.Id}/people?role=student&year=5&pageSize=20", + TestContext.Current.CancellationToken); + Assert.NotNull(page); + var girl = page.People.First(person => person.Female); + + using var listResponse = await client.GetAsync( + $"/api/schools/{school.Id}/people?pageSize=1", + TestContext.Current.CancellationToken); + var listJson = await listResponse.Content.ReadAsStringAsync(TestContext.Current.CancellationToken); + Assert.DoesNotContain("carryMass", listJson, StringComparison.Ordinal); + Assert.DoesNotContain("\"worn\"", listJson, StringComparison.Ordinal); + Assert.DoesNotContain("\"carried\"", listJson, StringComparison.Ordinal); + + var card = await client.GetFromJsonAsync( + $"/api/schools/{school.Id}/people/{Uri.EscapeDataString(girl.Id)}?lang=ru", + TestContext.Current.CancellationToken); + Assert.NotNull(card); + Assert.NotEmpty(card.Worn); + Assert.Contains(card.Worn, item => item.Layers.Count > 0 && item.ColorLabel is { Length: > 0 }); + Assert.True(card.CarryCapacity > 0); + Assert.True(card.CarryMass <= card.CarryCapacity); + Assert.Contains(card.Carried, item => item.Mass > 0); + } + + [Fact] + public async Task SameSeed_YieldsTheSameShirt() + { + using var client = fixture.App.CreateHttpClient("server"); + await SchoolApiTests.ResetAsync(client); + var first = await SchoolApiTests.CreateAsync(client, "Синяя рубашка 1", Start, seed: 31); + var shirt = await FirstGirlTopAsync(client, first.Id); + + await SchoolApiTests.ResetAsync(client); + var second = await SchoolApiTests.CreateAsync(client, "Синяя рубашка 2", Start, seed: 31); + var again = await FirstGirlTopAsync(client, second.Id); + + Assert.Equal(shirt.DefName, again.DefName); + Assert.Equal(shirt.Color, again.Color); + } + + [Fact] + public async Task PeopleJsonWithoutInventory_IsDressedOnReloadAndRewritten() + { + using var client = fixture.App.CreateHttpClient("server"); + await SchoolApiTests.ResetAsync(client); + var school = await SchoolApiTests.CreateAsync(client, "Старый сейв без одежды", Start, seed: 31); + var before = await FirstGirlTopAsync(client, school.Id); + + var directory = await SavesDirectoryAsync(client); + var path = Path.Combine(directory, $"{school.Id}.people.json"); + StripItems(path); + Assert.DoesNotContain("\"items\"", File.ReadAllText(path), StringComparison.Ordinal); + + using var reload = await client.PostAsync("/api/dev/reload-schools", content: null, TestContext.Current.CancellationToken); + reload.EnsureSuccessStatusCode(); + + var after = await FirstGirlTopAsync(client, school.Id); + Assert.Equal(before.DefName, after.DefName); + Assert.Equal(before.Color, after.Color); + Assert.Contains("\"items\"", File.ReadAllText(path), StringComparison.Ordinal); + } + + private static async Task FirstGirlTopAsync(HttpClient client, int schoolId) + { + var page = await client.GetFromJsonAsync( + $"/api/schools/{schoolId}/people?role=student&sex=female&pageSize=20", + TestContext.Current.CancellationToken); + Assert.NotNull(page); + Assert.NotEmpty(page.People); + var girl = page.People[0]; + var card = await client.GetFromJsonAsync( + $"/api/schools/{schoolId}/people/{Uri.EscapeDataString(girl.Id)}?lang=ru", + TestContext.Current.CancellationToken); + Assert.NotNull(card); + var top = card.Worn.FirstOrDefault(item => + item.Layers.Any(layer => layer.DefName.Equals("Top", StringComparison.Ordinal))); + Assert.NotNull(top); + return top; + } + + private static async Task SavesDirectoryAsync(HttpClient client) + { + var payload = await client.GetFromJsonAsync( + "/api/dev/saves-directory", + TestContext.Current.CancellationToken); + Assert.NotNull(payload); + return payload.Path; + } + + private static void StripItems(string path) + { + var root = JsonNode.Parse(File.ReadAllText(path)) + ?? throw new InvalidOperationException("People file parsed to nothing."); + foreach (var person in root["people"]?.AsArray() ?? []) + { + person?.AsObject().Remove("items"); + } + + var applicants = root["applicants"]?["applicants"]?.AsArray(); + if (applicants is not null) + { + foreach (var applicant in applicants) + { + applicant?["person"]?.AsObject()?.Remove("items"); + } + } + + File.WriteAllText( + path, + root.ToJsonString(new JsonSerializerOptions { WriteIndented = true })); + } + + private sealed record SavesDirectoryResponse(string Path); + + private sealed record PeoplePage(IReadOnlyList People); + + private sealed record PersonRow(string Id, string FullName, bool Female); + + private sealed record Card( + IReadOnlyList Worn, + IReadOnlyList Carried, + float CarryMass, + float CarryCapacity); + + private sealed record WornItem( + string DefName, + string Label, + string? Color, + string? ColorLabel, + IReadOnlyList Layers); + + private sealed record Layer(string DefName, string Label); + + private sealed record CarriedItem(string DefName, string Label, float Mass); +} diff --git a/tests/HSchool.AppHost.Tests/golden/README.md b/tests/HSchool.AppHost.Tests/golden/README.md index 7ab6229..3788c91 100644 --- a/tests/HSchool.AppHost.Tests/golden/README.md +++ b/tests/HSchool.AppHost.Tests/golden/README.md @@ -7,6 +7,10 @@ than a new roll. These files live forever: a new save field must load `current/` and must not reshuffle `legacy-no-native/`. A real format change adds a new folder; it does not rewrite the old one. +Phase 31 rewrote `current/1.people.json` because people are born dressed (`items` on each +person, plus `Hauling`). `legacy-no-native/` is left as it was: no inventory, so load still +has to dress them and must not reshuffle names. + Regenerate after an intentional roster change (same commit): ``` diff --git a/tests/HSchool.AppHost.Tests/golden/current/1.people.json b/tests/HSchool.AppHost.Tests/golden/current/1.people.json index 9995f49..ff376d8 100644 --- a/tests/HSchool.AppHost.Tests/golden/current/1.people.json +++ b/tests/HSchool.AppHost.Tests/golden/current/1.people.json @@ -53,12 +53,12 @@ "Agility": 40, "Communication": 50, "Endurance": 68, - "Strength": 61, - "RussianLanguage": 53, - "Biology": 45, - "Medicine": 59, - "Cooking": 52, - "English": 40, + "Hauling": 60, + "Strength": 47, + "RussianLanguage": 68, + "Literature": 48, + "Biology": 39, + "Cooking": 25, "BelarusianLanguage": 39, "UkrainianLanguage": 30 }, @@ -71,7 +71,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f0.p1", @@ -124,9 +174,13 @@ "Agility": 42, "Communication": 56, "Endurance": 58, - "Strength": 50, - "RussianLanguage": 67, - "Cooking": 46 + "Hauling": 50, + "Strength": 62, + "RussianLanguage": 40, + "Cooking": 53, + "Medicine": 54, + "English": 35, + "UkrainianLanguage": 23 }, "traits": [ "AbsentMinded", @@ -138,7 +192,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f0.c0", @@ -180,28 +290,30 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 121, - "Weight": 24 + "Height": 127, + "Weight": 32 }, "choices": { - "EyeColor": "GreenEyes", - "HairColor": "BlackHair", - "Build": "Skinny" + "EyeColor": "BrownEyes", + "HairColor": "BrownHair", + "Build": "Average" }, "skills": { - "Agility": 55, - "Communication": 46, - "Endurance": 63, - "Strength": 45, - "RussianLanguage": 39, - "PhysicalEducation": 69, - "Biology": 43, - "Literature": 43, - "Mathematics": 53, - "BelarusianLanguage": 28 + "Agility": 64, + "Communication": 25, + "Endurance": 43, + "Hauling": 64, + "Strength": 52, + "RussianLanguage": 51, + "PhysicalEducation": 38, + "Biology": 51, + "Literature": 30, + "Mathematics": 47, + "BelarusianLanguage": 18 }, "traits": [ - "Diligent" + "Curious", + "Kind" ], "needs": { "Hunger": 1, @@ -209,7 +321,80 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f1.p0", @@ -262,11 +447,13 @@ "Agility": 38, "Communication": 71, "Endurance": 39, - "Strength": 35, - "RussianLanguage": 69, - "Librarianship": 49, - "English": 53, - "UkrainianLanguage": 28 + "Hauling": 37, + "Strength": 64, + "RussianLanguage": 30, + "PhysicalEducation": 58, + "Administration": 58, + "Librarianship": 61, + "BelarusianLanguage": 9 }, "traits": [ "Kind", @@ -278,7 +465,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f1.p1", @@ -319,29 +556,30 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 166, - "Weight": 68 + "Height": 160, + "Weight": 69 }, "choices": { - "EyeColor": "GreenEyes", - "HairColor": "BlackHair", - "Build": "Athletic" + "EyeColor": "BlueEyes", + "HairColor": "BrownHair", + "Build": "Heavy" }, "skills": { - "Agility": 41, - "Communication": 66, - "Endurance": 49, - "Strength": 51, - "RussianLanguage": 72, - "Geography": 52, - "Physics": 47, - "Librarianship": 55, - "English": 55, - "BelarusianLanguage": 19, - "UkrainianLanguage": 31 + "Agility": 45, + "Communication": 79, + "Endurance": 37, + "Hauling": 71, + "Strength": 47, + "RussianLanguage": 45, + "Chemistry": 60, + "Geography": 44, + "Medicine": 60, + "BelarusianLanguage": 12, + "UkrainianLanguage": 29 }, "traits": [ - "Kind" + "Leader", + "Neat" ], "needs": { "Hunger": 1, @@ -349,7 +587,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f1.c0", @@ -391,30 +673,29 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 120, - "Weight": 24 + "Height": 126, + "Weight": 23 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BlackHair", + "EyeColor": "GrayEyes", + "HairColor": "BrownHair", "Build": "Skinny" }, "skills": { - "Agility": 48, - "Communication": 27, - "Endurance": 54, - "Strength": 43, - "RussianLanguage": 49, - "PhysicalEducation": 71, - "Biology": 58, - "Literature": 32, - "Mathematics": 24, - "BelarusianLanguage": 20, - "UkrainianLanguage": 28 + "Agility": 43, + "Communication": 42, + "Endurance": 65, + "Hauling": 57, + "Strength": 32, + "RussianLanguage": 21, + "PhysicalEducation": 12, + "Biology": 46, + "Literature": 61, + "Mathematics": 16, + "BelarusianLanguage": 20 }, "traits": [ - "Diligent", - "Leader" + "Curious" ], "needs": { "Hunger": 1, @@ -422,7 +703,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f2.p0", @@ -475,11 +835,11 @@ "Agility": 76, "Communication": 51, "Endurance": 51, + "Hauling": 57, "Strength": 45, - "RussianLanguage": 53, - "PhysicalEducation": 48, - "Administration": 33, - "English": 44, + "RussianLanguage": 61, + "Librarianship": 73, + "Medicine": 76, "BelarusianLanguage": 9, "UkrainianLanguage": 22 }, @@ -492,7 +852,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f2.p1", @@ -545,8 +955,14 @@ "Agility": 74, "Communication": 68, "Endurance": 54, - "Strength": 58, - "RussianLanguage": 54 + "Hauling": 57, + "Strength": 48, + "RussianLanguage": 41, + "Geography": 54, + "Literature": 28, + "Cooking": 38, + "German": 53, + "BelarusianLanguage": 20 }, "traits": [], "needs": { @@ -555,7 +971,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Skirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + } + ] }, { "id": "f2.c0", @@ -597,8 +1057,8 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 122, - "Weight": 20 + "Height": 128, + "Weight": 27 }, "choices": { "EyeColor": "BlueEyes", @@ -606,18 +1066,19 @@ "Build": "Skinny" }, "skills": { - "Agility": 24, - "Communication": 27, - "Endurance": 46, - "Strength": 38, - "RussianLanguage": 21, - "PhysicalEducation": 76, - "Biology": 41, - "Literature": 66, - "Mathematics": 35 + "Agility": 37, + "Communication": 36, + "Endurance": 47, + "Hauling": 62, + "Strength": 45, + "RussianLanguage": 11, + "PhysicalEducation": 65, + "Biology": 54, + "Literature": 37, + "Mathematics": 43 }, "traits": [ - "Neat" + "Bully" ], "needs": { "Hunger": 1, @@ -625,7 +1086,74 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f2.c1", @@ -667,37 +1195,120 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 117, - "Weight": 28 + "Height": 116, + "Weight": 30 }, "choices": { - "EyeColor": "BlueEyes", + "EyeColor": "BrownEyes", "HairColor": "BlackHair", - "Build": "Average" + "Build": "Athletic" }, "skills": { - "Agility": 48, - "Communication": 40, - "Endurance": 34, - "Strength": 49, - "RussianLanguage": 35, - "PhysicalEducation": 78, - "Biology": 37, + "Agility": 40, + "Communication": 61, + "Endurance": 40, + "Hauling": 40, + "Strength": 40, + "RussianLanguage": 54, + "PhysicalEducation": 44, + "Biology": 44, "Literature": 56, - "Mathematics": 4, - "BelarusianLanguage": 34, - "UkrainianLanguage": 15 + "Mathematics": 38, + "UkrainianLanguage": 22 }, - "traits": [ - "HotTempered" - ], + "traits": [], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f3.p0", @@ -750,13 +1361,15 @@ "Agility": 45, "Communication": 50, "Endurance": 61, - "Strength": 43, - "RussianLanguage": 67, - "Pedagogy": 48, - "Cooking": 53, - "English": 70, - "German": 39, - "UkrainianLanguage": 26 + "Hauling": 44, + "Strength": 62, + "RussianLanguage": 78, + "Informatics": 32, + "Geography": 41, + "Pedagogy": 58, + "English": 38, + "BelarusianLanguage": 24, + "UkrainianLanguage": 29 }, "traits": [], "needs": { @@ -765,7 +1378,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Black", + "condition": 1, + "location": "home" + } + ] }, { "id": "f3.p1", @@ -806,24 +1463,24 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 148, - "Weight": 63 + "Height": 162, + "Weight": 66 }, "choices": { - "EyeColor": "GreenEyes", - "HairColor": "BlackHair", + "EyeColor": "BrownEyes", + "HairColor": "BrownHair", "Build": "Heavy" }, "skills": { - "Agility": 45, - "Communication": 62, - "Endurance": 30, - "Strength": 58, - "RussianLanguage": 49, - "Informatics": 30, - "English": 56, - "BelarusianLanguage": 32, - "UkrainianLanguage": 29 + "Agility": 38, + "Communication": 58, + "Endurance": 33, + "Hauling": 62, + "Strength": 51, + "RussianLanguage": 50, + "Mathematics": 40, + "Biology": 39, + "English": 32 }, "traits": [], "needs": { @@ -832,7 +1489,45 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + } + ] }, { "id": "f3.c0", @@ -874,25 +1569,27 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 134, - "Weight": 26 + "Height": 123, + "Weight": 32 }, "choices": { "EyeColor": "BrownEyes", "HairColor": "BrownHair", - "Build": "Skinny" + "Build": "Average" }, "skills": { - "Agility": 52, - "Communication": 44, - "Endurance": 74, - "Strength": 45, - "RussianLanguage": 51, - "PhysicalEducation": 88, - "Biology": 74, - "Literature": 54, - "Mathematics": 32, - "BelarusianLanguage": 26 + "Agility": 75, + "Communication": 49, + "Endurance": 81, + "Hauling": 72, + "Strength": 54, + "RussianLanguage": 36, + "PhysicalEducation": 45, + "Biology": 72, + "Literature": 45, + "Mathematics": 26, + "BelarusianLanguage": 38, + "UkrainianLanguage": 36 }, "traits": [], "needs": { @@ -901,7 +1598,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f3.c1", @@ -943,25 +1719,25 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 126, - "Weight": 34 + "Height": 131, + "Weight": 29 }, "choices": { - "EyeColor": "HazelEyes", + "EyeColor": "GrayEyes", "HairColor": "BrownHair", - "Build": "Average" + "Build": "Skinny" }, "skills": { - "Agility": 58, - "Communication": 32, - "Endurance": 57, - "Strength": 46, - "RussianLanguage": 42, - "PhysicalEducation": 57, - "Biology": 57, - "Literature": 67, - "Mathematics": 12, - "BelarusianLanguage": 15 + "Agility": 52, + "Communication": 41, + "Endurance": 66, + "Hauling": 34, + "Strength": 14, + "RussianLanguage": 35, + "PhysicalEducation": 31, + "Biology": 79, + "Literature": 47, + "Mathematics": 53 }, "traits": [], "needs": { @@ -970,7 +1746,92 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f4.p1", @@ -1023,12 +1884,11 @@ "Agility": 42, "Communication": 55, "Endurance": 31, - "Strength": 61, - "RussianLanguage": 47, - "Mathematics": 73, - "English": 63, - "BelarusianLanguage": 17, - "UkrainianLanguage": 22 + "Hauling": 60, + "Strength": 40, + "RussianLanguage": 51, + "English": 70, + "UkrainianLanguage": 17 }, "traits": [], "needs": { @@ -1037,7 +1897,69 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f4.c0", @@ -1079,29 +2001,31 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 130, - "Weight": 33 + "Height": 118, + "Weight": 24 }, "choices": { "EyeColor": "BlueEyes", - "HairColor": "BlondHair", - "Build": "Average" + "HairColor": "BlackHair", + "Build": "Skinny" }, "skills": { - "Agility": 51, + "Agility": 32, "Communication": 35, - "Endurance": 55, + "Endurance": 51, + "Hauling": 55, "Strength": 32, - "RussianLanguage": 26, + "RussianLanguage": 32, "PhysicalEducation": 87, "Biology": 35, "Literature": 52, - "Mathematics": 53, + "Mathematics": 61, "BelarusianLanguage": 34, "UkrainianLanguage": 36 }, "traits": [ - "HotTempered" + "Diligent", + "Quiet" ], "needs": { "Hunger": 1, @@ -1109,7 +2033,92 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f4.c1", @@ -1163,13 +2172,15 @@ "Agility": 45, "Communication": 53, "Endurance": 60, - "Strength": 38, - "RussianLanguage": 32, - "PhysicalEducation": 71, - "Biology": 23, - "Literature": 72, - "Mathematics": 56, - "BelarusianLanguage": 19 + "Hauling": 40, + "Strength": 47, + "RussianLanguage": 49, + "PhysicalEducation": 26, + "Biology": 71, + "Literature": 75, + "Mathematics": 5, + "BelarusianLanguage": 26, + "UkrainianLanguage": 15 }, "traits": [], "needs": { @@ -1178,7 +2189,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f5.p0", @@ -1231,11 +2321,12 @@ "Agility": 45, "Communication": 60, "Endurance": 55, - "Strength": 54, - "RussianLanguage": 62, - "History": 40, - "Informatics": 55, - "BelarusianLanguage": 21 + "Hauling": 54, + "Strength": 50, + "RussianLanguage": 57, + "Informatics": 26, + "Administration": 49, + "Librarianship": 53 }, "traits": [ "Diligent", @@ -1247,7 +2338,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + } + ] }, { "id": "f5.p1", @@ -1288,27 +2423,28 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 167, - "Weight": 66 + "Height": 161, + "Weight": 48 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BlondHair", - "Build": "Athletic" + "HairColor": "BrownHair", + "Build": "Average" }, "skills": { - "Agility": 67, - "Communication": 57, - "Endurance": 43, - "Strength": 45, - "RussianLanguage": 76, - "Chemistry": 46, - "Medicine": 75, - "Administration": 56, - "UkrainianLanguage": 13 + "Agility": 43, + "Communication": 54, + "Endurance": 64, + "Hauling": 60, + "Strength": 48, + "RussianLanguage": 59, + "English": 50, + "BelarusianLanguage": 22, + "UkrainianLanguage": 14 }, "traits": [ - "Diligent" + "Curious", + "Quiet" ], "needs": { "Hunger": 1, @@ -1316,7 +2452,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f5.c0", @@ -1358,28 +2544,30 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 124, - "Weight": 28 + "Height": 134, + "Weight": 17 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BrownHair", + "EyeColor": "BrownEyes", + "HairColor": "BlondHair", "Build": "Skinny" }, "skills": { - "Agility": 36, - "Communication": 53, - "Endurance": 31, + "Agility": 72, + "Communication": 16, + "Endurance": 61, + "Hauling": 35, "Strength": 45, - "RussianLanguage": 19, - "PhysicalEducation": 68, - "Biology": 61, - "Literature": 63, - "Mathematics": 21, - "UkrainianLanguage": 27 + "RussianLanguage": 46, + "PhysicalEducation": 60, + "Biology": 41, + "Literature": 53, + "Mathematics": 33, + "UkrainianLanguage": 34 }, "traits": [ - "Quiet" + "Kind", + "Lazy" ], "needs": { "Hunger": 1, @@ -1387,7 +2575,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f6.p0", @@ -1440,10 +2707,15 @@ "Agility": 45, "Communication": 67, "Endurance": 58, - "Strength": 59, - "RussianLanguage": 66, - "Pedagogy": 49, - "UkrainianLanguage": 19 + "Hauling": 57, + "Strength": 54, + "RussianLanguage": 41, + "PhysicalEducation": 56, + "History": 56, + "Cooking": 84, + "English": 58, + "BelarusianLanguage": 27, + "UkrainianLanguage": 35 }, "traits": [ "Diligent" @@ -1454,7 +2726,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f6.p1", @@ -1495,26 +2823,28 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 155, - "Weight": 63 + "Height": 158, + "Weight": 49 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "RedHair", - "Build": "Heavy" + "EyeColor": "GrayEyes", + "HairColor": "BrownHair", + "Build": "Average" }, "skills": { - "Agility": 45, - "Communication": 75, - "Endurance": 45, - "Strength": 36, - "RussianLanguage": 39, - "PhysicalEducation": 57, - "BelarusianLanguage": 9, - "UkrainianLanguage": 36 + "Agility": 52, + "Communication": 73, + "Endurance": 51, + "Hauling": 31, + "Strength": 66, + "RussianLanguage": 54, + "Physics": 44, + "History": 39, + "Pedagogy": 60, + "BelarusianLanguage": 26 }, "traits": [ - "Neat" + "Quiet" ], "needs": { "Hunger": 1, @@ -1522,7 +2852,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f6.c0", @@ -1564,36 +2950,108 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 126, - "Weight": 19 + "Height": 118, + "Weight": 24 }, "choices": { - "EyeColor": "GrayEyes", - "HairColor": "RedHair", + "EyeColor": "BlueEyes", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 64, - "Communication": 47, - "Endurance": 59, - "Strength": 45, - "RussianLanguage": 24, - "PhysicalEducation": 60, - "Biology": 31, - "Literature": 43, - "Mathematics": 47, - "BelarusianLanguage": 22 + "Agility": 45, + "Communication": 36, + "Endurance": 51, + "Hauling": 61, + "Strength": 29, + "RussianLanguage": 49, + "PhysicalEducation": 57, + "Biology": 53, + "Literature": 53, + "Mathematics": 34, + "UkrainianLanguage": 19 }, - "traits": [ - "Lazy" - ], + "traits": [], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f7.p0", @@ -1646,12 +3104,14 @@ "Agility": 57, "Communication": 63, "Endurance": 46, + "Hauling": 34, "Strength": 40, - "RussianLanguage": 31, - "Mathematics": 60, - "Cooking": 54, - "BelarusianLanguage": 28, - "UkrainianLanguage": 40 + "RussianLanguage": 56, + "PhysicalEducation": 55, + "Cooking": 48, + "English": 62, + "BelarusianLanguage": 20, + "UkrainianLanguage": 25 }, "traits": [], "needs": { @@ -1660,7 +3120,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f7.p1", @@ -1701,27 +3211,29 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 166, - "Weight": 63 + "Height": 161, + "Weight": 42 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BlackHair", - "Build": "Athletic" + "EyeColor": "HazelEyes", + "HairColor": "BlondHair", + "Build": "Skinny" }, "skills": { - "Agility": 58, - "Communication": 65, - "Endurance": 63, - "Strength": 57, + "Agility": 64, + "Communication": 62, + "Endurance": 47, + "Hauling": 35, + "Strength": 45, "RussianLanguage": 53, - "Librarianship": 69, - "BelarusianLanguage": 28, - "UkrainianLanguage": 18 + "Informatics": 57, + "Geography": 43, + "Cooking": 61, + "Medicine": 44 }, "traits": [ "AbsentMinded", - "Lazy" + "Leader" ], "needs": { "Hunger": 1, @@ -1729,7 +3241,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f7.c0", @@ -1771,29 +3339,30 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 132, - "Weight": 30 + "Height": 129, + "Weight": 24 }, "choices": { - "EyeColor": "GreenEyes", + "EyeColor": "BrownEyes", "HairColor": "BrownHair", "Build": "Skinny" }, "skills": { - "Agility": 50, - "Communication": 44, - "Endurance": 56, - "Strength": 43, - "RussianLanguage": 28, - "PhysicalEducation": 50, - "Biology": 48, - "Literature": 62, - "Mathematics": 56, - "BelarusianLanguage": 15, - "UkrainianLanguage": 20 + "Agility": 70, + "Communication": 29, + "Endurance": 74, + "Hauling": 45, + "Strength": 38, + "RussianLanguage": 38, + "PhysicalEducation": 47, + "Biology": 63, + "Literature": 59, + "Mathematics": 36, + "BelarusianLanguage": 16, + "UkrainianLanguage": 18 }, "traits": [ - "Lazy" + "Kind" ], "needs": { "Hunger": 1, @@ -1801,7 +3370,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f8.p0", @@ -1854,9 +3502,9 @@ "Agility": 53, "Communication": 54, "Endurance": 51, - "Strength": 55, + "Hauling": 55, + "Strength": 39, "RussianLanguage": 46, - "English": 65, "BelarusianLanguage": 0, "UkrainianLanguage": 29 }, @@ -1869,7 +3517,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f8.p1", @@ -1922,10 +3620,9 @@ "Agility": 31, "Communication": 73, "Endurance": 45, - "Strength": 38, - "RussianLanguage": 67, - "Cooking": 72, - "UkrainianLanguage": 15 + "Hauling": 40, + "Strength": 55, + "RussianLanguage": 47 }, "traits": [ "Diligent" @@ -1936,7 +3633,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f8.c0", @@ -1978,29 +3731,31 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 135, - "Weight": 16 + "Height": 121, + "Weight": 35 }, "choices": { "EyeColor": "BlueEyes", - "HairColor": "BlackHair", - "Build": "Skinny" + "HairColor": "BrownHair", + "Build": "Athletic" }, "skills": { - "Agility": 44, - "Communication": 15, - "Endurance": 36, - "Strength": 45, + "Agility": 65, + "Communication": 28, + "Endurance": 40, + "Hauling": 37, + "Strength": 56, "RussianLanguage": 20, "PhysicalEducation": 48, "Biology": 58, - "Literature": 50, - "Mathematics": 32, + "Literature": 54, + "Mathematics": 26, "BelarusianLanguage": 9, "UkrainianLanguage": 23 }, "traits": [ - "Bully" + "AbsentMinded", + "Kind" ], "needs": { "Hunger": 1, @@ -2008,7 +3763,92 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f9.p0", @@ -2061,14 +3901,12 @@ "Agility": 40, "Communication": 37, "Endurance": 71, - "Strength": 66, - "RussianLanguage": 49, - "Physics": 41, - "PhysicalEducation": 68, - "Cooking": 22, - "Librarianship": 54, - "English": 59, - "UkrainianLanguage": 21 + "Hauling": 64, + "Strength": 43, + "RussianLanguage": 64, + "Pedagogy": 60, + "Medicine": 66, + "UkrainianLanguage": 7 }, "traits": [ "Leader" @@ -2079,7 +3917,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f9.p1", @@ -2120,26 +4008,30 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 154, - "Weight": 70 + "Height": 159, + "Weight": 61 }, "choices": { - "EyeColor": "BlueEyes", + "EyeColor": "GreenEyes", "HairColor": "BrownHair", - "Build": "Heavy" + "Build": "Athletic" }, "skills": { - "Agility": 45, - "Communication": 64, - "Endurance": 27, - "Strength": 36, - "RussianLanguage": 63, - "Librarianship": 54, - "BelarusianLanguage": 14, - "UkrainianLanguage": 17 + "Agility": 40, + "Communication": 65, + "Endurance": 40, + "Hauling": 47, + "Strength": 59, + "RussianLanguage": 33, + "Pedagogy": 50, + "Librarianship": 32, + "English": 59, + "German": 27, + "BelarusianLanguage": 17, + "UkrainianLanguage": 13 }, "traits": [ - "Kind" + "HotTempered" ], "needs": { "Hunger": 1, @@ -2147,7 +4039,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f9.c0", @@ -2189,28 +4131,29 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 123, + "Height": 121, "Weight": 25 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BrownHair", + "HairColor": "BlondHair", "Build": "Skinny" }, "skills": { - "Agility": 43, - "Communication": 27, - "Endurance": 49, + "Agility": 62, + "Communication": 30, + "Endurance": 46, + "Hauling": 58, "Strength": 45, - "RussianLanguage": 26, - "PhysicalEducation": 29, - "Biology": 40, - "Literature": 53, - "Mathematics": 38, - "BelarusianLanguage": 15 + "RussianLanguage": 42, + "PhysicalEducation": 61, + "Biology": 32, + "Literature": 37, + "Mathematics": 47, + "BelarusianLanguage": 20 }, "traits": [ - "HotTempered" + "Leader" ], "needs": { "Hunger": 1, @@ -2218,7 +4161,92 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f10.p0", @@ -2271,12 +4299,11 @@ "Agility": 45, "Communication": 40, "Endurance": 48, - "Strength": 56, - "RussianLanguage": 37, - "History": 39, - "Administration": 61, - "Medicine": 22, - "English": 50 + "Hauling": 56, + "Strength": 30, + "RussianLanguage": 44, + "Literature": 57, + "BelarusianLanguage": 24 }, "traits": [ "Kind" @@ -2287,7 +4314,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f10.p1", @@ -2329,17 +4406,18 @@ "isParent": true, "numbers": { "Height": 165, - "Weight": 65 + "Weight": 70 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BlackHair", - "Build": "Athletic" + "HairColor": "BrownHair", + "Build": "Heavy" }, "skills": { - "Agility": 81, - "Communication": 68, - "Endurance": 52, + "Agility": 45, + "Communication": 84, + "Endurance": 61, + "Hauling": 52, "Strength": 69, "RussianLanguage": 59, "Biology": 50, @@ -2347,14 +4425,61 @@ "BelarusianLanguage": 21, "UkrainianLanguage": 32 }, - "traits": [], + "traits": [ + "Lazy", + "Leader" + ], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f10.c0", @@ -2408,13 +4533,14 @@ "Agility": 35, "Communication": 26, "Endurance": 48, + "Hauling": 58, "Strength": 45, - "RussianLanguage": 30, - "PhysicalEducation": 48, - "Biology": 50, - "Literature": 62, - "Mathematics": 24, - "UkrainianLanguage": 26 + "RussianLanguage": 28, + "PhysicalEducation": 55, + "Biology": 62, + "Literature": 44, + "Mathematics": 25, + "UkrainianLanguage": 18 }, "traits": [], "needs": { @@ -2423,7 +4549,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f11.p1", @@ -2476,13 +4681,10 @@ "Agility": 40, "Communication": 49, "Endurance": 40, - "Strength": 40, - "RussianLanguage": 52, - "Chemistry": 61, - "Literature": 41, - "Pedagogy": 39, - "Medicine": 32, - "English": 37 + "Hauling": 36, + "Strength": 45, + "RussianLanguage": 60, + "Chemistry": 37 }, "traits": [ "Leader" @@ -2493,7 +4695,69 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f11.c0", @@ -2535,35 +4799,104 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 129, - "Weight": 25 + "Height": 133, + "Weight": 23 }, "choices": { - "EyeColor": "GrayEyes", - "HairColor": "BrownHair", + "EyeColor": "HazelEyes", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 67, - "Communication": 43, - "Endurance": 68, - "Strength": 43, - "RussianLanguage": 43, - "PhysicalEducation": 58, - "Biology": 54, - "Literature": 35, - "Mathematics": 35, - "BelarusianLanguage": 13, - "UkrainianLanguage": 28 + "Agility": 50, + "Communication": 33, + "Endurance": 63, + "Hauling": 66, + "Strength": 45, + "RussianLanguage": 44, + "PhysicalEducation": 74, + "Biology": 43, + "Literature": 59, + "Mathematics": 34, + "UkrainianLanguage": 14 }, - "traits": [], + "traits": [ + "Neat" + ], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f11.c1", @@ -2605,35 +4938,116 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 133, - "Weight": 22 + "Height": 122, + "Weight": 24 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "BrownHair", + "EyeColor": "GreenEyes", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 51, - "Communication": 46, + "Agility": 45, + "Communication": 33, "Endurance": 49, + "Hauling": 51, "Strength": 45, - "RussianLanguage": 75, - "PhysicalEducation": 28, - "Biology": 40, - "Literature": 62, - "Mathematics": 29, - "BelarusianLanguage": 26, - "UkrainianLanguage": 17 + "RussianLanguage": 35, + "PhysicalEducation": 59, + "Biology": 88, + "Literature": 19, + "Mathematics": 16 }, - "traits": [], + "traits": [ + "AbsentMinded", + "Bully" + ], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f12.p0", @@ -2686,10 +5100,12 @@ "Agility": 45, "Communication": 78, "Endurance": 63, - "Strength": 50, - "RussianLanguage": 68, - "Literature": 32, - "Physics": 65 + "Hauling": 50, + "Strength": 56, + "RussianLanguage": 56, + "Informatics": 51, + "English": 36, + "UkrainianLanguage": 27 }, "traits": [ "Curious", @@ -2701,7 +5117,69 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f12.p1", @@ -2742,22 +5220,25 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 163, - "Weight": 57 + "Height": 166, + "Weight": 60 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "BrownHair", + "EyeColor": "GrayEyes", + "HairColor": "BlondHair", "Build": "Average" }, "skills": { - "Agility": 48, - "Communication": 59, - "Endurance": 64, - "Strength": 51, - "RussianLanguage": 71, - "English": 57, - "UkrainianLanguage": 25 + "Agility": 27, + "Communication": 62, + "Endurance": 45, + "Hauling": 50, + "Strength": 31, + "RussianLanguage": 62, + "Cooking": 63, + "Administration": 41, + "English": 52, + "UkrainianLanguage": 20 }, "traits": [], "needs": { @@ -2766,7 +5247,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f12.c0", @@ -2808,26 +5339,27 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 132, - "Weight": 27 + "Height": 133, + "Weight": 21 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BrownHair", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { "Agility": 65, - "Communication": 43, - "Endurance": 82, - "Strength": 41, - "RussianLanguage": 27, - "PhysicalEducation": 51, - "Biology": 72, - "Literature": 44, - "Mathematics": 24, - "BelarusianLanguage": 32, - "UkrainianLanguage": 7 + "Communication": 38, + "Endurance": 37, + "Hauling": 32, + "Strength": 45, + "RussianLanguage": 46, + "PhysicalEducation": 38, + "Biology": 63, + "Literature": 52, + "Mathematics": 4, + "BelarusianLanguage": 31, + "UkrainianLanguage": 17 }, "traits": [ "Quiet" @@ -2838,7 +5370,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Skirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f12.c1", @@ -2880,28 +5491,29 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 138, - "Weight": 30 + "Height": 122, + "Weight": 26 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BrownHair", + "EyeColor": "BrownEyes", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 65, - "Communication": 17, - "Endurance": 65, - "Strength": 39, - "RussianLanguage": 28, - "PhysicalEducation": 45, - "Biology": 38, - "Literature": 57, - "Mathematics": 38, - "UkrainianLanguage": 27 + "Agility": 56, + "Communication": 26, + "Endurance": 50, + "Hauling": 50, + "Strength": 45, + "RussianLanguage": 43, + "PhysicalEducation": 34, + "Biology": 63, + "Literature": 51, + "Mathematics": 53, + "UkrainianLanguage": 11 }, "traits": [ - "Curious" + "Diligent" ], "needs": { "Hunger": 1, @@ -2909,7 +5521,80 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f12.c2", @@ -2951,29 +5636,29 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 132, - "Weight": 23 + "Height": 131, + "Weight": 31 }, "choices": { - "EyeColor": "GreenEyes", + "EyeColor": "BrownEyes", "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 64, - "Communication": 44, - "Endurance": 32, - "Strength": 45, - "RussianLanguage": 40, - "PhysicalEducation": 59, - "Biology": 34, - "Literature": 56, - "Mathematics": 24, - "UkrainianLanguage": 17 + "Agility": 56, + "Communication": 33, + "Endurance": 45, + "Hauling": 42, + "Strength": 16, + "RussianLanguage": 47, + "PhysicalEducation": 54, + "Biology": 28, + "Literature": 40, + "Mathematics": 35, + "BelarusianLanguage": 16 }, "traits": [ - "Lazy", - "Neat" + "Kind" ], "needs": { "Hunger": 1, @@ -2981,7 +5666,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f13.p0", @@ -3034,10 +5798,15 @@ "Agility": 45, "Communication": 57, "Endurance": 41, - "Strength": 30, - "RussianLanguage": 63, - "Pedagogy": 67, - "English": 76 + "Hauling": 33, + "Strength": 57, + "RussianLanguage": 25, + "Geography": 50, + "Chemistry": 45, + "Medicine": 71, + "Librarianship": 42, + "German": 39, + "BelarusianLanguage": 27 }, "traits": [ "AbsentMinded", @@ -3049,7 +5818,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f13.p1", @@ -3090,22 +5915,24 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 164, - "Weight": 49 + "Height": 159, + "Weight": 57 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BlackHair", - "Build": "Skinny" + "HairColor": "BrownHair", + "Build": "Athletic" }, "skills": { "Agility": 47, - "Communication": 56, - "Endurance": 51, - "Strength": 25, - "RussianLanguage": 45, - "Mathematics": 56, - "UkrainianLanguage": 11 + "Communication": 53, + "Endurance": 49, + "Hauling": 33, + "Strength": 44, + "RussianLanguage": 55, + "History": 62, + "Administration": 61, + "English": 58 }, "traits": [], "needs": { @@ -3114,7 +5941,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f13.c0", @@ -3156,26 +6039,29 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 127, - "Weight": 22 + "Height": 121, + "Weight": 23 }, "choices": { - "EyeColor": "GreenEyes", - "HairColor": "BrownHair", + "EyeColor": "BrownEyes", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 66, - "Communication": 47, - "Endurance": 60, + "Agility": 54, + "Communication": 43, + "Endurance": 46, + "Hauling": 50, "Strength": 45, - "RussianLanguage": 27, - "PhysicalEducation": 71, - "Biology": 35, - "Literature": 40, - "Mathematics": 28 + "RussianLanguage": 31, + "PhysicalEducation": 35, + "Biology": 57, + "Literature": 66, + "Mathematics": 29, + "UkrainianLanguage": 20 }, "traits": [ + "Lazy", "Quiet" ], "needs": { @@ -3184,7 +6070,80 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f14.p1", @@ -3237,11 +6196,14 @@ "Agility": 69, "Communication": 55, "Endurance": 41, - "Strength": 31, - "RussianLanguage": 65, - "Informatics": 56, - "BelarusianLanguage": 38, - "UkrainianLanguage": 40 + "Hauling": 34, + "Strength": 60, + "RussianLanguage": 38, + "PhysicalEducation": 86, + "Cooking": 78, + "German": 40, + "BelarusianLanguage": 20, + "UkrainianLanguage": 16 }, "traits": [ "Kind", @@ -3253,7 +6215,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f14.c0", @@ -3295,27 +6313,30 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 125, - "Weight": 27 + "Height": 127, + "Weight": 21 }, "choices": { - "EyeColor": "GrayEyes", + "EyeColor": "HazelEyes", "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 45, - "Communication": 27, - "Endurance": 44, - "Strength": 45, - "RussianLanguage": 21, - "PhysicalEducation": 49, + "Agility": 36, + "Communication": 29, + "Endurance": 51, + "Hauling": 43, + "Strength": 34, + "RussianLanguage": 53, + "PhysicalEducation": 44, "Biology": 51, - "Literature": 42, - "Mathematics": 15 + "Literature": 71, + "Mathematics": 61, + "BelarusianLanguage": 11 }, "traits": [ - "Quiet" + "Diligent", + "Neat" ], "needs": { "Hunger": 1, @@ -3323,7 +6344,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f14.c1", @@ -3365,34 +6465,122 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 128, - "Weight": 33 + "Height": 126, + "Weight": 26 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "BrownHair", - "Build": "Average" + "EyeColor": "GrayEyes", + "HairColor": "BlackHair", + "Build": "Skinny" }, "skills": { - "Agility": 26, - "Communication": 17, + "Agility": 24, + "Communication": 30, "Endurance": 49, - "Strength": 44, - "RussianLanguage": 39, - "PhysicalEducation": 31, - "Biology": 66, - "Literature": 57, - "Mathematics": 33, - "UkrainianLanguage": 15 + "Hauling": 28, + "Strength": 45, + "RussianLanguage": 49, + "PhysicalEducation": 29, + "Biology": 42, + "Literature": 36, + "Mathematics": 18, + "UkrainianLanguage": 33 }, - "traits": [], + "traits": [ + "Diligent" + ], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f14.c2", @@ -3434,27 +6622,29 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 135, - "Weight": 26 + "Height": 129, + "Weight": 25 }, "choices": { - "EyeColor": "GreenEyes", + "EyeColor": "BrownEyes", "HairColor": "BlondHair", "Build": "Skinny" }, "skills": { - "Agility": 44, - "Communication": 23, - "Endurance": 32, - "Strength": 45, - "RussianLanguage": 33, - "PhysicalEducation": 59, - "Biology": 32, - "Literature": 72, - "Mathematics": 54 + "Agility": 35, + "Communication": 37, + "Endurance": 46, + "Hauling": 33, + "Strength": 20, + "RussianLanguage": 22, + "PhysicalEducation": 39, + "Biology": 53, + "Literature": 63, + "Mathematics": 32, + "UkrainianLanguage": 29 }, "traits": [ - "Diligent" + "Curious" ], "needs": { "Hunger": 1, @@ -3462,7 +6652,80 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f15.p0", @@ -3515,13 +6778,11 @@ "Agility": 69, "Communication": 61, "Endurance": 39, - "Strength": 48, - "RussianLanguage": 47, - "PhysicalEducation": 38, - "Informatics": 42, - "Librarianship": 47, - "BelarusianLanguage": 36, - "UkrainianLanguage": 12 + "Hauling": 49, + "Strength": 41, + "RussianLanguage": 62, + "Librarianship": 50, + "UkrainianLanguage": 21 }, "traits": [], "needs": { @@ -3530,7 +6791,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f15.p1", @@ -3571,27 +6882,30 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 158, - "Weight": 64 + "Height": 163, + "Weight": 50 }, "choices": { - "EyeColor": "HazelEyes", - "HairColor": "BlondHair", - "Build": "Heavy" + "EyeColor": "BrownEyes", + "HairColor": "BlackHair", + "Build": "Average" }, "skills": { - "Agility": 45, - "Communication": 40, - "Endurance": 55, - "Strength": 28, - "RussianLanguage": 76, - "PhysicalEducation": 50, - "History": 49, - "Medicine": 70, - "BelarusianLanguage": 22 + "Agility": 57, + "Communication": 51, + "Endurance": 41, + "Hauling": 45, + "Strength": 64, + "RussianLanguage": 55, + "Biology": 66, + "Librarianship": 46, + "Pedagogy": 49, + "BelarusianLanguage": 15, + "UkrainianLanguage": 22 }, "traits": [ - "Lazy" + "Kind", + "Neat" ], "needs": { "Hunger": 1, @@ -3599,7 +6913,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Black", + "condition": 1, + "location": "home" + } + ] }, { "id": "f15.c0", @@ -3641,25 +7005,27 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 121, - "Weight": 28 + "Height": 117, + "Weight": 29 }, "choices": { "EyeColor": "GrayEyes", - "HairColor": "BlackHair", + "HairColor": "BlondHair", "Build": "Average" }, "skills": { - "Agility": 69, - "Communication": 30, - "Endurance": 44, - "Strength": 57, - "RussianLanguage": 45, - "PhysicalEducation": 39, - "Biology": 53, - "Literature": 30, - "Mathematics": 38, - "BelarusianLanguage": 9 + "Agility": 45, + "Communication": 38, + "Endurance": 40, + "Hauling": 40, + "Strength": 56, + "RussianLanguage": 28, + "PhysicalEducation": 70, + "Biology": 37, + "Literature": 55, + "Mathematics": 59, + "BelarusianLanguage": 23, + "UkrainianLanguage": 29 }, "traits": [], "needs": { @@ -3668,7 +7034,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f16.p0", @@ -3721,10 +7166,10 @@ "Agility": 62, "Communication": 44, "Endurance": 74, - "Strength": 61, - "RussianLanguage": 54, - "PhysicalEducation": 70, - "German": 52, + "Hauling": 59, + "Strength": 48, + "RussianLanguage": 65, + "Biology": 29, "BelarusianLanguage": 34, "UkrainianLanguage": 39 }, @@ -3737,7 +7182,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f16.p1", @@ -3790,12 +7285,14 @@ "Agility": 33, "Communication": 47, "Endurance": 60, - "Strength": 36, - "RussianLanguage": 60, - "Literature": 43, - "Physics": 53, - "BelarusianLanguage": 11, - "UkrainianLanguage": 12 + "Hauling": 38, + "Strength": 55, + "RussianLanguage": 52, + "Pedagogy": 51, + "Cooking": 47, + "English": 30, + "BelarusianLanguage": 15, + "UkrainianLanguage": 28 }, "traits": [ "AbsentMinded" @@ -3806,7 +7303,63 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f16.c0", @@ -3848,34 +7401,118 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 133, + "Height": 134, "Weight": 21 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BlackHair", + "HairColor": "BrownHair", "Build": "Skinny" }, "skills": { - "Agility": 50, - "Communication": 34, - "Endurance": 46, + "Agility": 59, + "Communication": 35, + "Endurance": 45, + "Hauling": 63, "Strength": 45, - "RussianLanguage": 36, - "PhysicalEducation": 49, - "Biology": 64, - "Literature": 49, - "Mathematics": 15, - "UkrainianLanguage": 33 + "RussianLanguage": 26, + "PhysicalEducation": 53, + "Biology": 68, + "Literature": 75, + "Mathematics": 59, + "BelarusianLanguage": 30, + "UkrainianLanguage": 31 }, - "traits": [], + "traits": [ + "Diligent", + "Neat" + ], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f16.c1", @@ -3917,25 +7554,26 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 136, - "Weight": 20 + "Height": 117, + "Weight": 31 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BlackHair", - "Build": "Skinny" + "HairColor": "BrownHair", + "Build": "Athletic" }, "skills": { - "Agility": 31, - "Communication": 34, - "Endurance": 53, + "Agility": 55, + "Communication": 24, + "Endurance": 40, + "Hauling": 51, "Strength": 40, - "RussianLanguage": 63, - "PhysicalEducation": 60, - "Biology": 37, - "Literature": 31, - "Mathematics": 35, - "BelarusianLanguage": 13 + "RussianLanguage": 37, + "PhysicalEducation": 52, + "Biology": 80, + "Literature": 54, + "Mathematics": 32, + "UkrainianLanguage": 23 }, "traits": [], "needs": { @@ -3944,7 +7582,92 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f17.p0", @@ -3997,10 +7720,13 @@ "Agility": 45, "Communication": 57, "Endurance": 69, - "Strength": 58, - "RussianLanguage": 72, - "Medicine": 65, - "UkrainianLanguage": 18 + "Hauling": 57, + "Strength": 67, + "RussianLanguage": 38, + "Mathematics": 55, + "PhysicalEducation": 57, + "Librarianship": 42, + "Cooking": 67 }, "traits": [ "AbsentMinded", @@ -4012,7 +7738,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f17.p1", @@ -4053,29 +7829,27 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 164, - "Weight": 42 + "Height": 169, + "Weight": 61 }, "choices": { - "EyeColor": "GrayEyes", + "EyeColor": "BrownEyes", "HairColor": "BrownHair", - "Build": "Skinny" + "Build": "Average" }, "skills": { - "Agility": 63, + "Agility": 42, "Communication": 47, - "Endurance": 76, - "Strength": 39, - "RussianLanguage": 64, - "Geography": 49, - "Cooking": 63, - "Librarianship": 39, - "English": 34, + "Endurance": 66, + "Hauling": 58, + "Strength": 44, + "RussianLanguage": 49, + "Librarianship": 33, "BelarusianLanguage": 25, - "UkrainianLanguage": 25 + "UkrainianLanguage": 20 }, "traits": [ - "Leader" + "Diligent" ], "needs": { "Hunger": 1, @@ -4083,7 +7857,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f17.c0", @@ -4125,34 +7943,117 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 120, - "Weight": 24 + "Height": 133, + "Weight": 25 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "BrownHair", + "EyeColor": "BlueEyes", + "HairColor": "BlondHair", "Build": "Skinny" }, "skills": { - "Agility": 46, - "Communication": 26, - "Endurance": 62, - "Strength": 37, - "RussianLanguage": 15, - "PhysicalEducation": 68, - "Biology": 54, - "Literature": 47, - "Mathematics": 6, - "BelarusianLanguage": 30 + "Agility": 63, + "Communication": 21, + "Endurance": 33, + "Hauling": 61, + "Strength": 45, + "RussianLanguage": 35, + "PhysicalEducation": 33, + "Biology": 61, + "Literature": 30, + "Mathematics": 15, + "BelarusianLanguage": 17, + "UkrainianLanguage": 27 }, - "traits": [], + "traits": [ + "Diligent" + ], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f18.p0", @@ -4205,10 +8106,13 @@ "Agility": 45, "Communication": 48, "Endurance": 48, - "Strength": 38, - "RussianLanguage": 57, - "Librarianship": 45, - "Pedagogy": 54 + "Hauling": 40, + "Strength": 51, + "RussianLanguage": 87, + "Geography": 58, + "Medicine": 38, + "Pedagogy": 50, + "UkrainianLanguage": 24 }, "traits": [ "Kind" @@ -4219,7 +8123,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + } + ] }, { "id": "f18.p1", @@ -4260,26 +8208,26 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 168, - "Weight": 69 + "Height": 159, + "Weight": 53 }, "choices": { - "EyeColor": "BlueEyes", + "EyeColor": "BrownEyes", "HairColor": "BrownHair", - "Build": "Athletic" + "Build": "Average" }, "skills": { - "Agility": 40, - "Communication": 47, - "Endurance": 48, - "Strength": 52, - "RussianLanguage": 54, - "Physics": 51, - "English": 24 + "Agility": 52, + "Communication": 56, + "Endurance": 63, + "Hauling": 46, + "Strength": 63, + "RussianLanguage": 40, + "PhysicalEducation": 43, + "UkrainianLanguage": 28 }, "traits": [ - "Curious", - "Kind" + "Diligent" ], "needs": { "Hunger": 1, @@ -4287,7 +8235,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Skirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f18.c0", @@ -4329,28 +8321,29 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 131, - "Weight": 28 + "Height": 128, + "Weight": 23 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BlackHair", + "EyeColor": "BrownEyes", + "HairColor": "BrownHair", "Build": "Skinny" }, "skills": { - "Agility": 38, - "Communication": 33, - "Endurance": 35, + "Agility": 56, + "Communication": 29, + "Endurance": 36, + "Hauling": 51, "Strength": 45, - "RussianLanguage": 14, - "PhysicalEducation": 34, - "Biology": 63, - "Literature": 74, - "Mathematics": 34 + "RussianLanguage": 35, + "PhysicalEducation": 64, + "Biology": 50, + "Literature": 49, + "Mathematics": 6, + "UkrainianLanguage": 26 }, "traits": [ - "Curious", - "Quiet" + "Bully" ], "needs": { "Hunger": 1, @@ -4358,7 +8351,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f18.c1", @@ -4400,28 +8472,30 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 123, - "Weight": 28 + "Height": 132, + "Weight": 30 }, "choices": { "EyeColor": "HazelEyes", - "HairColor": "BrownHair", - "Build": "Average" + "HairColor": "BlackHair", + "Build": "Skinny" }, "skills": { - "Agility": 59, - "Communication": 59, - "Endurance": 46, - "Strength": 87, - "RussianLanguage": 52, - "PhysicalEducation": 28, - "Biology": 37, - "Literature": 68, - "Mathematics": 32, - "UkrainianLanguage": 30 + "Agility": 36, + "Communication": 49, + "Endurance": 56, + "Hauling": 52, + "Strength": 45, + "RussianLanguage": 40, + "PhysicalEducation": 57, + "Biology": 40, + "Literature": 28, + "Mathematics": 38, + "UkrainianLanguage": 22 }, "traits": [ - "Lazy" + "Diligent", + "Kind" ], "needs": { "Hunger": 1, @@ -4429,7 +8503,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f19.p0", @@ -4482,9 +8635,13 @@ "Agility": 40, "Communication": 21, "Endurance": 45, - "Strength": 59, - "RussianLanguage": 55, - "UkrainianLanguage": 16 + "Hauling": 58, + "Strength": 49, + "RussianLanguage": 76, + "Biology": 47, + "Mathematics": 35, + "BelarusianLanguage": 20, + "UkrainianLanguage": 21 }, "traits": [ "AbsentMinded", @@ -4496,7 +8653,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f19.p1", @@ -4537,28 +8744,29 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 159, - "Weight": 49 + "Height": 164, + "Weight": 69 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BrownHair", - "Build": "Average" + "EyeColor": "BrownEyes", + "HairColor": "BlackHair", + "Build": "Heavy" }, "skills": { - "Agility": 34, - "Communication": 77, - "Endurance": 36, - "Strength": 54, - "RussianLanguage": 63, - "Physics": 60, - "Literature": 57, - "English": 26, - "UkrainianLanguage": 10 + "Agility": 45, + "Communication": 65, + "Endurance": 45, + "Hauling": 52, + "Strength": 74, + "RussianLanguage": 59, + "Biology": 31, + "Librarianship": 43, + "Cooking": 43, + "BelarusianLanguage": 15 }, "traits": [ - "HotTempered", - "Lazy" + "Neat", + "Quiet" ], "needs": { "Hunger": 1, @@ -4566,7 +8774,57 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f19.c0", @@ -4608,29 +8866,30 @@ "isParent": false, "classId": "class-classroom-00", "numbers": { - "Height": 124, - "Weight": 27 + "Height": 137, + "Weight": 24 }, "choices": { - "EyeColor": "GrayEyes", - "HairColor": "BrownHair", + "EyeColor": "BlueEyes", + "HairColor": "BlackHair", "Build": "Skinny" }, "skills": { - "Agility": 42, - "Communication": 24, - "Endurance": 46, + "Agility": 60, + "Communication": 40, + "Endurance": 34, + "Hauling": 63, "Strength": 45, - "RussianLanguage": 4, - "PhysicalEducation": 38, - "Biology": 43, - "Literature": 48, - "Mathematics": 17, - "BelarusianLanguage": 30, - "UkrainianLanguage": 26 + "RussianLanguage": 13, + "PhysicalEducation": 64, + "Biology": 70, + "Literature": 31, + "Mathematics": 5, + "BelarusianLanguage": 19, + "UkrainianLanguage": 21 }, "traits": [ - "Lazy" + "Leader" ], "needs": { "Hunger": 1, @@ -4638,7 +8897,80 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Skirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Red", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f19.c1", @@ -4680,27 +9012,31 @@ "isParent": false, "classId": "class-classroom-01", "numbers": { - "Height": 127, - "Weight": 26 + "Height": 131, + "Weight": 22 }, "choices": { - "EyeColor": "BlueEyes", - "HairColor": "BlondHair", + "EyeColor": "GrayEyes", + "HairColor": "RedHair", "Build": "Skinny" }, "skills": { - "Agility": 65, - "Communication": 29, - "Endurance": 56, + "Agility": 54, + "Communication": 41, + "Endurance": 69, + "Hauling": 47, "Strength": 45, - "RussianLanguage": 30, - "PhysicalEducation": 63, - "Biology": 44, - "Literature": 44, - "Mathematics": 35 + "RussianLanguage": 38, + "PhysicalEducation": 50, + "Biology": 47, + "Literature": 42, + "Mathematics": 16, + "BelarusianLanguage": 15, + "UkrainianLanguage": 15 }, "traits": [ - "Curious" + "Curious", + "Lazy" ], "needs": { "Hunger": 1, @@ -4708,7 +9044,74 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] }, { "id": "f20.p0", @@ -4761,10 +9164,12 @@ "Agility": 45, "Communication": 43, "Endurance": 57, - "Strength": 45, + "Hauling": 46, + "Strength": 57, "RussianLanguage": 63, - "Chemistry": 60, - "UkrainianLanguage": 15 + "English": 62, + "BelarusianLanguage": 15, + "UkrainianLanguage": 16 }, "traits": [], "needs": { @@ -4773,7 +9178,51 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Green", + "condition": 1, + "location": "home" + } + ] }, { "id": "f20.p1", @@ -4814,36 +9263,84 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 170, - "Weight": 65 + "Height": 171, + "Weight": 53 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BrownHair", - "Build": "Athletic" + "HairColor": "BlondHair", + "Build": "Skinny" }, "skills": { - "Agility": 40, - "Communication": 80, - "Endurance": 51, - "Strength": 54, - "RussianLanguage": 61, - "Librarianship": 48, - "Cooking": 58, - "English": 43, - "UkrainianLanguage": 28 + "Agility": 59, + "Communication": 85, + "Endurance": 48, + "Hauling": 42, + "Strength": 38, + "RussianLanguage": 53, + "Mathematics": 44, + "Chemistry": 41, + "Cooking": 52, + "Medicine": 46 }, - "traits": [ - "Curious", - "Leader" - ], + "traits": [], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, { "id": "f20.c0", @@ -4886,23 +9383,25 @@ "classId": "class-classroom-01", "numbers": { "Height": 126, - "Weight": 27 + "Weight": 37 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "BlondHair", - "Build": "Skinny" + "EyeColor": "GrayEyes", + "HairColor": "BlackHair", + "Build": "Athletic" }, "skills": { - "Agility": 48, - "Communication": 60, - "Endurance": 51, - "Strength": 45, - "RussianLanguage": 46, - "PhysicalEducation": 42, - "Biology": 36, - "Literature": 56, - "Mathematics": 39 + "Agility": 40, + "Communication": 39, + "Endurance": 40, + "Hauling": 34, + "Strength": 61, + "RussianLanguage": 30, + "PhysicalEducation": 83, + "Biology": 59, + "Literature": 51, + "Mathematics": 36, + "BelarusianLanguage": 18 }, "traits": [], "needs": { @@ -4911,7 +9410,86 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "PeShirt", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "PeShorts", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "SchoolBag", + "condition": 1, + "location": "bag" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PhysicalEducation" + }, + { + "def": "Textbook", + "condition": 1, + "location": "bag", + "subject": "PrimarySchool" + } + ] } ], "families": [ @@ -5326,11 +9904,15 @@ "Agility": 45, "Communication": 48, "Endurance": 31, - "Strength": 33, - "RussianLanguage": 50, - "German": 39, - "BelarusianLanguage": 37, - "UkrainianLanguage": 21 + "Hauling": 36, + "Strength": 44, + "RussianLanguage": 74, + "Biology": 47, + "Informatics": 78, + "Pedagogy": 66, + "English": 29, + "BelarusianLanguage": 17, + "UkrainianLanguage": 33 }, "traits": [], "needs": { @@ -5339,9 +9921,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 52.8 + "hourlyWageAsk": 57.4 }, { "person": { @@ -5395,11 +10033,10 @@ "Agility": 40, "Communication": 56, "Endurance": 40, - "Strength": 38, - "RussianLanguage": 76, - "History": 36, - "Administration": 31, - "UkrainianLanguage": 23 + "Hauling": 39, + "Strength": 65, + "RussianLanguage": 51, + "History": 63 }, "traits": [ "Diligent" @@ -5410,9 +10047,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "LightBlue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 55.5 + "hourlyWageAsk": 60.34 }, { "person": { @@ -5466,10 +10159,12 @@ "Agility": 53, "Communication": 61, "Endurance": 40, - "Strength": 54, - "RussianLanguage": 62, - "Informatics": 28, - "BelarusianLanguage": 26 + "Hauling": 54, + "Strength": 50, + "RussianLanguage": 45, + "Administration": 54, + "BelarusianLanguage": 16, + "UkrainianLanguage": 8 }, "traits": [ "Diligent", @@ -5481,9 +10176,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 63.77 + "hourlyWageAsk": 61.4 }, { "person": { @@ -5537,10 +10288,12 @@ "Agility": 45, "Communication": 78, "Endurance": 63, - "Strength": 50, - "RussianLanguage": 68, - "Literature": 32, - "Physics": 65 + "Hauling": 50, + "Strength": 56, + "RussianLanguage": 56, + "Informatics": 51, + "English": 36, + "UkrainianLanguage": 27 }, "traits": [ "Curious", @@ -5552,9 +10305,71 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 64.37 + "hourlyWageAsk": 60.8 }, { "person": { @@ -5608,10 +10423,13 @@ "Agility": 45, "Communication": 48, "Endurance": 48, - "Strength": 38, - "RussianLanguage": 57, - "Librarianship": 45, - "Pedagogy": 54 + "Hauling": 40, + "Strength": 51, + "RussianLanguage": 87, + "Geography": 58, + "Medicine": 38, + "Pedagogy": 50, + "UkrainianLanguage": 24 }, "traits": [ "Kind" @@ -5622,9 +10440,53 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + } + ] }, - "hourlyWageAsk": 58.71 + "hourlyWageAsk": 59.34 }, { "person": { @@ -5678,11 +10540,15 @@ "Agility": 39, "Communication": 68, "Endurance": 71, - "Strength": 29, - "RussianLanguage": 52, - "Informatics": 40, - "English": 51, - "UkrainianLanguage": 14 + "Hauling": 32, + "Strength": 45, + "RussianLanguage": 38, + "Informatics": 69, + "PhysicalEducation": 71, + "Librarianship": 42, + "Cooking": 47, + "English": 55, + "BelarusianLanguage": 16 }, "traits": [ "Lazy" @@ -5693,9 +10559,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Skirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 57.3 + "hourlyWageAsk": 59.65 }, { "person": { @@ -5749,10 +10671,15 @@ "Agility": 45, "Communication": 67, "Endurance": 58, - "Strength": 59, - "RussianLanguage": 66, - "Pedagogy": 49, - "UkrainianLanguage": 19 + "Hauling": 57, + "Strength": 54, + "RussianLanguage": 41, + "PhysicalEducation": 56, + "History": 56, + "Cooking": 84, + "English": 58, + "BelarusianLanguage": 27, + "UkrainianLanguage": 35 }, "traits": [ "Diligent" @@ -5763,9 +10690,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 61.11 + "hourlyWageAsk": 61.9 }, { "person": { @@ -5807,26 +10790,28 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 155, - "Weight": 63 + "Height": 158, + "Weight": 49 }, "choices": { - "EyeColor": "BrownEyes", - "HairColor": "RedHair", - "Build": "Heavy" + "EyeColor": "GrayEyes", + "HairColor": "BrownHair", + "Build": "Average" }, "skills": { - "Agility": 45, - "Communication": 75, - "Endurance": 45, - "Strength": 36, - "RussianLanguage": 39, - "PhysicalEducation": 57, - "BelarusianLanguage": 9, - "UkrainianLanguage": 36 + "Agility": 52, + "Communication": 73, + "Endurance": 51, + "Hauling": 31, + "Strength": 66, + "RussianLanguage": 54, + "Physics": 44, + "History": 39, + "Pedagogy": 60, + "BelarusianLanguage": 26 }, "traits": [ - "Neat" + "Quiet" ], "needs": { "Hunger": 1, @@ -5834,9 +10819,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 55.65 + "hourlyWageAsk": 51.76 }, { "person": { @@ -5890,9 +10931,15 @@ "Agility": 37, "Communication": 81, "Endurance": 51, - "Strength": 55, - "RussianLanguage": 39, - "English": 62 + "Hauling": 54, + "Strength": 32, + "RussianLanguage": 74, + "History": 43, + "Medicine": 69, + "English": 33, + "German": 39, + "BelarusianLanguage": 17, + "UkrainianLanguage": 22 }, "traits": [ "Quiet" @@ -5903,9 +10950,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 54.5 + "hourlyWageAsk": 49.6 }, { "person": { @@ -5959,13 +11062,12 @@ "Agility": 40, "Communication": 59, "Endurance": 49, - "Strength": 65, - "RussianLanguage": 62, - "Geography": 48, - "Chemistry": 48, - "Cooking": 42, - "Librarianship": 60, - "English": 40 + "Hauling": 63, + "Strength": 57, + "RussianLanguage": 51, + "Administration": 56, + "Pedagogy": 37, + "BelarusianLanguage": 24 }, "traits": [], "needs": { @@ -5974,9 +11076,71 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 60.78 + "hourlyWageAsk": 59.07 }, { "person": { @@ -6018,29 +11182,30 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 166, - "Weight": 68 + "Height": 160, + "Weight": 69 }, "choices": { - "EyeColor": "GreenEyes", - "HairColor": "BlackHair", - "Build": "Athletic" + "EyeColor": "BlueEyes", + "HairColor": "BrownHair", + "Build": "Heavy" }, "skills": { - "Agility": 41, - "Communication": 66, - "Endurance": 49, - "Strength": 51, - "RussianLanguage": 72, - "Geography": 52, - "Physics": 47, - "Librarianship": 55, - "English": 55, - "BelarusianLanguage": 19, - "UkrainianLanguage": 31 + "Agility": 45, + "Communication": 79, + "Endurance": 37, + "Hauling": 71, + "Strength": 47, + "RussianLanguage": 45, + "Chemistry": 60, + "Geography": 44, + "Medicine": 60, + "BelarusianLanguage": 12, + "UkrainianLanguage": 29 }, "traits": [ - "Kind" + "Leader", + "Neat" ], "needs": { "Hunger": 1, @@ -6048,9 +11213,53 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 59.35 + "hourlyWageAsk": 68.85 }, { "person": { @@ -6104,12 +11313,10 @@ "Agility": 25, "Communication": 57, "Endurance": 35, - "Strength": 49, - "RussianLanguage": 67, - "PhysicalEducation": 64, - "Pedagogy": 26, - "Medicine": 46, - "UkrainianLanguage": 19 + "Hauling": 49, + "Strength": 62, + "RussianLanguage": 64, + "Chemistry": 53 }, "traits": [], "needs": { @@ -6118,9 +11325,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Skirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "home" + } + ] }, - "hourlyWageAsk": 55.87 + "hourlyWageAsk": 59.57 }, { "person": { @@ -6174,10 +11431,14 @@ "Agility": 78, "Communication": 64, "Endurance": 69, + "Hauling": 50, "Strength": 45, - "RussianLanguage": 55, - "BelarusianLanguage": 22, - "UkrainianLanguage": 17 + "RussianLanguage": 58, + "Chemistry": 32, + "Librarianship": 44, + "Administration": 58, + "BelarusianLanguage": 28, + "UkrainianLanguage": 40 }, "traits": [], "needs": { @@ -6186,9 +11447,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Green", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 60 + "hourlyWageAsk": 60.87 }, { "person": { @@ -6242,12 +11553,11 @@ "Agility": 42, "Communication": 55, "Endurance": 31, - "Strength": 61, - "RussianLanguage": 47, - "Mathematics": 73, - "English": 63, - "BelarusianLanguage": 17, - "UkrainianLanguage": 22 + "Hauling": 60, + "Strength": 40, + "RussianLanguage": 51, + "English": 70, + "UkrainianLanguage": 17 }, "traits": [], "needs": { @@ -6256,9 +11566,71 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 57.4 + "hourlyWageAsk": 57.45 }, { "person": { @@ -6300,26 +11672,30 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 154, - "Weight": 70 + "Height": 159, + "Weight": 61 }, "choices": { - "EyeColor": "BlueEyes", + "EyeColor": "GreenEyes", "HairColor": "BrownHair", - "Build": "Heavy" + "Build": "Athletic" }, "skills": { - "Agility": 45, - "Communication": 64, - "Endurance": 27, - "Strength": 36, - "RussianLanguage": 63, - "Librarianship": 54, - "BelarusianLanguage": 14, - "UkrainianLanguage": 17 + "Agility": 40, + "Communication": 65, + "Endurance": 40, + "Hauling": 47, + "Strength": 59, + "RussianLanguage": 33, + "Pedagogy": 50, + "Librarianship": 32, + "English": 59, + "German": 27, + "BelarusianLanguage": 17, + "UkrainianLanguage": 13 }, "traits": [ - "Kind" + "HotTempered" ], "needs": { "Hunger": 1, @@ -6327,9 +11703,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 54 + "hourlyWageAsk": 60.1 }, { "person": { @@ -6383,11 +11809,11 @@ "Agility": 64, "Communication": 51, "Endurance": 40, - "Strength": 53, - "RussianLanguage": 55, - "Mathematics": 60, - "Literature": 48, - "English": 65, + "Hauling": 53, + "Strength": 49, + "RussianLanguage": 57, + "Physics": 38, + "Geography": 51, "BelarusianLanguage": 0, "UkrainianLanguage": 29 }, @@ -6398,9 +11824,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Gray", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 57.9 + "hourlyWageAsk": 55.92 }, { "person": { @@ -6454,8 +11936,12 @@ "Agility": 45, "Communication": 57, "Endurance": 22, - "Strength": 28, - "RussianLanguage": 77 + "Hauling": 31, + "Strength": 73, + "RussianLanguage": 71, + "Geography": 57, + "BelarusianLanguage": 27, + "UkrainianLanguage": 6 }, "traits": [ "AbsentMinded", @@ -6467,9 +11953,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 49.48 + "hourlyWageAsk": 47.93 }, { "person": { @@ -6523,14 +12059,10 @@ "Agility": 45, "Communication": 31, "Endurance": 53, - "Strength": 33, - "RussianLanguage": 48, - "PhysicalEducation": 64, - "Informatics": 34, - "Medicine": 48, - "English": 41, - "BelarusianLanguage": 16, - "UkrainianLanguage": 12 + "Hauling": 36, + "Strength": 35, + "RussianLanguage": 70, + "BelarusianLanguage": 15 }, "traits": [ "Diligent" @@ -6541,9 +12073,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 53.18 + "hourlyWageAsk": 54.43 }, { "person": { @@ -6597,12 +12185,13 @@ "Agility": 42, "Communication": 59, "Endurance": 31, - "Strength": 40, - "RussianLanguage": 61, - "History": 37, - "Medicine": 65, - "English": 63, - "BelarusianLanguage": 33 + "Hauling": 42, + "Strength": 56, + "RussianLanguage": 41, + "Informatics": 33, + "Pedagogy": 31, + "Administration": 47, + "English": 55 }, "traits": [ "AbsentMinded", @@ -6614,9 +12203,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "LightBlue", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 58.73 + "hourlyWageAsk": 56.22 }, { "person": { @@ -6670,10 +12315,10 @@ "Agility": 45, "Communication": 52, "Endurance": 56, - "Strength": 42, - "RussianLanguage": 57, - "English": 69, - "BelarusianLanguage": 20, + "Hauling": 43, + "Strength": 51, + "RussianLanguage": 76, + "English": 39, "UkrainianLanguage": 26 }, "traits": [ @@ -6685,9 +12330,47 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Black", + "condition": 1, + "location": "home" + } + ] }, - "hourlyWageAsk": 57.52 + "hourlyWageAsk": 59.1 }, { "person": { @@ -6741,12 +12424,12 @@ "Agility": 25, "Communication": 60, "Endurance": 35, - "Strength": 63, - "RussianLanguage": 57, - "Informatics": 25, - "Geography": 71, - "Pedagogy": 67, - "English": 76 + "Hauling": 61, + "Strength": 51, + "RussianLanguage": 47, + "Cooking": 74, + "BelarusianLanguage": 22, + "UkrainianLanguage": 20 }, "traits": [ "HotTempered" @@ -6757,9 +12440,71 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Blue", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "Black", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 67.93 + "hourlyWageAsk": 62.33 }, { "person": { @@ -6813,13 +12558,12 @@ "Agility": 45, "Communication": 66, "Endurance": 48, - "Strength": 37, - "RussianLanguage": 39, - "Physics": 42, - "Biology": 49, - "Medicine": 27, - "English": 32, - "BelarusianLanguage": 26 + "Hauling": 39, + "Strength": 31, + "RussianLanguage": 65, + "Geography": 60, + "BelarusianLanguage": 22, + "UkrainianLanguage": 11 }, "traits": [], "needs": { @@ -6828,9 +12572,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 54.66 + "hourlyWageAsk": 55.8 }, { "person": { @@ -6884,10 +12678,14 @@ "Agility": 61, "Communication": 45, "Endurance": 36, - "Strength": 46, - "RussianLanguage": 51, - "Physics": 46, - "Medicine": 58 + "Hauling": 46, + "Strength": 44, + "RussianLanguage": 75, + "Mathematics": 48, + "Cooking": 46, + "Pedagogy": 49, + "BelarusianLanguage": 21, + "UkrainianLanguage": 36 }, "traits": [], "needs": { @@ -6896,9 +12694,47 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Beige", + "condition": 1, + "location": "worn" + } + ] }, - "hourlyWageAsk": 59.4 + "hourlyWageAsk": 57.65 }, { "person": { @@ -6952,11 +12788,15 @@ "Agility": 45, "Communication": 65, "Endurance": 39, - "Strength": 26, - "RussianLanguage": 56, - "Biology": 46, - "BelarusianLanguage": 18, - "UkrainianLanguage": 9 + "Hauling": 29, + "Strength": 44, + "RussianLanguage": 75, + "Literature": 20, + "Mathematics": 73, + "Administration": 27, + "English": 61, + "BelarusianLanguage": 8, + "UkrainianLanguage": 12 }, "traits": [ "Diligent", @@ -6968,9 +12808,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 44.8 + "hourlyWageAsk": 46.9 }, { "person": { @@ -7024,10 +12920,14 @@ "Agility": 40, "Communication": 57, "Endurance": 52, - "Strength": 40, - "RussianLanguage": 77, - "Chemistry": 52, - "English": 50 + "Hauling": 37, + "Strength": 73, + "RussianLanguage": 62, + "PhysicalEducation": 100, + "Mathematics": 35, + "Medicine": 60, + "Pedagogy": 58, + "UkrainianLanguage": 22 }, "traits": [], "needs": { @@ -7036,9 +12936,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Scarf", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "home" + } + ] }, - "hourlyWageAsk": 61.54 + "hourlyWageAsk": 62.51 }, { "person": { @@ -7092,11 +13042,11 @@ "Agility": 40, "Communication": 48, "Endurance": 48, - "Strength": 57, - "RussianLanguage": 46, - "Physics": 29, - "Pedagogy": 69, - "BelarusianLanguage": 28 + "Hauling": 56, + "Strength": 40, + "RussianLanguage": 71, + "Informatics": 68, + "English": 48 }, "traits": [ "HotTempered", @@ -7108,9 +13058,71 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Trousers", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 73.38 + "hourlyWageAsk": 77.43 }, { "person": { @@ -7164,12 +13176,12 @@ "Agility": 51, "Communication": 85, "Endurance": 60, - "Strength": 45, - "RussianLanguage": 57, - "Biology": 64, - "Administration": 48, - "English": 73, - "BelarusianLanguage": 20 + "Hauling": 51, + "Strength": 44, + "RussianLanguage": 77, + "Physics": 66, + "Librarianship": 63, + "Administration": 61 }, "traits": [ "Diligent" @@ -7180,9 +13192,59 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Phone", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 63.53 + "hourlyWageAsk": 67.2 }, { "person": { @@ -7236,10 +13298,15 @@ "Agility": 75, "Communication": 73, "Endurance": 44, - "Strength": 33, - "RussianLanguage": 51, - "BelarusianLanguage": 28, - "UkrainianLanguage": 28 + "Hauling": 35, + "Strength": 45, + "RussianLanguage": 68, + "Literature": 71, + "Chemistry": 25, + "Medicine": 41, + "Librarianship": 17, + "German": 46, + "UkrainianLanguage": 29 }, "traits": [ "Kind", @@ -7251,9 +13318,53 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 50.46 + "hourlyWageAsk": 50.45 }, { "person": { @@ -7307,11 +13418,12 @@ "Agility": 33, "Communication": 60, "Endurance": 56, - "Strength": 43, - "RussianLanguage": 68, - "History": 32, - "BelarusianLanguage": 23, - "UkrainianLanguage": 28 + "Hauling": 44, + "Strength": 63, + "RussianLanguage": 47, + "Administration": 52, + "BelarusianLanguage": 19, + "UkrainianLanguage": 26 }, "traits": [ "Curious", @@ -7323,9 +13435,47 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "Dress", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "FurCoat", + "color": "Gray", + "condition": 1, + "location": "home" + } + ] }, - "hourlyWageAsk": 55.72 + "hourlyWageAsk": 56.67 }, { "person": { @@ -7379,13 +13529,12 @@ "Agility": 77, "Communication": 57, "Endurance": 40, - "Strength": 40, - "RussianLanguage": 71, - "Physics": 29, - "Cooking": 65, - "Administration": 68, - "BelarusianLanguage": 24, - "UkrainianLanguage": 16 + "Hauling": 30, + "Strength": 66, + "RussianLanguage": 72, + "Pedagogy": 74, + "German": 55, + "UkrainianLanguage": 13 }, "traits": [], "needs": { @@ -7394,9 +13543,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Shoes", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Belt", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Black", + "condition": 1, + "location": "home" + }, + { + "def": "Bottle", + "color": "Green", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 59.22 + "hourlyWageAsk": 62.27 }, { "person": { @@ -7450,9 +13655,13 @@ "Agility": 42, "Communication": 56, "Endurance": 58, - "Strength": 50, - "RussianLanguage": 67, - "Cooking": 46 + "Hauling": 50, + "Strength": 62, + "RussianLanguage": 40, + "Cooking": 53, + "Medicine": 54, + "English": 35, + "UkrainianLanguage": 23 }, "traits": [ "AbsentMinded", @@ -7464,9 +13673,65 @@ "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Pants", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Shirt", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Sweater", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Jacket", + "color": "Beige", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "Blue", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 61.9 + "hourlyWageAsk": 58.38 }, { "person": { @@ -7508,38 +13773,86 @@ "isStaff": false, "isParent": true, "numbers": { - "Height": 170, - "Weight": 65 + "Height": 171, + "Weight": 53 }, "choices": { "EyeColor": "BrownEyes", - "HairColor": "BrownHair", - "Build": "Athletic" + "HairColor": "BlondHair", + "Build": "Skinny" }, "skills": { - "Agility": 40, - "Communication": 80, - "Endurance": 51, - "Strength": 54, - "RussianLanguage": 61, - "Librarianship": 48, - "Cooking": 58, - "English": 43, - "UkrainianLanguage": 28 + "Agility": 59, + "Communication": 85, + "Endurance": 48, + "Hauling": 42, + "Strength": 38, + "RussianLanguage": 53, + "Mathematics": 44, + "Chemistry": 41, + "Cooking": 52, + "Medicine": 46 }, - "traits": [ - "Curious", - "Leader" - ], + "traits": [], "needs": { "Hunger": 1, "Sleep": 1, "Social": 1, "Toilet": 1 }, - "subjects": [] + "subjects": [], + "items": [ + { + "def": "Underwear", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Socks", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Jeans", + "color": "Blue", + "condition": 1, + "location": "worn" + }, + { + "def": "TShirt", + "color": "White", + "condition": 1, + "location": "worn" + }, + { + "def": "WinterBoots", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Coat", + "color": "Gray", + "condition": 1, + "location": "worn" + }, + { + "def": "Hat", + "color": "Black", + "condition": 1, + "location": "worn" + }, + { + "def": "Bottle", + "color": "White", + "condition": 1, + "location": "bag" + } + ] }, - "hourlyWageAsk": 70.87 + "hourlyWageAsk": 60.48 } ] } diff --git a/tests/HSchool.Content.Tests/ApparelDefTests.cs b/tests/HSchool.Content.Tests/ApparelDefTests.cs index 5129e07..99e2e98 100644 --- a/tests/HSchool.Content.Tests/ApparelDefTests.cs +++ b/tests/HSchool.Content.Tests/ApparelDefTests.cs @@ -34,6 +34,7 @@ public class ApparelDefTests Assert.Empty(chair.Colors); Assert.Null(chair.SkirtLength); Assert.False(chair.Pe); + Assert.Equal(0, chair.CarryChance); Assert.Equal(0, chair.PupilSlots); } @@ -166,4 +167,20 @@ public class ApparelDefTests Assert.Contains("TShirt", ex.Message, StringComparison.Ordinal); } + + [Fact] + public void CarryChanceAboveOne_FailsTheCatalog() + { + var ex = Assert.Throws(() => _loader.Load( + [CatalogLoader.CorePackId], + [ + PackDocuments.Def( + CatalogLoader.CorePackId, + "things", + "phone", + """{ "defName": "Phone", "portable": true, "carryChance": 1.2 }"""), + ])); + + Assert.Contains("carryChance", ex.Message, StringComparison.Ordinal); + } } diff --git a/tests/HSchool.Content.Tests/BehaviorDefTests.cs b/tests/HSchool.Content.Tests/BehaviorDefTests.cs index 28ad0c0..b96c224 100644 --- a/tests/HSchool.Content.Tests/BehaviorDefTests.cs +++ b/tests/HSchool.Content.Tests/BehaviorDefTests.cs @@ -47,4 +47,20 @@ public class BehaviorDefTests warning => warning.Contains("lunchWeight", StringComparison.Ordinal) && warning.Contains("dutyLessonWeight", StringComparison.Ordinal)); } + + [Fact] + public void NegativeCarryMass_FailsTheCatalog() + { + var error = Assert.Throws(() => _loader.Load( + [CatalogLoader.CorePackId], + [ + PackDocuments.Def( + CatalogLoader.CorePackId, + "behavior", + "rules", + """{ "defName": "Behavior", "carryMassBase": -1 }"""), + ])); + + Assert.Contains("carry mass", error.Message, StringComparison.OrdinalIgnoreCase); + } } diff --git a/tests/HSchool.Content.Tests/PeopleDefTests.cs b/tests/HSchool.Content.Tests/PeopleDefTests.cs index 4a57c2e..d817004 100644 --- a/tests/HSchool.Content.Tests/PeopleDefTests.cs +++ b/tests/HSchool.Content.Tests/PeopleDefTests.cs @@ -21,6 +21,7 @@ public class PeopleDefTests Assert.Equal(0.2f, catalog.Needs["Hunger"].DecayPerHour); Assert.True(catalog.Skills["Communication"].Always); Assert.True(catalog.Skills["Agility"].Always); + Assert.True(catalog.Skills["Hauling"].Always); Assert.True(catalog.Skills["Pedagogy"].Work); Assert.Equal(0.4f, catalog.Skills["English"].AdultChance); Assert.Equal( diff --git a/tests/HSchool.Content.Tests/VanillaCoreTests.cs b/tests/HSchool.Content.Tests/VanillaCoreTests.cs index 8d749b4..682d66b 100644 --- a/tests/HSchool.Content.Tests/VanillaCoreTests.cs +++ b/tests/HSchool.Content.Tests/VanillaCoreTests.cs @@ -45,6 +45,9 @@ public class VanillaCoreTests Assert.True(catalog.Things["PeShirt"].Pe); Assert.True(catalog.Things["Textbook"].Portable); Assert.Empty(catalog.Things["Textbook"].Layers); + Assert.Equal(0, catalog.Things["Textbook"].CarryChance); + Assert.Equal(1, catalog.Things["SchoolBag"].CarryChance); + Assert.Equal(11, catalog.Things["Phone"].Age?.Min); Assert.Equal(1, catalog.Things.Values.Count(thing => thing.DefName == "Textbook")); Assert.Equal([ColorTags.Bright], catalog.Colors["Red"].Tags); Assert.Equal([ColorTags.Neutral, ColorTags.School], catalog.Colors["White"].Tags); @@ -100,6 +103,8 @@ public class VanillaCoreTests Assert.Equal(5f, catalog.BehaviorRules.DutyTravelWeight); Assert.Equal(20f, catalog.BehaviorRules.NeedWeightAtZero); Assert.Equal(6f, catalog.BehaviorRules.LunchWeight); + Assert.Equal(5f, catalog.BehaviorRules.CarryMassBase); + Assert.Equal(0.4f, catalog.BehaviorRules.OptionalApparelChance); } /// diff --git a/tests/HSchool.People.Tests/DressGeneratorTests.cs b/tests/HSchool.People.Tests/DressGeneratorTests.cs new file mode 100644 index 0000000..93b1a27 --- /dev/null +++ b/tests/HSchool.People.Tests/DressGeneratorTests.cs @@ -0,0 +1,154 @@ +namespace HSchool.People.Tests; + +public class DressGeneratorTests +{ + [Fact] + public void SameSeedCountryMapAndLanguage_YieldTheSameItemsColorsAndPlaces() + { + var map = Fixtures.Classrooms(11); + var a = Fixtures.Generate(map); + var b = Fixtures.Generate(map); + + Assert.Equal(ItemsSnapshot(a), ItemsSnapshot(b)); + } + + [Fact] + public void WornLayers_DoNotOverlap_AndADressFillsBottomAndTop() + { + var catalog = Fixtures.Catalog(); + var roster = Fixtures.Generate(Fixtures.Classrooms(11)); + + foreach (var person in roster.People) + { + var occupied = new HashSet(StringComparer.Ordinal); + foreach (var item in person.Items.Where(row => row.Location == ItemLocations.Worn)) + { + Assert.True(catalog.Things.TryGetValue(item.Def, out var def)); + foreach (var layer in def.Layers) + { + Assert.True(occupied.Add(layer), $"{person.Id} wears two things on {layer}."); + } + } + } + + Assert.Contains( + roster.People, + person => person.Items.Any(item => + item.Location == ItemLocations.Worn && item.Def.Equals("Dress", StringComparison.Ordinal))); + var dressed = roster.People.First(person => + person.Items.Any(item => item.Location == ItemLocations.Worn && item.Def == "Dress")); + var worn = dressed.Items.Where(item => item.Location == ItemLocations.Worn).Select(item => item.Def).ToHashSet(); + Assert.DoesNotContain("TShirt", worn); + Assert.DoesNotContain("Shirt", worn); + Assert.DoesNotContain("Skirt", worn); + Assert.DoesNotContain("Pants", worn); + } + + [Fact] + public void Men_DoNotWearSkirts_AndWornColors_AreNotBright() + { + var catalog = Fixtures.Catalog(); + var roster = Fixtures.Generate(Fixtures.Classrooms(11)); + + foreach (var person in roster.People) + { + foreach (var item in person.Items.Where(row => row.Location == ItemLocations.Worn)) + { + Assert.True(catalog.Things.TryGetValue(item.Def, out var def)); + if (!person.Female) + { + Assert.False( + def.Sex is not null && def.Sex.Equals("female", StringComparison.OrdinalIgnoreCase), + $"{person.Id} wears {item.Def}."); + } + + if (item.Color is { } color + && catalog.Colors.TryGetValue(color, out var colorDef)) + { + Assert.DoesNotContain(ColorTags.Bright, colorDef.Tags, StringComparer.Ordinal); + } + } + } + } + + [Fact] + public void PupilInAMathematicsYear_HasAMathematicsTextbook() + { + var roster = Fixtures.Generate(Fixtures.Classrooms(11)); + var years = roster.Classes.ToDictionary(row => row.Id, row => row.Year, StringComparer.Ordinal); + var pupil = roster.People.First(person => + person.IsStudent + && person.ClassId is { } classId + && years[classId] >= 5); + + Assert.Contains( + pupil.Items, + item => item.Def.Equals("Textbook", StringComparison.Ordinal) + && item.Subject is not null + && item.Subject.Equals("Mathematics", StringComparison.Ordinal)); + } + + [Fact] + public void ParentsAndApplicants_AreDressed() + { + var catalog = Fixtures.Catalog(); + var roster = Fixtures.Generate(Fixtures.VanillaMap()); + var pool = ApplicantPool.Create(catalog, roster, Fixtures.SchoolSeed, "Russia", Fixtures.AsOf); + + Assert.Contains(roster.People, person => person.IsParent); + Assert.All( + roster.People.Where(person => person.IsParent), + parent => Assert.Contains(parent.Items, item => item.Location == ItemLocations.Worn)); + Assert.NotEmpty(pool.Applicants); + Assert.All( + pool.Applicants, + applicant => Assert.Contains(applicant.Person.Items, item => item.Location == ItemLocations.Worn)); + } + + [Fact] + public void BagMass_DoesNotExceedCapacity() + { + var catalog = Fixtures.Catalog(); + var roster = Fixtures.Generate(Fixtures.Classrooms(11)); + var pool = ApplicantPool.Create(catalog, roster, Fixtures.SchoolSeed, "Russia", Fixtures.AsOf); + + foreach (var person in roster.People.Concat(pool.Applicants.Select(row => row.Person))) + { + var held = CarryMass.Held(catalog, person.Items); + var cap = CarryMass.Capacity(catalog, person.Skills); + Assert.True(held <= cap, $"{person.Id} carries {held} over {cap}."); + } + } + + [Fact] + public void PeopleJsonWithoutInventory_IsDressedOnEnsure() + { + var catalog = Fixtures.Catalog(); + var roster = Fixtures.Generate(Fixtures.Classrooms(4)); + var stripped = new Roster( + roster.People.Select(person => person with { Items = [] }).ToArray(), + roster.Families, + roster.Classes); + + Assert.True(DressGenerator.NeedsDressing(stripped, ApplicantPool.Empty)); + var dressed = DressGenerator.EnsureRoster(catalog, stripped, Fixtures.SchoolSeed, Fixtures.AsOf); + Assert.False(DressGenerator.NeedsDressing(dressed, ApplicantPool.Empty)); + Assert.Equal(ItemsSnapshot(roster), ItemsSnapshot(dressed)); + } + + [Fact] + public void EveryoneHasHauling() + { + var roster = Fixtures.Generate(Fixtures.Classrooms(4)); + Assert.All(roster.People, person => Assert.True(person.Skills.ContainsKey("Hauling"))); + } + + private static string ItemsSnapshot(Roster roster) => + string.Join( + '\n', + roster.People.OrderBy(person => person.Id, StringComparer.Ordinal).Select(person => + $"{person.Id}|" + string.Join( + ',', + person.Items.Select(item => + $"{item.Def}:{item.Color ?? "-"}:{item.Location}:{item.Subject ?? "-"}:{item.Condition}")))); +} diff --git a/tests/HSchool.People.Tests/GoldenSaveDump.cs b/tests/HSchool.People.Tests/GoldenSaveDump.cs index e25f0e6..b17e1da 100644 --- a/tests/HSchool.People.Tests/GoldenSaveDump.cs +++ b/tests/HSchool.People.Tests/GoldenSaveDump.cs @@ -32,7 +32,7 @@ public class GoldenSaveDump Write(Path.Combine(root, "current", "1.json"), current); Write(Path.Combine(root, "current", "1.people.json"), people); Write(Path.Combine(root, "legacy-no-native", "1.json"), legacy); - Write(Path.Combine(root, "legacy-no-native", "1.people.json"), people); + // people.json in legacy-no-native stays the historic undressed file: load must dress it. } internal static MapLayout TwoClassrooms() => diff --git a/tests/HSchool.People.Tests/ReviewFixTests.cs b/tests/HSchool.People.Tests/ReviewFixTests.cs index 6be3ef1..db8b28a 100644 --- a/tests/HSchool.People.Tests/ReviewFixTests.cs +++ b/tests/HSchool.People.Tests/ReviewFixTests.cs @@ -198,7 +198,8 @@ public class ReviewFixTests seat, new DateTime(2011, 9, 1, 0, 0, 0, DateTimeKind.Utc), Fixtures.AsOf, - motherOnly.NextChildIndex); + motherOnly.NextChildIndex, + Fixtures.SchoolSeed); // Boys need the male form of a surname no living member of this household carries. var entry = names.Surnames.Single(candidate => candidate.Male == motherOnly.Surname); diff --git a/tests/HSchool.People.Tests/RosterFingerprint.cs b/tests/HSchool.People.Tests/RosterFingerprint.cs index 7432f1c..e93184d 100644 --- a/tests/HSchool.People.Tests/RosterFingerprint.cs +++ b/tests/HSchool.People.Tests/RosterFingerprint.cs @@ -54,8 +54,12 @@ internal static class RosterFingerprint var skills = string.Join( ',', person.Skills.OrderBy(pair => pair.Key, StringComparer.Ordinal).Select(pair => $"{pair.Key}={pair.Value}")); + var items = string.Join( + ',', + person.Items.Select(item => + $"{item.Def}:{item.Color ?? "-"}:{item.Location}{(item.Subject is { } subject ? $":{subject}" : "")}")); return - $"person {person.Id} {person.Name.Full} female={person.Female} roles={roles} class={person.ClassId ?? "-"} born={person.BirthDate:yyyy-MM-dd} traits={traits} skills={skills}"; + $"person {person.Id} {person.Name.Full} female={person.Female} roles={roles} class={person.ClassId ?? "-"} born={person.BirthDate:yyyy-MM-dd} traits={traits} skills={skills} items={items}"; } private static IEnumerable Roles(Person person) diff --git a/tests/HSchool.People.Tests/SkillGrantTests.cs b/tests/HSchool.People.Tests/SkillGrantTests.cs index 6052dbe..6d61ea3 100644 --- a/tests/HSchool.People.Tests/SkillGrantTests.cs +++ b/tests/HSchool.People.Tests/SkillGrantTests.cs @@ -15,6 +15,7 @@ public class SkillGrantTests Assert.True(person.Skills.ContainsKey("Communication")); Assert.True(person.Skills.ContainsKey("RussianLanguage")); Assert.True(person.Skills.ContainsKey("Agility")); + Assert.True(person.Skills.ContainsKey("Hauling")); Assert.True(person.Skills.ContainsKey("Mathematics")); Assert.False(person.Skills.ContainsKey("Chemistry")); Assert.False(person.Skills.ContainsKey("Physics")); diff --git a/tests/HSchool.People.Tests/golden/README.md b/tests/HSchool.People.Tests/golden/README.md index 0077a82..98d7ada 100644 --- a/tests/HSchool.People.Tests/golden/README.md +++ b/tests/HSchool.People.Tests/golden/README.md @@ -1,7 +1,12 @@ # Golden roster -`roster.txt` is the fingerprint of `RosterGenerator` for a fixed seed, four classrooms, Slavic -names and Russian as the native language. +`roster.txt` is the fingerprint of `RosterGenerator` for a fixed seed, four classrooms, country +Russia and Russian as the native language. + +Phase 31 changed this file on purpose: everyone now has `Hauling` (an `always` skill, extra +rolls on the shared family stream, so later members' traits/skills shift) and an `items=` +column (wardrobe from a separate apparel stream). Names and birth dates of the first child +in a family stay; clothes are new. Update it **in the same commit that changes generation**, and say in the commit message what changed (a new skill, a related-language roll, a different birth window). A red golden test is diff --git a/tests/HSchool.People.Tests/golden/roster.txt b/tests/HSchool.People.Tests/golden/roster.txt index 64404bb..494e659 100644 --- a/tests/HSchool.People.Tests/golden/roster.txt +++ b/tests/HSchool.People.Tests/golden/roster.txt @@ -3,133 +3,133 @@ class class-classroom-00 year=1 letter=А room=classroom-00 capacity=16 pupils=f class class-classroom-01 year=2 letter=А room=classroom-01 capacity=16 pupils=f0.c1,f12.c0,f12.c1,f12.c2,f13.c1,f13.c2,f14.c2,f20.c0,f23.c1,f26.c0,f27.c0,f29.c0,f31.c0,f4.c0,f7.c0,f9.c0 class class-classroom-02 year=3 letter=А room=classroom-02 capacity=16 pupils=f10.c0,f14.c0,f16.c0,f17.c1,f2.c0,f21.c0,f22.c1,f23.c0,f25.c0,f28.c0,f3.c0,f3.c1,f32.c0,f32.c2,f5.c0,f6.c1 class class-classroom-03 year=4 letter=А room=classroom-03 capacity=16 pupils=f0.c0,f1.c0,f11.c0,f14.c1,f15.c0,f17.c0,f17.c2,f20.c1,f22.c0,f24.c0,f28.c1,f30.c0,f30.c1,f8.c1,f9.c1,f9.c2 -person f0.c0 Андреев Сергей Валериевич female=False roles=student class=class-classroom-03 born=2000-10-23 traits=Quiet skills=Agility=23,BelarusianLanguage=6,Biology=57,Communication=29,Endurance=51,Literature=20,Mathematics=14,PhysicalEducation=77,RussianLanguage=32,Strength=43,UkrainianLanguage=24 -person f0.c1 Андреев Александр Валериевич female=False roles=student class=class-classroom-01 born=2002-11-09 traits=Curious,Quiet skills=Agility=47,BelarusianLanguage=14,Biology=56,Communication=42,Endurance=51,Literature=40,Mathematics=35,PhysicalEducation=41,RussianLanguage=45,Strength=45,UkrainianLanguage=40 -person f0.p0 Андреев Валерий Николаевич female=False roles=parent class=- born=1971-06-03 traits=Diligent,Quiet skills=Agility=43,Communication=58,Endurance=61,English=62,RussianLanguage=46,Strength=63,UkrainianLanguage=37 -person f0.p1 Андреева Марина Артемовна female=True roles=parent class=- born=1971-09-30 traits= skills=Agility=30,Communication=35,Endurance=46,English=58,Informatics=59,Librarianship=63,Medicine=73,PhysicalEducation=45,RussianLanguage=68,Strength=52 -person f1.c0 Александрова Людмила Борисовна female=True roles=student class=class-classroom-03 born=2001-01-26 traits= skills=Agility=72,Biology=49,Communication=37,Endurance=39,Literature=69,Mathematics=66,PhysicalEducation=65,RussianLanguage=41,Strength=45,UkrainianLanguage=27 -person f1.c1 Александров Евгений Борисович female=False roles=student class=class-classroom-00 born=2004-04-01 traits=Diligent,Kind skills=Agility=59,BelarusianLanguage=40,Biology=62,Communication=16,Endurance=56,Literature=83,Mathematics=36,PhysicalEducation=45,RussianLanguage=46,Strength=45 -person f1.c2 Александров Юрий Борисович female=False roles=student class=class-classroom-00 born=2003-10-28 traits= skills=Agility=44,BelarusianLanguage=27,Biology=73,Communication=24,Endurance=67,Literature=70,Mathematics=24,PhysicalEducation=54,RussianLanguage=15,Strength=45 -person f1.p0 Александров Борис Ильич female=False roles=parent class=- born=1968-10-25 traits= skills=Agility=45,Communication=74,Endurance=34,English=63,Librarianship=51,Mathematics=66,RussianLanguage=59,Strength=68,UkrainianLanguage=24 -person f1.p1 Александрова Елизавета Романовна female=True roles=parent class=- born=1972-01-25 traits=Diligent skills=Agility=61,BelarusianLanguage=29,Communication=35,Endurance=39,English=52,Mathematics=72,RussianLanguage=61,Strength=45,UkrainianLanguage=21 -person f10.c0 Захаров Пётр Виталиевич female=False roles=student class=class-classroom-02 born=2001-11-08 traits= skills=Agility=64,BelarusianLanguage=27,Biology=49,Communication=37,Endurance=47,Literature=51,Mathematics=30,PhysicalEducation=42,RussianLanguage=35,Strength=37,UkrainianLanguage=24 -person f10.p0 Захаров Виталий Борисович female=False roles=parent class=- born=1976-09-07 traits=HotTempered,Leader skills=Agility=44,Chemistry=93,Communication=66,Endurance=82,English=31,RussianLanguage=60,Strength=40 -person f10.p1 Захарова Любовь Валериевна female=True roles=parent class=- born=1978-11-03 traits=AbsentMinded,Neat skills=Administration=66,Agility=36,BelarusianLanguage=38,Communication=64,Endurance=79,Informatics=51,Medicine=64,RussianLanguage=63,Strength=80,UkrainianLanguage=40 -person f11.c0 Андреева Дарья Ивановна female=True roles=student class=class-classroom-03 born=2001-05-20 traits= skills=Agility=60,BelarusianLanguage=22,Biology=60,Communication=36,Endurance=54,Literature=42,Mathematics=54,PhysicalEducation=48,RussianLanguage=35,Strength=45,UkrainianLanguage=22 -person f11.p0 Андреев Иван Алексеевич female=False roles=parent class=- born=1976-06-01 traits= skills=Agility=38,BelarusianLanguage=27,Communication=52,Endurance=82,RussianLanguage=72,Strength=30 -person f11.p1 Андреева София Александровна female=True roles=parent class=- born=1978-04-24 traits= skills=Agility=39,BelarusianLanguage=18,Communication=41,Endurance=50,English=55,Geography=59,Informatics=47,RussianLanguage=62,Strength=45 -person f12.c0 Кузьмин Олег Владиславович female=False roles=student class=class-classroom-01 born=2003-03-20 traits=AbsentMinded,Bully skills=Agility=51,BelarusianLanguage=30,Biology=64,Communication=54,Endurance=40,Literature=54,Mathematics=32,PhysicalEducation=54,RussianLanguage=40,Strength=70,UkrainianLanguage=18 -person f12.c1 Кузьмин Егор Владиславович female=False roles=student class=class-classroom-01 born=2003-05-31 traits=HotTempered,Kind skills=Agility=19,BelarusianLanguage=10,Biology=45,Communication=43,Endurance=42,Literature=60,Mathematics=24,PhysicalEducation=50,RussianLanguage=38,Strength=45 -person f12.c2 Кузьмина Дарья Владиславовна female=True roles=student class=class-classroom-01 born=2002-10-29 traits=Curious skills=Agility=43,Biology=42,Communication=37,Endurance=34,Literature=44,Mathematics=25,PhysicalEducation=57,RussianLanguage=38,Strength=45,UkrainianLanguage=18 -person f12.p0 Кузьмин Владислав Александрович female=False roles=parent class=- born=1975-01-17 traits= skills=Agility=25,BelarusianLanguage=27,Communication=68,Endurance=35,Literature=53,Mathematics=41,RussianLanguage=43,Strength=65,UkrainianLanguage=14 -person f12.p1 Кузьмина Ольга Кирилловна female=True roles=parent class=- born=1979-10-15 traits=Kind,Lazy skills=Administration=58,Agility=54,BelarusianLanguage=15,Communication=65,Endurance=40,English=50,Physics=34,RussianLanguage=52,Strength=63,UkrainianLanguage=16 -person f13.c0 Яковлев Константин Владиславович female=False roles=student class=class-classroom-00 born=2004-06-16 traits=HotTempered skills=Agility=67,Biology=45,Communication=21,Endurance=49,Literature=60,Mathematics=14,PhysicalEducation=63,RussianLanguage=30,Strength=39,UkrainianLanguage=18 -person f13.c1 Яковлев Юрий Владиславович female=False roles=student class=class-classroom-01 born=2003-07-23 traits=Kind skills=Agility=77,Biology=69,Communication=26,Endurance=55,Literature=54,Mathematics=27,PhysicalEducation=41,RussianLanguage=48,Strength=45 -person f13.c2 Яковлева Алина Владиславовна female=True roles=student class=class-classroom-01 born=2003-02-01 traits=Lazy,Neat skills=Agility=42,BelarusianLanguage=22,Biology=66,Communication=43,Endurance=59,Literature=42,Mathematics=38,PhysicalEducation=72,RussianLanguage=40,Strength=54 -person f13.p0 Яковлев Владислав Андреевич female=False roles=parent class=- born=1974-09-23 traits=AbsentMinded,Kind skills=Administration=61,Agility=25,Communication=42,Endurance=35,Geography=31,German=44,History=68,RussianLanguage=44,Strength=52 -person f14.c0 Александров Степан Денисович female=False roles=student class=class-classroom-02 born=2002-01-03 traits=Bully,Lazy skills=Agility=26,BelarusianLanguage=20,Biology=42,Communication=45,Endurance=58,Literature=54,Mathematics=5,PhysicalEducation=51,RussianLanguage=29,Strength=49,UkrainianLanguage=17 -person f14.c1 Александрова Вероника Денисовна female=True roles=student class=class-classroom-03 born=2001-08-11 traits=AbsentMinded skills=Agility=52,BelarusianLanguage=22,Biology=59,Communication=38,Endurance=40,Literature=52,Mathematics=9,PhysicalEducation=62,RussianLanguage=53,Strength=43 -person f14.c2 Александров Константин Денисович female=False roles=student class=class-classroom-01 born=2003-08-21 traits= skills=Agility=45,BelarusianLanguage=22,Biology=35,Communication=16,Endurance=36,Literature=62,Mathematics=47,PhysicalEducation=65,RussianLanguage=26,Strength=51 -person f14.p1 Александрова Виктория Викторовна female=True roles=parent class=- born=1973-07-23 traits= skills=Agility=45,BelarusianLanguage=23,Communication=72,Cooking=33,Endurance=64,English=36,PhysicalEducation=61,RussianLanguage=55,Strength=42 -person f15.c0 Воробьёв Игорь Сергеевич female=False roles=student class=class-classroom-03 born=2000-09-20 traits=Diligent skills=Agility=40,BelarusianLanguage=12,Biology=42,Communication=51,Endurance=51,Literature=37,Mathematics=16,PhysicalEducation=31,RussianLanguage=11,Strength=51,UkrainianLanguage=11 -person f15.p0 Воробьёв Сергей Никитич female=False roles=parent class=- born=1974-10-22 traits=Neat,Quiet skills=Agility=45,BelarusianLanguage=28,Communication=54,Endurance=45,English=62,RussianLanguage=70,Strength=33,UkrainianLanguage=16 -person f15.p1 Воробьёва Вера Виталиевна female=True roles=parent class=- born=1972-09-07 traits=Curious skills=Agility=60,Communication=60,Endurance=52,Geography=42,History=40,RussianLanguage=40,Strength=64,UkrainianLanguage=25 -person f16.c0 Фролова Елизавета Игоревна female=True roles=student class=class-classroom-02 born=2002-06-29 traits=Lazy,Quiet skills=Agility=65,BelarusianLanguage=14,Biology=19,Communication=30,Endurance=34,Literature=33,Mathematics=27,PhysicalEducation=42,RussianLanguage=17,Strength=67 -person f16.p0 Фролов Игорь Виталиевич female=False roles=parent class=- born=1968-07-25 traits= skills=Agility=57,BelarusianLanguage=37,Communication=58,Endurance=63,English=52,RussianLanguage=52,Strength=49,UkrainianLanguage=20 -person f16.p1 Фролова Татьяна Олеговна female=True roles=parent class=- born=1970-06-17 traits=Curious,Diligent skills=Agility=80,BelarusianLanguage=5,Communication=63,Endurance=71,RussianLanguage=71,Strength=52 -person f17.c0 Иванов Андрей Александрович female=False roles=student class=class-classroom-03 born=2001-06-27 traits= skills=Agility=44,BelarusianLanguage=13,Biology=29,Communication=39,Endurance=60,Literature=49,Mathematics=34,PhysicalEducation=60,RussianLanguage=24,Strength=55 -person f17.c1 Иванова Ксения Александровна female=True roles=student class=class-classroom-02 born=2001-09-10 traits= skills=Agility=45,BelarusianLanguage=21,Biology=25,Communication=28,Endurance=64,Literature=66,Mathematics=37,PhysicalEducation=59,RussianLanguage=58,Strength=45 -person f17.c2 Иванова Полина Александровна female=True roles=student class=class-classroom-03 born=2001-05-21 traits=HotTempered,Kind skills=Agility=36,Biology=53,Communication=45,Endurance=45,Literature=43,Mathematics=29,PhysicalEducation=51,RussianLanguage=42,Strength=45,UkrainianLanguage=23 -person f17.p0 Иванов Александр Владимирович female=False roles=parent class=- born=1967-12-24 traits=Diligent,HotTempered skills=Agility=47,Communication=74,Cooking=58,Endurance=52,English=20,RussianLanguage=61,Strength=55 -person f17.p1 Иванова Александра Ивановна female=True roles=parent class=- born=1967-04-25 traits= skills=Agility=40,BelarusianLanguage=7,Communication=69,Endurance=63,Geography=64,Literature=72,RussianLanguage=73,Strength=40 -person f18.c0 Лебедев Александр Валериевич female=False roles=student class=class-classroom-00 born=2004-02-16 traits= skills=Agility=49,BelarusianLanguage=28,Biology=36,Communication=39,Endurance=28,Literature=38,Mathematics=32,PhysicalEducation=36,RussianLanguage=37,Strength=21 -person f18.p0 Лебедев Валерий Романович female=False roles=parent class=- born=1985-03-29 traits=Neat,Quiet skills=Agility=25,Communication=59,Endurance=35,English=60,Mathematics=59,Medicine=44,Pedagogy=62,Physics=45,RussianLanguage=67,Strength=33,UkrainianLanguage=19 -person f18.p1 Лебедева Юлия Михаиловна female=True roles=parent class=- born=1981-01-26 traits=Leader skills=Agility=44,Communication=73,Endurance=86,Geography=30,Medicine=45,Pedagogy=43,RussianLanguage=57,Strength=41,UkrainianLanguage=36 -person f19.c0 Воробьёв Григорий Михаилович female=False roles=student class=class-classroom-00 born=2004-08-29 traits=Quiet skills=Agility=62,Biology=45,Communication=36,Endurance=50,Literature=42,Mathematics=12,PhysicalEducation=56,RussianLanguage=54,Strength=37 -person f19.p0 Воробьёв Михаил Егорович female=False roles=parent class=- born=1978-11-03 traits=Lazy skills=Agility=40,BelarusianLanguage=34,Communication=56,Cooking=54,Endurance=46,History=51,RussianLanguage=61,Strength=40 -person f19.p1 Воробьёва Вера Алексеевна female=True roles=parent class=- born=1982-08-29 traits=HotTempered skills=Administration=50,Agility=45,BelarusianLanguage=20,Communication=67,Cooking=21,Endurance=57,Geography=41,PhysicalEducation=46,RussianLanguage=36,Strength=40,UkrainianLanguage=25 -person f2.c0 Алексеев Григорий Константинович female=False roles=student class=class-classroom-02 born=2002-07-24 traits=AbsentMinded,Curious skills=Agility=35,BelarusianLanguage=27,Biology=50,Communication=30,Endurance=68,Literature=50,Mathematics=8,PhysicalEducation=72,RussianLanguage=9,Strength=45,UkrainianLanguage=17 -person f2.p0 Алексеев Константин Романович female=False roles=parent class=- born=1974-12-11 traits=Neat skills=Administration=52,Agility=36,Communication=60,Cooking=55,Endurance=49,English=30,Geography=52,Mathematics=65,RussianLanguage=64,Strength=47,UkrainianLanguage=9 -person f2.p1 Алексеева Ольга Романовна female=True roles=parent class=- born=1970-07-22 traits=HotTempered skills=Administration=45,Agility=45,BelarusianLanguage=22,Communication=82,Endurance=54,English=46,History=43,Librarianship=65,RussianLanguage=65,Strength=64 -person f20.c0 Павлова Елена Игоревна female=True roles=student class=class-classroom-01 born=2002-11-09 traits= skills=Agility=48,Biology=38,Communication=37,Endurance=34,Literature=70,Mathematics=48,PhysicalEducation=51,RussianLanguage=26,Strength=40,UkrainianLanguage=21 -person f20.c1 Павлова Валентина Игоревна female=True roles=student class=class-classroom-03 born=2001-01-24 traits= skills=Agility=46,BelarusianLanguage=19,Biology=50,Communication=32,Endurance=50,Literature=44,Mathematics=19,PhysicalEducation=52,RussianLanguage=39,Strength=38,UkrainianLanguage=27 -person f20.p0 Павлов Игорь Никитич female=False roles=parent class=- born=1968-08-01 traits=HotTempered,Leader skills=Agility=72,Communication=57,Endurance=43,Informatics=54,Physics=43,RussianLanguage=49,Strength=43 -person f20.p1 Павлова Людмила Дмитриевна female=True roles=parent class=- born=1970-01-17 traits= skills=Agility=60,BelarusianLanguage=28,Communication=48,Cooking=71,Endurance=56,RussianLanguage=63,Strength=46 -person f21.c0 Ильин Андрей Константинович female=False roles=student class=class-classroom-02 born=2002-05-12 traits= skills=Agility=31,BelarusianLanguage=28,Biology=59,Communication=61,Endurance=48,Literature=47,Mathematics=34,PhysicalEducation=60,RussianLanguage=22,Strength=54 -person f21.p0 Ильин Константин Никитич female=False roles=parent class=- born=1971-01-21 traits=Diligent,Quiet skills=Agility=45,BelarusianLanguage=30,Communication=53,Endurance=40,Medicine=40,Pedagogy=74,PhysicalEducation=48,Physics=57,RussianLanguage=45,Strength=44,UkrainianLanguage=19 -person f21.p1 Ильина Яна Борисовна female=True roles=parent class=- born=1975-04-20 traits=Curious skills=Agility=35,BelarusianLanguage=13,Communication=62,Endurance=55,Informatics=60,Pedagogy=42,RussianLanguage=68,Strength=53,UkrainianLanguage=20 -person f22.c0 Захаров Никита Виталиевич female=False roles=student class=class-classroom-03 born=2000-09-14 traits=Diligent,Quiet skills=Agility=48,Biology=62,Communication=33,Endurance=59,Literature=64,Mathematics=32,PhysicalEducation=49,RussianLanguage=70,Strength=69 -person f22.c1 Захаров Денис Виталиевич female=False roles=student class=class-classroom-02 born=2001-09-11 traits=AbsentMinded skills=Agility=51,BelarusianLanguage=27,Biology=53,Communication=57,Endurance=53,Literature=74,Mathematics=18,PhysicalEducation=46,RussianLanguage=63,Strength=61 -person f22.p0 Захаров Виталий Андреевич female=False roles=parent class=- born=1966-04-08 traits= skills=Agility=29,BelarusianLanguage=2,Communication=62,Cooking=40,Endurance=82,English=62,Librarianship=50,RussianLanguage=64,Strength=30 -person f22.p1 Захарова Елизавета Егоровна female=True roles=parent class=- born=1967-09-05 traits=Diligent,HotTempered skills=Administration=51,Agility=51,BelarusianLanguage=6,Biology=40,Communication=56,Endurance=52,English=53,Librarianship=50,Literature=79,RussianLanguage=62,Strength=62 -person f23.c0 Орловская Нина Константиновна female=True roles=student class=class-classroom-02 born=2001-11-01 traits=Neat skills=Agility=55,Biology=45,Communication=40,Endurance=55,Literature=16,Mathematics=38,PhysicalEducation=57,RussianLanguage=39,Strength=45,UkrainianLanguage=15 -person f23.c1 Орловская Полина Константиновна female=True roles=student class=class-classroom-01 born=2003-03-30 traits=Leader,Neat skills=Agility=51,BelarusianLanguage=20,Biology=51,Communication=22,Endurance=42,Literature=39,Mathematics=14,PhysicalEducation=54,RussianLanguage=24,Strength=40 -person f23.p0 Орловский Константин Михаилович female=False roles=parent class=- born=1965-04-02 traits=Diligent,HotTempered skills=Agility=45,Communication=55,Endurance=50,History=57,Librarianship=42,Mathematics=40,Pedagogy=35,RussianLanguage=46,Strength=50 -person f23.p1 Орловская Яна Степановна female=True roles=parent class=- born=1965-10-22 traits= skills=Agility=42,Communication=52,Endurance=55,RussianLanguage=46,Strength=34,UkrainianLanguage=10 -person f24.c0 Орлов Фёдор Алексеевич female=False roles=student class=class-classroom-03 born=2000-12-05 traits= skills=Agility=56,Biology=45,Communication=20,Endurance=35,Literature=67,Mathematics=23,PhysicalEducation=33,RussianLanguage=65,Strength=36 -person f24.c1 Орлова Оксана Алексеевна female=True roles=student class=class-classroom-00 born=2004-03-01 traits=Neat skills=Agility=55,BelarusianLanguage=4,Biology=40,Communication=43,Endurance=43,Literature=39,Mathematics=17,PhysicalEducation=56,RussianLanguage=27,Strength=26,UkrainianLanguage=25 -person f24.p0 Орлов Алексей Денисович female=False roles=parent class=- born=1977-04-17 traits= skills=Agility=45,BelarusianLanguage=21,Communication=51,Endurance=18,English=62,Geography=46,RussianLanguage=67,Strength=46 -person f24.p1 Орлова Надежда Владиславовна female=True roles=parent class=- born=1977-12-04 traits=Quiet skills=Agility=65,Biology=64,Communication=70,Cooking=41,Endurance=45,Librarianship=49,RussianLanguage=71,Strength=65 -person f25.c0 Петрова Александра Игоревна female=True roles=student class=class-classroom-02 born=2001-12-19 traits=AbsentMinded,Lazy skills=Agility=51,BelarusianLanguage=20,Biology=58,Communication=40,Endurance=54,Literature=65,Mathematics=50,PhysicalEducation=35,RussianLanguage=32,Strength=57 -person f25.p1 Петрова Полина Юриевна female=True roles=parent class=- born=1965-12-11 traits=Kind,Neat skills=Agility=53,BelarusianLanguage=15,Communication=50,Endurance=59,RussianLanguage=54,Strength=45 -person f26.c0 Яковлев Павел Михаилович female=False roles=student class=class-classroom-01 born=2002-12-29 traits=Curious skills=Agility=59,BelarusianLanguage=27,Biology=79,Communication=32,Endurance=57,Literature=35,Mathematics=10,PhysicalEducation=64,RussianLanguage=35,Strength=45 -person f26.c1 Яковлев Вадим Михаилович female=False roles=student class=class-classroom-00 born=2004-06-28 traits=Neat skills=Agility=54,BelarusianLanguage=17,Biology=66,Communication=43,Endurance=52,Literature=40,Mathematics=18,PhysicalEducation=34,RussianLanguage=22,Strength=45 -person f26.p0 Яковлев Михаил Степанович female=False roles=parent class=- born=1975-12-27 traits=HotTempered,Neat skills=Administration=44,Agility=44,Biology=52,Communication=59,Cooking=40,Endurance=66,English=56,Mathematics=55,RussianLanguage=52,Strength=53 -person f26.p1 Яковлева Марина Кирилловна female=True roles=parent class=- born=1976-12-10 traits=HotTempered,Kind skills=Agility=37,BelarusianLanguage=21,Communication=47,Cooking=44,Endurance=31,Pedagogy=40,RussianLanguage=68,Strength=48,UkrainianLanguage=27 -person f27.c0 Иванов Виктор Константинович female=False roles=student class=class-classroom-01 born=2002-12-27 traits=AbsentMinded,Curious skills=Agility=35,Biology=50,Communication=26,Endurance=35,Literature=60,Mathematics=1,PhysicalEducation=46,RussianLanguage=57,Strength=38 -person f27.c1 Иванов Владислав Константинович female=False roles=student class=class-classroom-00 born=2004-07-04 traits= skills=Agility=50,BelarusianLanguage=24,Biology=61,Communication=24,Endurance=76,Literature=72,Mathematics=25,PhysicalEducation=46,RussianLanguage=34,Strength=45,UkrainianLanguage=17 -person f27.c2 Иванов Александр Константинович female=False roles=student class=class-classroom-00 born=2004-05-25 traits=Kind,Neat skills=Agility=65,BelarusianLanguage=28,Biology=49,Communication=43,Endurance=68,Literature=42,Mathematics=46,PhysicalEducation=52,RussianLanguage=35,Strength=45,UkrainianLanguage=32 -person f27.p0 Иванов Константин Иванович female=False roles=parent class=- born=1974-08-25 traits=Neat skills=Administration=49,Agility=44,BelarusianLanguage=34,Communication=77,Endurance=42,English=55,RussianLanguage=36,Strength=64,UkrainianLanguage=26 -person f27.p1 Иванова Марина Константиновна female=True roles=parent class=- born=1969-11-29 traits=Quiet skills=Agility=46,BelarusianLanguage=21,Communication=61,Endurance=32,English=46,Librarianship=53,RussianLanguage=54,Strength=37 -person f28.c0 Иванов Пётр Петрович female=False roles=student class=class-classroom-02 born=2002-08-02 traits=AbsentMinded,Neat skills=Agility=73,Biology=62,Communication=42,Endurance=43,Literature=59,Mathematics=48,PhysicalEducation=39,RussianLanguage=11,Strength=45 -person f28.c1 Иванова Наталья Петровна female=True roles=student class=class-classroom-03 born=2000-12-07 traits=Bully,Lazy skills=Agility=64,BelarusianLanguage=30,Biology=46,Communication=27,Endurance=59,Literature=34,Mathematics=67,PhysicalEducation=69,RussianLanguage=51,Strength=45,UkrainianLanguage=23 -person f28.c2 Иванов Максим Петрович female=False roles=student class=class-classroom-00 born=2004-04-05 traits=Lazy skills=Agility=67,BelarusianLanguage=13,Biology=59,Communication=26,Endurance=54,Literature=31,Mathematics=29,PhysicalEducation=63,RussianLanguage=55,Strength=51,UkrainianLanguage=25 -person f28.p0 Иванов Пётр Олегович female=False roles=parent class=- born=1965-06-23 traits=AbsentMinded,Kind skills=Agility=75,BelarusianLanguage=26,Communication=60,Endurance=74,Informatics=60,Literature=57,Pedagogy=56,RussianLanguage=39,Strength=48 -person f28.p1 Иванова Полина Алексеевна female=True roles=parent class=- born=1965-11-18 traits= skills=Agility=17,BelarusianLanguage=24,Chemistry=40,Communication=52,Endurance=35,Librarianship=59,Medicine=69,Physics=42,RussianLanguage=50,Strength=61,UkrainianLanguage=21 -person f29.c0 Макарова Ксения Александровна female=True roles=student class=class-classroom-01 born=2002-11-08 traits=Bully skills=Agility=52,BelarusianLanguage=27,Biology=62,Communication=35,Endurance=53,Literature=71,Mathematics=48,PhysicalEducation=35,RussianLanguage=41,Strength=45 -person f29.p0 Макаров Александр Николаевич female=False roles=parent class=- born=1981-11-08 traits=AbsentMinded skills=Administration=40,Agility=50,BelarusianLanguage=25,Chemistry=42,Communication=44,Endurance=55,Geography=56,Librarianship=66,RussianLanguage=69,Strength=40,UkrainianLanguage=19 -person f29.p1 Макарова Мария Владиславовна female=True roles=parent class=- born=1977-10-31 traits=HotTempered skills=Agility=45,BelarusianLanguage=23,Chemistry=42,Communication=37,Endurance=70,Literature=20,RussianLanguage=54,Strength=44,UkrainianLanguage=25 -person f3.c0 Макарова Вероника Петровна female=True roles=student class=class-classroom-02 born=2002-05-15 traits=Curious,Diligent skills=Agility=37,BelarusianLanguage=32,Biology=32,Communication=61,Endurance=71,Literature=63,Mathematics=27,PhysicalEducation=60,RussianLanguage=66,Strength=81 -person f3.c1 Макаров Роман Петрович female=False roles=student class=class-classroom-02 born=2002-04-16 traits= skills=Agility=40,BelarusianLanguage=28,Biology=55,Communication=32,Endurance=34,Literature=51,Mathematics=41,PhysicalEducation=49,RussianLanguage=44,Strength=37 -person f3.p0 Макаров Пётр Егорович female=False roles=parent class=- born=1977-02-28 traits=Diligent,Neat skills=Agility=67,Communication=28,Endurance=53,English=57,Librarianship=39,RussianLanguage=45,Strength=42,UkrainianLanguage=26 -person f3.p1 Макарова Алина Антоновна female=True roles=parent class=- born=1978-04-05 traits= skills=Agility=62,BelarusianLanguage=26,Communication=63,Endurance=39,RussianLanguage=64,Strength=45 -person f30.c0 Иванова Светлана Владимировна female=True roles=student class=class-classroom-03 born=2000-10-08 traits= skills=Agility=38,Biology=51,Communication=37,Endurance=48,Literature=46,Mathematics=39,PhysicalEducation=44,RussianLanguage=33,Strength=45,UkrainianLanguage=38 -person f30.c1 Иванова Надежда Владимировна female=True roles=student class=class-classroom-03 born=2000-12-10 traits=Bully skills=Agility=27,Biology=46,Communication=49,Endurance=61,Literature=36,Mathematics=38,PhysicalEducation=72,RussianLanguage=39,Strength=45,UkrainianLanguage=27 -person f30.p0 Иванов Владимир Денисович female=False roles=parent class=- born=1974-06-12 traits=Lazy skills=Agility=40,BelarusianLanguage=26,Biology=37,Communication=72,Endurance=50,Librarianship=45,Physics=66,RussianLanguage=46,Strength=40 -person f30.p1 Иванова Мария Андреевна female=True roles=parent class=- born=1973-09-24 traits= skills=Administration=44,Agility=52,Communication=61,Endurance=62,RussianLanguage=46,Strength=45,UkrainianLanguage=30 -person f31.c0 Иванов Николай Вадимович female=False roles=student class=class-classroom-01 born=2003-08-29 traits= skills=Agility=41,Biology=43,Communication=32,Endurance=44,Literature=45,Mathematics=53,PhysicalEducation=47,RussianLanguage=7,Strength=45,UkrainianLanguage=21 -person f31.p0 Иванов Вадим Андреевич female=False roles=parent class=- born=1985-06-23 traits=Diligent,Quiet skills=Agility=45,BelarusianLanguage=25,Communication=54,Endurance=71,Medicine=57,PhysicalEducation=60,RussianLanguage=56,Strength=53,UkrainianLanguage=25 -person f31.p1 Иванова Александра Юриевна female=True roles=parent class=- born=1980-08-20 traits=Diligent skills=Administration=54,Agility=75,BelarusianLanguage=19,Chemistry=43,Communication=65,Cooking=53,Endurance=50,PhysicalEducation=67,RussianLanguage=36,Strength=48,UkrainianLanguage=37 -person f32.c0 Петров Артём Евгениевич female=False roles=student class=class-classroom-02 born=2002-07-14 traits=Quiet skills=Agility=31,BelarusianLanguage=34,Biology=33,Communication=5,Endurance=20,Literature=45,Mathematics=21,PhysicalEducation=64,RussianLanguage=42,Strength=80,UkrainianLanguage=25 -person f32.c1 Петрова Елена Евгениевна female=True roles=student class=class-classroom-00 born=2003-10-27 traits=Quiet skills=Agility=47,BelarusianLanguage=30,Biology=51,Communication=68,Endurance=48,Literature=46,Mathematics=37,PhysicalEducation=59,RussianLanguage=25,Strength=38,UkrainianLanguage=22 -person f32.c2 Петрова Ирина Евгениевна female=True roles=student class=class-classroom-02 born=2001-09-18 traits=HotTempered,Kind skills=Agility=54,BelarusianLanguage=29,Biology=54,Communication=28,Endurance=49,Literature=31,Mathematics=41,PhysicalEducation=67,RussianLanguage=50,Strength=52 -person f32.p0 Петров Евгений Станиславович female=False roles=parent class=- born=1963-05-02 traits= skills=Agility=45,BelarusianLanguage=23,Chemistry=61,Communication=66,Endurance=43,Mathematics=49,Pedagogy=34,RussianLanguage=58,Strength=41,UkrainianLanguage=29 -person f33.c0 Морозова Елизавета Григориевна female=True roles=student class=class-classroom-00 born=2003-11-04 traits=Diligent,Quiet skills=Agility=21,BelarusianLanguage=25,Biology=38,Communication=41,Endurance=55,Literature=54,Mathematics=53,PhysicalEducation=66,RussianLanguage=42,Strength=45 -person f33.p0 Морозов Григорий Михаилович female=False roles=parent class=- born=1968-05-01 traits= skills=Administration=71,Agility=28,BelarusianLanguage=22,Communication=68,Endurance=62,English=53,Librarianship=36,RussianLanguage=52,Strength=51,UkrainianLanguage=14 -person f33.p1 Морозова Марина Владимировна female=True roles=parent class=- born=1972-10-24 traits=HotTempered skills=Agility=65,BelarusianLanguage=23,Communication=28,Endurance=40,Pedagogy=57,RussianLanguage=56,Strength=40,UkrainianLanguage=11 -person f34.c0 Кузнецова Валентина Ивановна female=True roles=student class=class-classroom-00 born=2004-03-25 traits=Curious,Kind skills=Agility=29,BelarusianLanguage=22,Biology=48,Communication=21,Endurance=69,Literature=30,Mathematics=39,PhysicalEducation=35,RussianLanguage=28,Strength=45,UkrainianLanguage=24 -person f34.p0 Кузнецов Иван Сергеевич female=False roles=parent class=- born=1970-02-02 traits= skills=Agility=44,Communication=43,Endurance=58,English=73,Geography=37,Physics=49,RussianLanguage=77,Strength=40 -person f34.p1 Кузнецова Дарья Валериевна female=True roles=parent class=- born=1967-03-25 traits=Lazy skills=Administration=60,Agility=69,BelarusianLanguage=23,Communication=67,Cooking=44,Endurance=47,German=38,RussianLanguage=70,Strength=48,UkrainianLanguage=15 -person f4.c0 Васильев Денис Федорович female=False roles=student class=class-classroom-01 born=2003-02-01 traits=Neat skills=Agility=50,BelarusianLanguage=6,Biology=39,Communication=27,Endurance=35,Literature=59,Mathematics=36,PhysicalEducation=88,RussianLanguage=47,Strength=21,UkrainianLanguage=13 -person f4.p0 Васильев Фёдор Игоревич female=False roles=parent class=- born=1970-05-21 traits=AbsentMinded skills=Agility=66,BelarusianLanguage=31,Communication=49,Cooking=45,Endurance=44,English=36,Literature=48,Pedagogy=62,RussianLanguage=54,Strength=44 -person f4.p1 Васильева Анастасия Федоровна female=True roles=parent class=- born=1975-01-20 traits=AbsentMinded skills=Agility=45,BelarusianLanguage=22,Communication=70,Endurance=53,English=43,Librarianship=49,Medicine=75,RussianLanguage=49,Strength=73,UkrainianLanguage=13 -person f5.c0 Захарова Екатерина Борисовна female=True roles=student class=class-classroom-02 born=2002-07-13 traits=Kind skills=Agility=43,Biology=46,Communication=44,Endurance=43,Literature=38,Mathematics=52,PhysicalEducation=52,RussianLanguage=45,Strength=32 -person f5.p0 Захаров Борис Николаевич female=False roles=parent class=- born=1980-04-15 traits= skills=Agility=45,Communication=37,Endurance=51,English=44,RussianLanguage=57,Strength=29 -person f5.p1 Захарова Вероника Григориевна female=True roles=parent class=- born=1979-06-22 traits= skills=Agility=27,Communication=47,Endurance=76,English=24,RussianLanguage=63,Strength=45,UkrainianLanguage=31 -person f6.c0 Козловская Юлия Олеговна female=True roles=student class=class-classroom-00 born=2004-08-15 traits= skills=Agility=45,BelarusianLanguage=20,Biology=36,Communication=42,Endurance=61,Literature=49,Mathematics=27,PhysicalEducation=45,RussianLanguage=40,Strength=70 -person f6.c1 Козловская Светлана Олеговна female=True roles=student class=class-classroom-02 born=2001-12-31 traits=HotTempered,Leader skills=Agility=53,Biology=47,Communication=36,Endurance=40,Literature=59,Mathematics=52,PhysicalEducation=70,RussianLanguage=36,Strength=40 -person f6.c2 Козловская Вероника Олеговна female=True roles=student class=class-classroom-00 born=2003-09-29 traits= skills=Agility=17,BelarusianLanguage=17,Biology=38,Communication=36,Endurance=27,Literature=54,Mathematics=10,PhysicalEducation=51,RussianLanguage=16,Strength=29,UkrainianLanguage=40 -person f6.p0 Козловский Олег Станиславович female=False roles=parent class=- born=1967-12-18 traits=Kind skills=Agility=42,Biology=44,Communication=82,Endurance=64,Mathematics=33,RussianLanguage=29,Strength=52 -person f6.p1 Козловская Ирина Кирилловна female=True roles=parent class=- born=1963-12-28 traits= skills=Administration=90,Agility=48,BelarusianLanguage=11,Communication=29,Endurance=57,English=48,Librarianship=57,RussianLanguage=48,Strength=61 -person f7.c0 Андреев Виктор Степанович female=False roles=student class=class-classroom-01 born=2003-07-19 traits=Bully,Leader skills=Agility=20,Biology=38,Communication=31,Endurance=75,Literature=54,Mathematics=40,PhysicalEducation=60,RussianLanguage=8,Strength=45,UkrainianLanguage=7 -person f7.p0 Андреев Степан Андреевич female=False roles=parent class=- born=1973-08-21 traits= skills=Administration=51,Agility=64,BelarusianLanguage=35,Chemistry=42,Communication=76,Endurance=36,Medicine=23,Physics=30,RussianLanguage=67,Strength=46,UkrainianLanguage=27 -person f7.p1 Андреева Мария Алексеевна female=True roles=parent class=- born=1977-07-16 traits= skills=Agility=59,Communication=68,Cooking=41,Endurance=49,History=47,Mathematics=54,Medicine=44,RussianLanguage=63,Strength=35,UkrainianLanguage=40 -person f8.c0 Фролов Евгений Павелович female=False roles=student class=class-classroom-00 born=2003-12-20 traits=Bully skills=Agility=52,Biology=45,Communication=20,Endurance=78,Literature=61,Mathematics=33,PhysicalEducation=64,RussianLanguage=31,Strength=45,UkrainianLanguage=19 -person f8.c1 Фролов Станислав Павелович female=False roles=student class=class-classroom-03 born=2000-10-11 traits=Curious skills=Agility=58,BelarusianLanguage=24,Biology=57,Communication=18,Endurance=69,Literature=55,Mathematics=33,PhysicalEducation=48,RussianLanguage=42,Strength=67,UkrainianLanguage=28 -person f8.p0 Фролов Павел Егорович female=False roles=parent class=- born=1968-06-07 traits=Leader skills=Agility=71,BelarusianLanguage=22,Communication=87,Endurance=39,RussianLanguage=64,Strength=44 -person f8.p1 Фролова Виктория Степановна female=True roles=parent class=- born=1963-10-04 traits= skills=Agility=59,BelarusianLanguage=25,Communication=51,Endurance=55,Geography=48,Pedagogy=58,RussianLanguage=25,Strength=63 -person f9.c0 Кузьмина Любовь Александровна female=True roles=student class=class-classroom-01 born=2003-06-13 traits=Kind skills=Agility=45,BelarusianLanguage=23,Biology=43,Communication=31,Endurance=32,Literature=46,Mathematics=44,PhysicalEducation=62,RussianLanguage=29,Strength=39,UkrainianLanguage=5 -person f9.c1 Кузьмин Сергей Александрович female=False roles=student class=class-classroom-03 born=2001-08-20 traits=Curious,Quiet skills=Agility=11,BelarusianLanguage=18,Biology=37,Communication=41,Endurance=59,Literature=59,Mathematics=25,PhysicalEducation=67,RussianLanguage=41,Strength=38 -person f9.c2 Кузьмина Алина Александровна female=True roles=student class=class-classroom-03 born=2001-01-22 traits= skills=Agility=52,Biology=50,Communication=29,Endurance=53,Literature=38,Mathematics=52,PhysicalEducation=56,RussianLanguage=54,Strength=31 -person f9.p0 Кузьмин Александр Денисович female=False roles=parent class=- born=1981-12-09 traits= skills=Agility=40,Communication=58,Cooking=58,Endurance=78,Literature=42,Medicine=65,Physics=58,RussianLanguage=68,Strength=42 -person f9.p1 Кузьмина Анастасия Сергеевна female=True roles=parent class=- born=1977-01-01 traits=AbsentMinded skills=Agility=68,BelarusianLanguage=27,Communication=96,Endurance=46,Librarianship=43,Pedagogy=48,RussianLanguage=61,Strength=40,UkrainianLanguage=21 +person f0.c0 Андреев Сергей Валериевич female=False roles=student class=class-classroom-03 born=2000-10-23 traits=Lazy skills=Agility=33,Biology=57,Communication=47,Endurance=46,Hauling=56,Literature=22,Mathematics=12,PhysicalEducation=65,RussianLanguage=47,Strength=64,UkrainianLanguage=31 items=Underwear:Black:worn,Socks:Gray:worn,Jeans:Black:worn,TShirt:Black:worn,Shoes:Gray:worn,Sweater:Gray:worn,Scarf:Black:worn,Coat:Black:home,PeShirt:Gray:home,PeShorts:Gray:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f0.c1 Андреев Александр Валериевич female=False roles=student class=class-classroom-01 born=2002-11-09 traits=Kind,Quiet skills=Agility=13,Biology=46,Communication=20,Endurance=52,Hauling=24,Literature=35,Mathematics=49,PhysicalEducation=57,RussianLanguage=47,Strength=45 items=Underwear:Black:worn,Socks:Gray:worn,Jeans:Blue:worn,TShirt:LightBlue:worn,Shoes:Gray:worn,Sweater:Black:worn,Coat:Beige:worn,Scarf:Gray:worn,PeShirt:Gray:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f0.p0 Андреев Валерий Николаевич female=False roles=parent class=- born=1971-06-03 traits=Diligent,Quiet skills=Agility=43,Communication=58,Cooking=82,Endurance=61,Hauling=61,Pedagogy=50,RussianLanguage=89,Strength=33 items=Underwear:Black:worn,Socks:White:worn,Jeans:Black:worn,TShirt:LightBlue:worn,WinterBoots:Beige:worn,Jacket:Gray:worn,Bottle:Green:bag +person f0.p1 Андреева Марина Артемовна female=True roles=parent class=- born=1971-09-30 traits=Quiet skills=Agility=25,BelarusianLanguage=26,Communication=38,Endurance=35,Hauling=46,History=61,Mathematics=75,RussianLanguage=65,Strength=40,UkrainianLanguage=23 items=Underwear:Gray:worn,Socks:White:worn,Pants:Beige:worn,Shirt:Blue:worn,WinterBoots:Gray:worn,Sweater:Beige:worn,Jacket:Blue:home,Bottle:White:bag,Phone:Black:bag +person f1.c0 Александрова Людмила Борисовна female=True roles=student class=class-classroom-03 born=2001-01-26 traits=AbsentMinded skills=Agility=72,BelarusianLanguage=36,Biology=67,Communication=37,Endurance=39,Hauling=56,Literature=77,Mathematics=29,PhysicalEducation=54,RussianLanguage=51,Strength=45,UkrainianLanguage=28 items=Underwear:Black:worn,Socks:White:worn,Dress:Black:worn,Shoes:White:worn,Belt:Beige:worn,Jacket:Black:home,PeShirt:Blue:home,PeShorts:Blue:home,Bottle:Blue:bag,Phone:Black:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f1.c1 Александров Евгений Борисович female=False roles=student class=class-classroom-00 born=2004-04-01 traits= skills=Agility=31,BelarusianLanguage=27,Biology=50,Communication=38,Endurance=54,Hauling=58,Literature=65,Mathematics=30,PhysicalEducation=88,RussianLanguage=44,Strength=40 items=Underwear:White:worn,Socks:Black:worn,Jeans:Black:worn,TShirt:Blue:worn,WinterBoots:Black:worn,Hat:Black:worn,Coat:Gray:home,PeShirt:Blue:home,PeShorts:Blue:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f1.c2 Александров Юрий Борисович female=False roles=student class=class-classroom-00 born=2003-10-28 traits= skills=Agility=45,Biology=68,Communication=31,Endurance=30,Hauling=49,Literature=60,Mathematics=29,PhysicalEducation=49,RussianLanguage=53,Strength=74,UkrainianLanguage=23 items=Underwear:Black:worn,Socks:Gray:worn,Pants:Blue:worn,TShirt:LightBlue:worn,Shoes:Black:worn,Sweater:Blue:worn,Scarf:Black:worn,Coat:Beige:home,PeShirt:Red:home,PeShorts:Gray:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f1.p0 Александров Борис Ильич female=False roles=parent class=- born=1968-10-25 traits= skills=Agility=45,Communication=74,Endurance=34,Hauling=65,RussianLanguage=53,Strength=53,UkrainianLanguage=14 items=Underwear:Black:worn,Socks:White:worn,Trousers:Gray:worn,TShirt:Blue:worn,WinterBoots:Gray:worn,Hat:Beige:worn,Scarf:Gray:worn,FurCoat:Beige:home +person f1.p1 Александрова Елизавета Романовна female=True roles=parent class=- born=1972-01-25 traits= skills=Administration=71,Agility=45,BelarusianLanguage=26,Communication=76,Cooking=59,Endurance=35,English=58,Hauling=48,Mathematics=30,RussianLanguage=42,Strength=66 items=Underwear:Black:worn,Socks:Black:worn,Skirt:Beige:worn,Shirt:Blue:worn,WinterBoots:Beige:worn,Sweater:Beige:worn,Coat:Beige:home,Bottle:White:bag,Phone:White:bag +person f10.c0 Захаров Пётр Виталиевич female=False roles=student class=class-classroom-02 born=2001-11-08 traits=Diligent skills=Agility=31,BelarusianLanguage=26,Biology=62,Communication=54,Endurance=45,Hauling=56,Literature=25,Mathematics=81,PhysicalEducation=63,RussianLanguage=46,Strength=60 items=Underwear:Black:worn,Socks:Black:worn,Pants:Gray:worn,TShirt:Black:worn,WinterBoots:Beige:worn,Jacket:Gray:home,PeShirt:Red:home,PeShorts:Red:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f10.p0 Захаров Виталий Борисович female=False roles=parent class=- born=1976-09-07 traits=HotTempered,Leader skills=Agility=44,BelarusianLanguage=22,Communication=66,Endurance=82,English=16,Hauling=40,RussianLanguage=69,Strength=55 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Black:worn,TShirt:White:worn,WinterBoots:Black:worn,FurCoat:Gray:worn,Hat:Blue:worn,Scarf:Blue:worn,Bottle:White:bag,Phone:Black:bag +person f10.p1 Захарова Любовь Валериевна female=True roles=parent class=- born=1978-11-03 traits=AbsentMinded,Kind skills=Administration=43,Agility=45,BelarusianLanguage=21,Communication=61,Endurance=53,English=52,Hauling=52,Medicine=23,PhysicalEducation=42,Physics=59,RussianLanguage=66,Strength=28 items=Underwear:Gray:worn,Socks:Gray:worn,Trousers:Blue:worn,Shirt:White:worn,Shoes:Gray:worn,Sweater:Blue:worn,FurCoat:Gray:home,Bottle:White:bag,Phone:Gray:bag +person f11.c0 Андреева Дарья Ивановна female=True roles=student class=class-classroom-03 born=2001-05-20 traits=Leader skills=Agility=47,BelarusianLanguage=13,Biology=57,Communication=43,Endurance=44,Hauling=50,Literature=59,Mathematics=24,PhysicalEducation=61,RussianLanguage=47,Strength=45,UkrainianLanguage=24 items=Underwear:Gray:worn,Socks:White:worn,Dress:Beige:worn,Shoes:White:worn,Hat:Blue:worn,Coat:Gray:home,PeShirt:Black:home,PeShorts:Black:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f11.p0 Андреев Иван Алексеевич female=False roles=parent class=- born=1976-06-01 traits= skills=Agility=38,BelarusianLanguage=16,Communication=52,Endurance=82,Hauling=33,Medicine=48,Pedagogy=61,PhysicalEducation=54,RussianLanguage=82,Strength=67,UkrainianLanguage=22 items=Underwear:White:worn,Socks:White:worn,Jeans:Black:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,Sweater:Beige:worn,FurCoat:Beige:worn,Phone:Gray:bag +person f11.p1 Андреева София Александровна female=True roles=parent class=- born=1978-04-24 traits=Diligent,HotTempered skills=Agility=61,Communication=74,Endurance=55,English=61,Hauling=31,History=29,RussianLanguage=54,Strength=43 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Blue:worn,Shirt:Black:worn,WinterBoots:Black:worn,Coat:Gray:worn,Bottle:White:bag +person f12.c0 Кузьмин Олег Владиславович female=False roles=student class=class-classroom-01 born=2003-03-20 traits=Bully,Lazy skills=Agility=49,Biology=58,Communication=48,Endurance=57,Hauling=54,Literature=50,Mathematics=33,PhysicalEducation=39,RussianLanguage=9,Strength=44,UkrainianLanguage=31 items=Underwear:White:worn,Socks:Gray:worn,Pants:Blue:worn,TShirt:LightBlue:worn,WinterBoots:Black:worn,Hat:Black:worn,Belt:Black:worn,FurCoat:Gray:home,PeShirt:Red:home,PeShorts:Red:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f12.c1 Кузьмин Егор Владиславович female=False roles=student class=class-classroom-01 born=2003-05-31 traits=Lazy,Leader skills=Agility=45,Biology=45,Communication=30,Endurance=59,Hauling=44,Literature=39,Mathematics=30,PhysicalEducation=59,RussianLanguage=49,Strength=35,UkrainianLanguage=23 items=Underwear:Gray:worn,Socks:Gray:worn,Pants:Black:worn,TShirt:Beige:worn,Shoes:Black:worn,Sweater:Black:worn,Coat:Black:worn,Belt:Beige:worn,PeShirt:Black:home,PeShorts:Black:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f12.c2 Кузьмина Дарья Владиславовна female=True roles=student class=class-classroom-01 born=2002-10-29 traits=Curious,Leader skills=Agility=42,BelarusianLanguage=20,Biology=56,Communication=39,Endurance=58,Hauling=59,Literature=35,Mathematics=22,PhysicalEducation=81,RussianLanguage=58,Strength=34,UkrainianLanguage=28 items=Underwear:Black:worn,Socks:Gray:worn,Skirt:Blue:worn,Shirt:Black:worn,Shoes:Black:worn,Sweater:Beige:worn,Coat:Beige:worn,PeShirt:Green:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f12.p0 Кузьмин Владислав Александрович female=False roles=parent class=- born=1975-01-17 traits= skills=Administration=56,Agility=25,BelarusianLanguage=10,Communication=68,Endurance=35,English=36,Hauling=63,Informatics=56,Medicine=59,RussianLanguage=54,Strength=36 items=Underwear:Gray:worn,Socks:Gray:worn,Jeans:Blue:worn,Shirt:Blue:worn,Shoes:Gray:worn,Jacket:Blue:worn,Bottle:Blue:bag +person f12.p1 Кузьмина Ольга Кирилловна female=True roles=parent class=- born=1979-10-15 traits=AbsentMinded,Kind skills=Administration=38,Agility=39,BelarusianLanguage=25,Chemistry=48,Communication=32,Endurance=41,English=42,Geography=41,Hauling=46,RussianLanguage=32,Strength=34,UkrainianLanguage=40 items=Underwear:Gray:worn,Socks:Gray:worn,Pants:Gray:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,Sweater:Gray:worn,FurCoat:Gray:home +person f13.c0 Яковлев Константин Владиславович female=False roles=student class=class-classroom-00 born=2004-06-16 traits= skills=Agility=53,BelarusianLanguage=24,Biology=48,Communication=29,Endurance=37,Hauling=64,Literature=58,Mathematics=22,PhysicalEducation=44,RussianLanguage=31,Strength=37 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Gray:worn,Shirt:Blue:worn,WinterBoots:Gray:worn,Jacket:Blue:home,PeShirt:Gray:home,PeShorts:Red:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f13.c1 Яковлев Юрий Владиславович female=False roles=student class=class-classroom-01 born=2003-07-23 traits=Diligent,Quiet skills=Agility=36,BelarusianLanguage=22,Biology=56,Communication=43,Endurance=44,Hauling=57,Literature=56,Mathematics=26,PhysicalEducation=51,RussianLanguage=37,Strength=68,UkrainianLanguage=8 items=Underwear:Black:worn,Socks:Gray:worn,Pants:Blue:worn,Shirt:Black:worn,WinterBoots:Gray:worn,Sweater:Gray:worn,FurCoat:Black:worn,PeShirt:Gray:home,PeShorts:Blue:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f13.c2 Яковлева Алина Владиславовна female=True roles=student class=class-classroom-01 born=2003-02-01 traits=Diligent skills=Agility=58,BelarusianLanguage=20,Biology=60,Communication=45,Endurance=54,Hauling=53,Literature=66,Mathematics=34,PhysicalEducation=47,RussianLanguage=59,Strength=45 items=Underwear:White:worn,Socks:White:worn,Trousers:Black:worn,Shirt:Blue:worn,Shoes:Gray:worn,Hat:Gray:worn,Scarf:Blue:worn,Coat:Beige:home,PeShirt:Red:home,PeShorts:Red:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f13.p0 Яковлев Владислав Андреевич female=False roles=parent class=- born=1974-09-23 traits=AbsentMinded,Kind skills=Agility=25,BelarusianLanguage=28,Communication=42,Endurance=35,English=26,Hauling=52,RussianLanguage=54,Strength=38 items=Underwear:Black:worn,Socks:White:worn,Trousers:Black:worn,TShirt:White:worn,Shoes:Beige:worn,Hat:Beige:worn,Coat:Beige:home,Bottle:Green:bag,Phone:White:bag +person f14.c0 Александров Степан Денисович female=False roles=student class=class-classroom-02 born=2002-01-03 traits= skills=Agility=57,BelarusianLanguage=17,Biology=53,Communication=18,Endurance=60,Hauling=64,Literature=34,Mathematics=33,PhysicalEducation=55,RussianLanguage=32,Strength=41 items=Underwear:Gray:worn,Socks:Gray:worn,Pants:Blue:worn,TShirt:Gray:worn,Shoes:Black:worn,Sweater:Beige:worn,Jacket:Gray:worn,Hat:Blue:worn,Scarf:Blue:worn,PeShirt:Gray:home,PeShorts:Red:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f14.c1 Александрова Вероника Денисовна female=True roles=student class=class-classroom-03 born=2001-08-11 traits= skills=Agility=45,BelarusianLanguage=15,Biology=52,Communication=38,Endurance=37,Hauling=44,Literature=29,Mathematics=18,PhysicalEducation=65,RussianLanguage=46,Strength=64 items=Underwear:Black:worn,Socks:Gray:worn,Trousers:Gray:worn,TShirt:Black:worn,WinterBoots:Gray:worn,Belt:Gray:worn,FurCoat:Beige:home,PeShirt:Red:home,PeShorts:Gray:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f14.c2 Александров Константин Денисович female=False roles=student class=class-classroom-01 born=2003-08-21 traits= skills=Agility=29,BelarusianLanguage=21,Biology=66,Communication=21,Endurance=51,Hauling=42,Literature=64,Mathematics=27,PhysicalEducation=67,RussianLanguage=20,Strength=45 items=Underwear:White:worn,Socks:Gray:worn,Jeans:Gray:worn,TShirt:Gray:worn,Shoes:Gray:worn,Scarf:Blue:worn,Coat:Black:home,PeShirt:Blue:home,PeShorts:Red:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f14.p1 Александрова Виктория Викторовна female=True roles=parent class=- born=1973-07-23 traits= skills=Agility=45,Communication=72,Cooking=68,Endurance=64,Geography=58,Hauling=44,Physics=38,RussianLanguage=61,Strength=49,UkrainianLanguage=18 items=Underwear:Gray:worn,Socks:Gray:worn,Dress:Gray:worn,WinterBoots:Beige:worn,Hat:Black:worn,Coat:Black:home,Phone:Black:bag +person f15.c0 Воробьёв Игорь Сергеевич female=False roles=student class=class-classroom-03 born=2000-09-20 traits= skills=Agility=45,BelarusianLanguage=24,Biology=33,Communication=61,Endurance=58,Hauling=42,Literature=45,Mathematics=32,PhysicalEducation=40,RussianLanguage=55,Strength=38 items=Underwear:Black:worn,Socks:White:worn,Trousers:Blue:worn,TShirt:Black:worn,Shoes:Beige:worn,Sweater:Black:worn,Hat:Gray:worn,FurCoat:Black:home,PeShirt:Green:home,PeShorts:Blue:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f15.p0 Воробьёв Сергей Никитич female=False roles=parent class=- born=1974-10-22 traits=Neat,Quiet skills=Agility=45,Communication=54,Endurance=45,Hauling=36,Librarianship=67,Pedagogy=38,RussianLanguage=71,Strength=65,UkrainianLanguage=32 items=Underwear:White:worn,Socks:Black:worn,Pants:Blue:worn,TShirt:Gray:worn,Shoes:Black:worn,Sweater:Black:worn,FurCoat:Beige:home,Bottle:Blue:bag +person f15.p1 Воробьёва Вера Виталиевна female=True roles=parent class=- born=1972-09-07 traits=Leader,Neat skills=Agility=42,BelarusianLanguage=40,Communication=30,Endurance=52,Hauling=46,Pedagogy=55,RussianLanguage=46,Strength=45,UkrainianLanguage=25 items=Underwear:Black:worn,Socks:Gray:worn,Pants:Black:worn,TShirt:Black:worn,WinterBoots:Black:worn,Coat:Gray:worn,Hat:Gray:worn,Scarf:Black:worn,Bottle:Blue:bag,Phone:White:bag +person f16.c0 Фролова Елизавета Игоревна female=True roles=student class=class-classroom-02 born=2002-06-29 traits=Quiet skills=Agility=29,BelarusianLanguage=17,Biology=43,Communication=32,Endurance=19,Hauling=36,Literature=51,Mathematics=51,PhysicalEducation=68,RussianLanguage=24,Strength=45 items=Underwear:Gray:worn,Socks:Black:worn,Jeans:Blue:worn,Shirt:Blue:worn,WinterBoots:Beige:worn,Sweater:Beige:worn,FurCoat:Black:home,PeShirt:Red:home,PeShorts:Gray:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f16.p0 Фролов Игорь Виталиевич female=False roles=parent class=- born=1968-07-25 traits= skills=Administration=51,Agility=57,BelarusianLanguage=25,Communication=58,Endurance=63,Hauling=49,Medicine=53,RussianLanguage=53,Strength=46 items=Underwear:White:worn,Socks:White:worn,Pants:Gray:worn,Shirt:Gray:worn,Shoes:Gray:worn,Hat:Blue:worn,Jacket:Beige:home +person f16.p1 Фролова Татьяна Олеговна female=True roles=parent class=- born=1970-06-17 traits=Leader,Neat skills=Agility=45,BelarusianLanguage=23,Communication=59,Endurance=59,Hauling=62,Literature=51,RussianLanguage=72,Strength=44 items=Underwear:White:worn,Socks:Black:worn,Skirt:Blue:worn,Shirt:Blue:worn,Shoes:Beige:worn,Sweater:Blue:worn,Coat:Beige:home,Bottle:Blue:bag,Phone:Black:bag +person f17.c0 Иванов Андрей Александрович female=False roles=student class=class-classroom-03 born=2001-06-27 traits=Leader skills=Agility=60,Biology=53,Communication=54,Endurance=35,Hauling=41,Literature=65,Mathematics=38,PhysicalEducation=55,RussianLanguage=35,Strength=45,UkrainianLanguage=13 items=Underwear:White:worn,Socks:Gray:worn,Jeans:Gray:worn,Shirt:White:worn,WinterBoots:Gray:worn,Coat:Black:home,PeShirt:Green:home,PeShorts:Blue:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f17.c1 Иванова Ксения Александровна female=True roles=student class=class-classroom-02 born=2001-09-10 traits=Bully skills=Agility=45,Biology=64,Communication=28,Endurance=64,Hauling=48,Literature=47,Mathematics=37,PhysicalEducation=28,RussianLanguage=43,Strength=45 items=Underwear:White:worn,Socks:Black:worn,Pants:Black:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,FurCoat:Beige:worn,Hat:Black:worn,PeShirt:Blue:home,PeShorts:Green:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f17.c2 Иванова Полина Александровна female=True roles=student class=class-classroom-03 born=2001-05-21 traits=HotTempered,Kind skills=Agility=36,Biology=43,Communication=45,Endurance=45,Hauling=47,Literature=43,Mathematics=33,PhysicalEducation=58,RussianLanguage=36,Strength=45,UkrainianLanguage=15 items=Underwear:Gray:worn,Socks:Black:worn,Pants:Black:worn,TShirt:Beige:worn,WinterBoots:Gray:worn,Sweater:Gray:worn,Coat:Beige:worn,Belt:Beige:worn,PeShirt:Red:home,PeShorts:Gray:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f17.p0 Иванов Александр Владимирович female=False roles=parent class=- born=1967-12-24 traits=Diligent,HotTempered skills=Agility=47,Communication=74,Endurance=52,Hauling=55,Physics=39,RussianLanguage=27,Strength=49 items=Underwear:Black:worn,Socks:Gray:worn,Jeans:Blue:worn,TShirt:Blue:worn,WinterBoots:Black:worn,Belt:Beige:worn,FurCoat:Black:home +person f17.p1 Иванова Александра Ивановна female=True roles=parent class=- born=1967-04-25 traits= skills=Agility=40,Communication=69,Endurance=63,Hauling=35,RussianLanguage=56,Strength=68,UkrainianLanguage=19 items=Underwear:White:worn,Socks:White:worn,Pants:Beige:worn,Shirt:Blue:worn,Shoes:Beige:worn,FurCoat:Gray:home,Phone:White:bag +person f18.c0 Лебедев Александр Валериевич female=False roles=student class=class-classroom-00 born=2004-02-16 traits=Curious skills=Agility=26,Biology=50,Communication=9,Endurance=53,Hauling=33,Literature=55,Mathematics=20,PhysicalEducation=56,RussianLanguage=23,Strength=35 items=Underwear:Black:worn,Socks:Black:worn,Pants:Black:worn,Shirt:White:worn,WinterBoots:Beige:worn,Sweater:Beige:worn,Jacket:Blue:worn,Belt:Gray:worn,PeShirt:Blue:home,PeShorts:Green:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f18.p0 Лебедев Валерий Романович female=False roles=parent class=- born=1985-03-29 traits=Neat,Quiet skills=Agility=25,Chemistry=56,Communication=59,Endurance=35,English=49,Geography=50,Hauling=35,Pedagogy=51,RussianLanguage=67,Strength=62 items=Underwear:Gray:worn,Socks:Black:worn,Pants:Black:worn,Shirt:Gray:worn,Shoes:Beige:worn,FurCoat:Gray:worn,Belt:Beige:worn,Bottle:Green:bag +person f18.p1 Лебедева Юлия Михаиловна female=True roles=parent class=- born=1981-01-26 traits= skills=Administration=54,Agility=59,BelarusianLanguage=36,Biology=68,Communication=52,Endurance=44,Hauling=67,Mathematics=47,Medicine=37,RussianLanguage=48,Strength=45,UkrainianLanguage=22 items=Underwear:Gray:worn,Socks:White:worn,Dress:Black:worn,Shoes:Gray:worn,Sweater:Gray:worn,Hat:Black:worn,Belt:Black:worn,Jacket:Gray:home,Phone:Black:bag +person f19.c0 Воробьёв Григорий Михаилович female=False roles=student class=class-classroom-00 born=2004-08-29 traits=Quiet skills=Agility=62,BelarusianLanguage=31,Biology=42,Communication=36,Endurance=50,Hauling=39,Literature=34,Mathematics=37,PhysicalEducation=50,RussianLanguage=33,Strength=45,UkrainianLanguage=23 items=Underwear:Black:worn,Socks:White:worn,Pants:Blue:worn,Shirt:Blue:worn,Shoes:Gray:worn,Sweater:Black:worn,Coat:Gray:worn,PeShirt:Blue:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f19.p0 Воробьёв Михаил Егорович female=False roles=parent class=- born=1978-11-03 traits=Lazy skills=Administration=53,Agility=40,Communication=56,Endurance=46,Hauling=41,Librarianship=66,Mathematics=36,RussianLanguage=45,Strength=55 items=Underwear:Black:worn,Socks:Black:worn,Pants:Black:worn,Shirt:Black:worn,Shoes:Beige:worn,Hat:Black:worn,Jacket:Green:home,Bottle:Blue:bag +person f19.p1 Воробьёва Вера Алексеевна female=True roles=parent class=- born=1982-08-29 traits=AbsentMinded,Lazy skills=Administration=50,Agility=58,BelarusianLanguage=20,Communication=46,Endurance=30,Hauling=50,PhysicalEducation=66,RussianLanguage=49,Strength=40,UkrainianLanguage=25 items=Underwear:Gray:worn,Socks:Gray:worn,Dress:Black:worn,WinterBoots:Black:worn,Jacket:Red:home +person f2.c0 Алексеев Григорий Константинович female=False roles=student class=class-classroom-02 born=2002-07-24 traits=Neat skills=Agility=40,BelarusianLanguage=36,Biology=64,Communication=34,Endurance=57,Hauling=38,Literature=58,Mathematics=41,PhysicalEducation=47,RussianLanguage=28,Strength=45,UkrainianLanguage=23 items=Underwear:White:worn,Socks:Gray:worn,Jeans:Blue:worn,TShirt:Black:worn,Shoes:Black:worn,FurCoat:Gray:home,PeShirt:Red:home,PeShorts:Red:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f2.p0 Алексеев Константин Романович female=False roles=parent class=- born=1974-12-11 traits=Neat skills=Agility=36,BelarusianLanguage=23,Communication=60,Endurance=49,English=34,Hauling=47,Mathematics=63,Medicine=81,Pedagogy=74,RussianLanguage=56,Strength=59,UkrainianLanguage=22 items=Underwear:Gray:worn,Socks:White:worn,Pants:Beige:worn,Shirt:Black:worn,WinterBoots:Beige:worn,Sweater:Black:worn,Hat:Black:worn,FurCoat:Gray:home +person f2.p1 Алексеева Ольга Романовна female=True roles=parent class=- born=1970-07-22 traits=Neat skills=Agility=50,Communication=58,Cooking=51,Endurance=43,English=55,Hauling=54,Literature=35,Medicine=76,PhysicalEducation=32,RussianLanguage=38,Strength=42 items=Underwear:Black:worn,Socks:White:worn,Skirt:Gray:worn,TShirt:Blue:worn,Shoes:Beige:worn,Sweater:Gray:worn,Coat:Beige:home,Bottle:White:bag +person f20.c0 Павлова Елена Игоревна female=True roles=student class=class-classroom-01 born=2002-11-09 traits= skills=Agility=55,Biology=47,Communication=19,Endurance=51,Hauling=38,Literature=41,Mathematics=34,PhysicalEducation=49,RussianLanguage=44,Strength=42,UkrainianLanguage=20 items=Underwear:White:worn,Socks:Gray:worn,Pants:Black:worn,TShirt:Blue:worn,WinterBoots:Beige:worn,Hat:Beige:worn,Belt:Gray:worn,Coat:Gray:home,PeShirt:Red:home,PeShorts:Gray:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f20.c1 Павлова Валентина Игоревна female=True roles=student class=class-classroom-03 born=2001-01-24 traits=Kind skills=Agility=68,BelarusianLanguage=12,Biology=41,Communication=31,Endurance=58,Hauling=46,Literature=42,Mathematics=19,PhysicalEducation=50,RussianLanguage=45,Strength=42,UkrainianLanguage=9 items=Underwear:White:worn,Socks:Black:worn,Trousers:Gray:worn,TShirt:Blue:worn,Shoes:Black:worn,Sweater:Blue:worn,FurCoat:Beige:home,PeShirt:Green:home,PeShorts:Blue:home,Bottle:Green:bag,Phone:Black:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f20.p0 Павлов Игорь Никитич female=False roles=parent class=- born=1968-08-01 traits=HotTempered,Leader skills=Administration=61,Agility=72,Communication=57,Endurance=43,Geography=61,German=73,Hauling=44,Pedagogy=56,RussianLanguage=66,Strength=42,UkrainianLanguage=28 items=Underwear:Black:worn,Socks:White:worn,Trousers:Black:worn,TShirt:Blue:worn,WinterBoots:Gray:worn,FurCoat:Black:home,Bottle:White:bag +person f20.p1 Павлова Людмила Дмитриевна female=True roles=parent class=- born=1970-01-17 traits=Curious,Quiet skills=Agility=46,BelarusianLanguage=26,Communication=71,Endurance=39,English=31,Hauling=36,Physics=48,RussianLanguage=53,Strength=56 items=Underwear:White:worn,Socks:Gray:worn,Dress:Beige:worn,WinterBoots:Beige:worn,Hat:Black:worn,Belt:Beige:worn,Coat:Gray:home,Bottle:White:bag +person f21.c0 Ильин Андрей Константинович female=False roles=student class=class-classroom-02 born=2002-05-12 traits= skills=Agility=54,BelarusianLanguage=15,Biology=72,Communication=22,Endurance=54,Hauling=58,Literature=58,Mathematics=45,PhysicalEducation=52,RussianLanguage=38,Strength=45,UkrainianLanguage=25 items=Underwear:Black:worn,Socks:Black:worn,Jeans:Black:worn,TShirt:White:worn,WinterBoots:Black:worn,Sweater:Black:worn,Jacket:Black:worn,PeShirt:Gray:home,PeShorts:Blue:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f21.p0 Ильин Константин Никитич female=False roles=parent class=- born=1971-01-21 traits=Diligent,Quiet skills=Agility=45,Biology=50,Communication=53,Endurance=40,English=46,Hauling=45,History=42,Librarianship=57,RussianLanguage=68,Strength=40,UkrainianLanguage=9 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Black:worn,Shirt:Black:worn,Shoes:White:worn,Scarf:Black:worn,FurCoat:Beige:home,Bottle:Blue:bag +person f21.p1 Ильина Яна Борисовна female=True roles=parent class=- born=1975-04-20 traits=Lazy skills=Agility=74,BelarusianLanguage=26,Biology=41,Communication=54,Endurance=55,English=77,Hauling=35,Librarianship=44,Medicine=57,RussianLanguage=35,Strength=50,UkrainianLanguage=23 items=Underwear:Black:worn,Socks:White:worn,Jeans:Gray:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,Coat:Gray:worn,Bottle:Blue:bag +person f22.c0 Захаров Никита Виталиевич female=False roles=student class=class-classroom-03 born=2000-09-14 traits= skills=Agility=62,BelarusianLanguage=19,Biology=50,Communication=42,Endurance=39,Hauling=47,Literature=68,Mathematics=65,PhysicalEducation=60,RussianLanguage=59,Strength=45,UkrainianLanguage=31 items=Underwear:Gray:worn,Socks:White:worn,Jeans:Gray:worn,TShirt:Beige:worn,Shoes:Beige:worn,FurCoat:Gray:home,PeShirt:Black:home,PeShorts:Blue:home,Bottle:White:bag,Phone:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f22.c1 Захаров Денис Виталиевич female=False roles=student class=class-classroom-02 born=2001-09-11 traits=Kind,Leader skills=Agility=51,Biology=42,Communication=55,Endurance=51,Hauling=69,Literature=53,Mathematics=60,PhysicalEducation=80,RussianLanguage=50,Strength=53,UkrainianLanguage=16 items=Underwear:White:worn,Socks:White:worn,Trousers:Blue:worn,TShirt:Blue:worn,Shoes:White:worn,Hat:Blue:worn,Coat:Beige:home,PeShirt:Red:home,PeShorts:Red:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f22.p0 Захаров Виталий Андреевич female=False roles=parent class=- born=1966-04-08 traits= skills=Agility=29,Communication=62,Endurance=82,Hauling=33,RussianLanguage=65,Strength=58,UkrainianLanguage=18 items=Underwear:Black:worn,Socks:Black:worn,Pants:Beige:worn,TShirt:LightBlue:worn,Shoes:Black:worn,Coat:Black:worn,Hat:Gray:worn,Bottle:White:bag,Phone:Black:bag +person f22.p1 Захарова Елизавета Егоровна female=True roles=parent class=- born=1967-09-05 traits= skills=Administration=37,Agility=42,BelarusianLanguage=28,Communication=82,Cooking=65,Endurance=60,English=52,Hauling=37,Mathematics=67,RussianLanguage=54,Strength=51 items=Underwear:Gray:worn,Socks:White:worn,Dress:Gray:worn,WinterBoots:Gray:worn,FurCoat:Gray:home,Bottle:Green:bag +person f23.c0 Орловская Нина Константиновна female=True roles=student class=class-classroom-02 born=2001-11-01 traits=AbsentMinded,Quiet skills=Agility=44,BelarusianLanguage=13,Biology=42,Communication=9,Endurance=51,Hauling=45,Literature=53,Mathematics=34,PhysicalEducation=70,RussianLanguage=46,Strength=38 items=Underwear:White:worn,Socks:White:worn,Trousers:Blue:worn,TShirt:Blue:worn,Shoes:Beige:worn,Sweater:Blue:worn,Coat:Beige:worn,Hat:Gray:worn,PeShirt:Blue:home,PeShorts:Red:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f23.c1 Орловская Полина Константиновна female=True roles=student class=class-classroom-01 born=2003-03-30 traits=Curious,Quiet skills=Agility=39,BelarusianLanguage=20,Biology=70,Communication=19,Endurance=53,Hauling=54,Literature=73,Mathematics=46,PhysicalEducation=55,RussianLanguage=47,Strength=67 items=Underwear:White:worn,Socks:Black:worn,Dress:Blue:worn,Shoes:Black:worn,Sweater:Beige:worn,Jacket:Red:home,PeShirt:Black:home,PeShorts:Gray:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f23.p0 Орловский Константин Михаилович female=False roles=parent class=- born=1965-04-02 traits=Diligent,HotTempered skills=Agility=45,BelarusianLanguage=23,Communication=55,Endurance=50,Hauling=50,History=40,Librarianship=56,Physics=61,RussianLanguage=52,Strength=32,UkrainianLanguage=17 items=Underwear:Gray:worn,Socks:White:worn,Jeans:Gray:worn,Shirt:Blue:worn,WinterBoots:Beige:worn,FurCoat:Black:worn,Hat:Beige:worn +person f23.p1 Орловская Яна Степановна female=True roles=parent class=- born=1965-10-22 traits=Lazy skills=Agility=56,BelarusianLanguage=28,Communication=44,Endurance=40,Hauling=81,Pedagogy=45,RussianLanguage=62,Strength=56,UkrainianLanguage=26 items=Underwear:Gray:worn,Socks:Gray:worn,Pants:Gray:worn,TShirt:Blue:worn,Shoes:White:worn,Hat:Blue:worn,Coat:Black:home +person f24.c0 Орлов Фёдор Алексеевич female=False roles=student class=class-classroom-03 born=2000-12-05 traits=Neat skills=Agility=40,BelarusianLanguage=8,Biology=54,Communication=6,Endurance=40,Hauling=45,Literature=41,Mathematics=10,PhysicalEducation=46,RussianLanguage=52,Strength=63 items=Underwear:Black:worn,Socks:Black:worn,Jeans:Gray:worn,Shirt:Black:worn,Shoes:Gray:worn,Sweater:Black:worn,Jacket:Blue:worn,PeShirt:Blue:home,PeShorts:Blue:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f24.c1 Орлова Оксана Алексеевна female=True roles=student class=class-classroom-00 born=2004-03-01 traits=Kind,Lazy skills=Agility=75,Biology=30,Communication=23,Endurance=54,Hauling=35,Literature=62,Mathematics=43,PhysicalEducation=50,RussianLanguage=26,Strength=41,UkrainianLanguage=31 items=Underwear:Black:worn,Socks:White:worn,Pants:Beige:worn,TShirt:White:worn,WinterBoots:Black:worn,Scarf:Beige:worn,Jacket:Red:home,PeShirt:Black:home,PeShorts:Red:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f24.p0 Орлов Алексей Денисович female=False roles=parent class=- born=1977-04-17 traits= skills=Agility=45,BelarusianLanguage=17,Communication=51,Endurance=18,English=61,Hauling=46,Literature=56,Mathematics=60,RussianLanguage=55,Strength=62,UkrainianLanguage=16 items=Underwear:Black:worn,Socks:Black:worn,Trousers:Gray:worn,Shirt:Gray:worn,WinterBoots:Black:worn,Sweater:Black:worn,Hat:Gray:worn,Jacket:Black:home +person f24.p1 Орлова Надежда Владиславовна female=True roles=parent class=- born=1977-12-04 traits=Kind skills=Agility=25,BelarusianLanguage=25,Communication=52,Endurance=22,English=70,Hauling=52,Librarianship=51,Medicine=10,RussianLanguage=50,Strength=52,UkrainianLanguage=19 items=Underwear:Black:worn,Socks:Gray:worn,Trousers:Blue:worn,TShirt:LightBlue:worn,WinterBoots:Gray:worn,Sweater:Black:worn,FurCoat:Black:worn,Belt:Black:worn,Bottle:Blue:bag,Phone:Black:bag +person f25.c0 Петрова Александра Игоревна female=True roles=student class=class-classroom-02 born=2001-12-19 traits= skills=Agility=57,BelarusianLanguage=29,Biology=64,Communication=32,Endurance=40,Hauling=58,Literature=47,Mathematics=40,PhysicalEducation=79,RussianLanguage=64,Strength=65,UkrainianLanguage=7 items=Underwear:White:worn,Socks:White:worn,Trousers:Black:worn,TShirt:Blue:worn,WinterBoots:Black:worn,Sweater:Gray:worn,Coat:Beige:worn,Hat:Beige:worn,Scarf:Beige:worn,PeShirt:Red:home,PeShorts:Blue:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f25.p1 Петрова Полина Юриевна female=True roles=parent class=- born=1965-12-11 traits=Kind,Neat skills=Agility=53,Communication=50,Endurance=59,English=70,Geography=41,Hauling=56,Medicine=42,RussianLanguage=72,Strength=45 items=Underwear:Gray:worn,Socks:White:worn,Pants:Beige:worn,TShirt:LightBlue:worn,WinterBoots:Beige:worn,Coat:Beige:worn,Hat:Black:worn,Bottle:White:bag +person f26.c0 Яковлев Павел Михаилович female=False roles=student class=class-classroom-01 born=2002-12-29 traits=Kind,Neat skills=Agility=45,BelarusianLanguage=30,Biology=59,Communication=8,Endurance=59,Hauling=53,Literature=60,Mathematics=47,PhysicalEducation=43,RussianLanguage=43,Strength=45,UkrainianLanguage=23 items=Underwear:White:worn,Socks:White:worn,Pants:Beige:worn,TShirt:LightBlue:worn,Shoes:Black:worn,Sweater:Blue:worn,Coat:Beige:worn,PeShirt:Gray:home,PeShorts:Red:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f26.c1 Яковлев Вадим Михаилович female=False roles=student class=class-classroom-00 born=2004-06-28 traits= skills=Agility=40,BelarusianLanguage=24,Biology=36,Communication=14,Endurance=66,Hauling=41,Literature=71,Mathematics=26,PhysicalEducation=55,RussianLanguage=25,Strength=40,UkrainianLanguage=18 items=Underwear:Black:worn,Socks:Black:worn,Jeans:Blue:worn,TShirt:Black:worn,Shoes:Black:worn,FurCoat:Black:home,PeShirt:Blue:home,PeShorts:Red:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f26.p0 Яковлев Михаил Степанович female=False roles=parent class=- born=1975-12-27 traits=HotTempered,Neat skills=Agility=44,Communication=59,Endurance=66,Hauling=52,Mathematics=44,Medicine=71,PhysicalEducation=53,RussianLanguage=55,Strength=45,UkrainianLanguage=28 items=Underwear:Black:worn,Socks:Black:worn,Jeans:Blue:worn,TShirt:Black:worn,Shoes:Gray:worn,Scarf:Blue:worn,Jacket:Blue:home,Phone:Gray:bag +person f26.p1 Яковлева Марина Кирилловна female=True roles=parent class=- born=1976-12-10 traits=Diligent,Neat skills=Agility=36,BelarusianLanguage=22,Communication=53,Endurance=66,English=40,Hauling=47,History=43,Medicine=66,PhysicalEducation=45,RussianLanguage=65,Strength=43 items=Underwear:White:worn,Socks:White:worn,Jeans:Black:worn,TShirt:Gray:worn,WinterBoots:Black:worn,FurCoat:Gray:worn,Bottle:Blue:bag,Phone:Gray:bag +person f27.c0 Иванов Виктор Константинович female=False roles=student class=class-classroom-01 born=2002-12-27 traits=Bully skills=Agility=29,BelarusianLanguage=19,Biology=56,Communication=26,Endurance=46,Hauling=65,Literature=45,Mathematics=53,PhysicalEducation=58,RussianLanguage=27,Strength=45,UkrainianLanguage=22 items=Underwear:Black:worn,Socks:Gray:worn,Pants:Gray:worn,TShirt:Gray:worn,Shoes:Beige:worn,FurCoat:Black:worn,PeShirt:Gray:home,PeShorts:Red:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f27.c1 Иванов Владислав Константинович female=False roles=student class=class-classroom-00 born=2004-07-04 traits=Diligent,Neat skills=Agility=38,BelarusianLanguage=23,Biology=27,Communication=31,Endurance=53,Hauling=65,Literature=62,Mathematics=33,PhysicalEducation=64,RussianLanguage=49,Strength=53 items=Underwear:White:worn,Socks:White:worn,Trousers:Black:worn,Shirt:Gray:worn,WinterBoots:Black:worn,Sweater:Blue:worn,Jacket:Gray:worn,Hat:Gray:worn,Scarf:Blue:worn,PeShirt:Blue:home,PeShorts:Green:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f27.c2 Иванов Александр Константинович female=False roles=student class=class-classroom-00 born=2004-05-25 traits= skills=Agility=58,Biology=51,Communication=37,Endurance=60,Hauling=37,Literature=65,Mathematics=35,PhysicalEducation=33,RussianLanguage=42,Strength=45,UkrainianLanguage=38 items=Underwear:Black:worn,Socks:Black:worn,Pants:Black:worn,TShirt:White:worn,WinterBoots:Beige:worn,Sweater:Black:worn,Hat:Beige:worn,Scarf:Blue:worn,FurCoat:Gray:home,PeShirt:Blue:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f27.p0 Иванов Константин Иванович female=False roles=parent class=- born=1974-08-25 traits=Neat skills=Agility=44,BelarusianLanguage=27,Communication=77,Endurance=42,English=53,Hauling=62,Medicine=52,Pedagogy=40,RussianLanguage=32,Strength=28 items=Underwear:Black:worn,Socks:Black:worn,Trousers:Blue:worn,Shirt:Blue:worn,Shoes:Gray:worn,Sweater:Blue:worn,Scarf:Beige:worn,Jacket:Green:home,Bottle:White:bag,Phone:White:bag +person f27.p1 Иванова Марина Константиновна female=True roles=parent class=- born=1969-11-29 traits=Curious skills=Agility=43,BelarusianLanguage=16,Communication=71,Endurance=63,English=50,Hauling=59,RussianLanguage=56,Strength=35,UkrainianLanguage=21 items=Underwear:Black:worn,Socks:Gray:worn,Skirt:Beige:worn,TShirt:Black:worn,WinterBoots:Beige:worn,Sweater:Black:worn,FurCoat:Beige:worn,Bottle:Green:bag,Phone:Black:bag +person f28.c0 Иванов Пётр Петрович female=False roles=student class=class-classroom-02 born=2002-08-02 traits= skills=Agility=43,BelarusianLanguage=34,Biology=36,Communication=42,Endurance=50,Hauling=36,Literature=33,Mathematics=4,PhysicalEducation=78,RussianLanguage=46,Strength=44 items=Underwear:Gray:worn,Socks:White:worn,Pants:Beige:worn,Shirt:Gray:worn,WinterBoots:Black:worn,Sweater:Blue:worn,Jacket:Red:home,PeShirt:Green:home,PeShorts:Green:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f28.c1 Иванова Наталья Петровна female=True roles=student class=class-classroom-03 born=2000-12-07 traits=Quiet skills=Agility=58,BelarusianLanguage=30,Biology=46,Communication=52,Endurance=36,Hauling=58,Literature=38,Mathematics=73,PhysicalEducation=77,RussianLanguage=51,Strength=45,UkrainianLanguage=23 items=Underwear:White:worn,Socks:Gray:worn,Pants:Beige:worn,TShirt:Gray:worn,Shoes:Beige:worn,Hat:Black:worn,Coat:Beige:home,PeShirt:Green:home,PeShorts:Gray:home,Phone:Black:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f28.c2 Иванов Максим Петрович female=False roles=student class=class-classroom-00 born=2004-04-05 traits=Lazy skills=Agility=67,BelarusianLanguage=23,Biology=32,Communication=26,Endurance=54,Hauling=51,Literature=57,Mathematics=10,PhysicalEducation=57,RussianLanguage=47,Strength=75,UkrainianLanguage=35 items=Underwear:Black:worn,Socks:Gray:worn,Pants:Beige:worn,TShirt:Black:worn,Shoes:Gray:worn,Sweater:Gray:worn,Scarf:Black:worn,Coat:Black:home,PeShirt:Black:home,PeShorts:Red:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f28.p0 Иванов Пётр Олегович female=False roles=parent class=- born=1965-06-23 traits=AbsentMinded,Kind skills=Agility=75,BelarusianLanguage=24,Biology=51,Communication=60,Cooking=51,Endurance=74,English=57,Geography=66,Hauling=48,RussianLanguage=45,Strength=40,UkrainianLanguage=36 items=Underwear:Black:worn,Socks:Gray:worn,Trousers:Black:worn,Shirt:White:worn,Shoes:White:worn,Sweater:Black:worn,Coat:Gray:worn,Hat:Black:worn,Scarf:Black:worn +person f28.p1 Иванова Полина Алексеевна female=True roles=parent class=- born=1965-11-18 traits=AbsentMinded,Leader skills=Agility=43,Communication=61,Cooking=49,Endurance=43,Hauling=60,RussianLanguage=46,Strength=45 items=Underwear:White:worn,Socks:White:worn,Dress:Beige:worn,WinterBoots:Gray:worn,Hat:Beige:worn,Belt:Black:worn,FurCoat:Gray:home,Bottle:Green:bag,Phone:Black:bag +person f29.c0 Макарова Ксения Александровна female=True roles=student class=class-classroom-01 born=2002-11-08 traits=AbsentMinded,HotTempered skills=Agility=52,Biology=73,Communication=35,Endurance=53,Hauling=68,Literature=64,Mathematics=28,PhysicalEducation=67,RussianLanguage=18,Strength=45 items=Underwear:Gray:worn,Socks:White:worn,Pants:Blue:worn,TShirt:Gray:worn,WinterBoots:Black:worn,Jacket:Black:worn,Hat:Blue:worn,Belt:Beige:worn,PeShirt:Gray:home,PeShorts:Blue:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f29.p0 Макаров Александр Николаевич female=False roles=parent class=- born=1981-11-08 traits=AbsentMinded skills=Agility=50,BelarusianLanguage=34,Communication=44,Endurance=55,Hauling=42,Informatics=34,PhysicalEducation=74,RussianLanguage=54,Strength=64,UkrainianLanguage=10 items=Underwear:Black:worn,Socks:White:worn,Jeans:Blue:worn,Shirt:Blue:worn,WinterBoots:Black:worn,Sweater:Gray:worn,Coat:Black:worn,Hat:Gray:worn,Scarf:Black:worn,Bottle:Blue:bag,Phone:Black:bag +person f29.p1 Макарова Мария Владиславовна female=True roles=parent class=- born=1977-10-31 traits=Curious,Diligent skills=Administration=44,Agility=44,BelarusianLanguage=8,Communication=56,Endurance=62,English=40,Hauling=44,Medicine=15,RussianLanguage=41,Strength=52 items=Underwear:White:worn,Socks:Black:worn,Trousers:Black:worn,Shirt:Blue:worn,Shoes:Beige:worn,Sweater:Black:worn,Hat:Blue:worn,Coat:Black:home,Bottle:White:bag,Phone:White:bag +person f3.c0 Макарова Вероника Петровна female=True roles=student class=class-classroom-02 born=2002-05-15 traits= skills=Agility=68,BelarusianLanguage=24,Biology=34,Communication=45,Endurance=50,Hauling=48,Literature=37,Mathematics=41,PhysicalEducation=50,RussianLanguage=28,Strength=45,UkrainianLanguage=23 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Blue:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,Jacket:Black:home,PeShirt:Gray:home,PeShorts:Blue:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f3.c1 Макаров Роман Петрович female=False roles=student class=class-classroom-02 born=2002-04-16 traits=Lazy skills=Agility=50,BelarusianLanguage=22,Biology=59,Communication=22,Endurance=46,Hauling=51,Literature=39,Mathematics=17,PhysicalEducation=37,RussianLanguage=31,Strength=45,UkrainianLanguage=23 items=Underwear:Gray:worn,Socks:Black:worn,Jeans:Blue:worn,Shirt:White:worn,WinterBoots:Black:worn,Hat:Beige:worn,Coat:Black:home,PeShirt:Black:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f3.p0 Макаров Пётр Егорович female=False roles=parent class=- born=1977-02-28 traits=Diligent,Neat skills=Agility=67,Communication=28,Endurance=53,English=57,Hauling=43,History=43,Pedagogy=54,RussianLanguage=43,Strength=40 items=Underwear:Black:worn,Socks:White:worn,Pants:Gray:worn,Shirt:Blue:worn,WinterBoots:Black:worn,Sweater:Beige:worn,Hat:Beige:worn,Coat:Black:home +person f3.p1 Макарова Алина Антоновна female=True roles=parent class=- born=1978-04-05 traits=Kind,Neat skills=Agility=45,BelarusianLanguage=20,Biology=41,Communication=45,Cooking=68,Endurance=51,English=54,Hauling=52,History=69,Medicine=78,RussianLanguage=63,Strength=44 items=Underwear:Black:worn,Socks:Black:worn,Jeans:Black:worn,TShirt:Gray:worn,WinterBoots:Gray:worn,Sweater:Gray:worn,Hat:Beige:worn,FurCoat:Beige:home,Phone:Black:bag +person f30.c0 Иванова Светлана Владимировна female=True roles=student class=class-classroom-03 born=2000-10-08 traits=Leader skills=Agility=43,Biology=53,Communication=26,Endurance=44,Hauling=49,Literature=68,Mathematics=39,PhysicalEducation=73,RussianLanguage=51,Strength=36,UkrainianLanguage=21 items=Underwear:White:worn,Socks:Black:worn,Pants:Blue:worn,Shirt:Gray:worn,Shoes:Gray:worn,Coat:Black:worn,Hat:Blue:worn,Scarf:Gray:worn,PeShirt:Gray:home,PeShorts:Black:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f30.c1 Иванова Надежда Владимировна female=True roles=student class=class-classroom-03 born=2000-12-10 traits=AbsentMinded,Lazy skills=Agility=43,BelarusianLanguage=19,Biology=57,Communication=38,Endurance=66,Hauling=46,Literature=70,Mathematics=17,PhysicalEducation=48,RussianLanguage=41,Strength=40,UkrainianLanguage=10 items=Underwear:White:worn,Socks:Black:worn,Pants:Black:worn,Shirt:White:worn,Shoes:Black:worn,Scarf:Beige:worn,Jacket:Blue:home,PeShirt:Blue:home,PeShorts:Red:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f30.p0 Иванов Владимир Денисович female=False roles=parent class=- born=1974-06-12 traits=Lazy skills=Agility=40,Biology=17,Communication=72,Cooking=61,Endurance=50,Hauling=32,RussianLanguage=58,Strength=40,UkrainianLanguage=26 items=Underwear:Black:worn,Socks:Black:worn,Trousers:Black:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,Coat:Beige:home,Bottle:Blue:bag +person f30.p1 Иванова Мария Андреевна female=True roles=parent class=- born=1973-09-24 traits=Diligent skills=Agility=52,BelarusianLanguage=40,Communication=61,Endurance=62,Hauling=65,Medicine=47,RussianLanguage=43,Strength=39 items=Underwear:White:worn,Socks:Gray:worn,Skirt:Black:worn,Shirt:Blue:worn,Shoes:Gray:worn,Hat:Beige:worn,Jacket:Blue:home,Phone:Gray:bag +person f31.c0 Иванов Николай Вадимович female=False roles=student class=class-classroom-01 born=2003-08-29 traits= skills=Agility=20,BelarusianLanguage=24,Biology=40,Communication=27,Endurance=43,Hauling=46,Literature=36,Mathematics=40,PhysicalEducation=53,RussianLanguage=32,Strength=73,UkrainianLanguage=20 items=Underwear:Gray:worn,Socks:White:worn,Jeans:Black:worn,TShirt:Beige:worn,WinterBoots:Beige:worn,FurCoat:Black:home,PeShirt:Blue:home,PeShorts:Black:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f31.p0 Иванов Вадим Андреевич female=False roles=parent class=- born=1985-06-23 traits=Diligent,Quiet skills=Administration=28,Agility=45,BelarusianLanguage=32,Communication=54,Endurance=71,English=55,German=47,Hauling=53,PhysicalEducation=44,RussianLanguage=70,Strength=44,UkrainianLanguage=17 items=Underwear:White:worn,Socks:White:worn,Jeans:Black:worn,Shirt:Black:worn,Shoes:Black:worn,Hat:Blue:worn,Coat:Gray:home,Bottle:Blue:bag,Phone:Gray:bag +person f31.p1 Иванова Александра Юриевна female=True roles=parent class=- born=1980-08-20 traits=Diligent,HotTempered skills=Agility=70,BelarusianLanguage=29,Communication=50,Endurance=41,English=50,Hauling=51,Librarianship=35,PhysicalEducation=73,Physics=54,RussianLanguage=59,Strength=62,UkrainianLanguage=23 items=Underwear:Black:worn,Socks:Black:worn,Pants:Black:worn,TShirt:Gray:worn,Shoes:Black:worn,Jacket:Black:worn,Hat:Black:worn,Scarf:Blue:worn,Phone:Gray:bag +person f32.c0 Петров Артём Евгениевич female=False roles=student class=class-classroom-02 born=2002-07-14 traits=Neat skills=Agility=78,Biology=58,Communication=47,Endurance=32,Hauling=19,Literature=31,Mathematics=29,PhysicalEducation=60,RussianLanguage=65,Strength=18,UkrainianLanguage=18 items=Underwear:Black:worn,Socks:Black:worn,Trousers:Blue:worn,Shirt:Gray:worn,Shoes:Beige:worn,Sweater:Black:worn,FurCoat:Black:worn,PeShirt:Gray:home,PeShorts:Gray:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f32.c1 Петрова Елена Евгениевна female=True roles=student class=class-classroom-00 born=2003-10-27 traits=AbsentMinded,HotTempered skills=Agility=37,Biology=54,Communication=39,Endurance=60,Hauling=53,Literature=58,Mathematics=33,PhysicalEducation=75,RussianLanguage=34,Strength=42,UkrainianLanguage=30 items=Underwear:Gray:worn,Socks:Black:worn,Pants:Blue:worn,TShirt:White:worn,Shoes:Gray:worn,Coat:Black:worn,Hat:Gray:worn,Belt:Gray:worn,PeShirt:Blue:home,PeShorts:Green:home,Bottle:Green:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f32.c2 Петрова Ирина Евгениевна female=True roles=student class=class-classroom-02 born=2001-09-18 traits=Kind,Quiet skills=Agility=41,BelarusianLanguage=32,Biology=80,Communication=32,Endurance=42,Hauling=67,Literature=51,Mathematics=26,PhysicalEducation=33,RussianLanguage=32,Strength=45 items=Underwear:White:worn,Socks:White:worn,Dress:Beige:worn,WinterBoots:Black:worn,Sweater:Black:worn,Jacket:Beige:worn,Belt:Gray:worn,PeShirt:Black:home,PeShorts:Blue:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f32.p0 Петров Евгений Станиславович female=False roles=parent class=- born=1963-05-02 traits= skills=Agility=45,Communication=66,Endurance=43,English=53,Hauling=42,PhysicalEducation=51,RussianLanguage=62,Strength=52,UkrainianLanguage=26 items=Underwear:Black:worn,Socks:White:worn,Jeans:Black:worn,Shirt:Black:worn,Shoes:White:worn,Sweater:Black:worn,Belt:Beige:worn,Coat:Beige:home,Bottle:Blue:bag +person f33.c0 Морозова Елизавета Григориевна female=True roles=student class=class-classroom-00 born=2003-11-04 traits=AbsentMinded,Lazy skills=Agility=59,BelarusianLanguage=25,Biology=55,Communication=45,Endurance=48,Hauling=50,Literature=58,Mathematics=0,PhysicalEducation=54,RussianLanguage=28,Strength=38,UkrainianLanguage=26 items=Underwear:Gray:worn,Socks:Black:worn,Skirt:Gray:worn,TShirt:White:worn,Shoes:Beige:worn,Sweater:Blue:worn,Hat:Blue:worn,Scarf:Gray:worn,Coat:Gray:home,PeShirt:Gray:home,PeShorts:Green:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f33.p0 Морозов Григорий Михаилович female=False roles=parent class=- born=1968-05-01 traits= skills=Agility=28,BelarusianLanguage=8,Communication=68,Endurance=62,Hauling=51,Pedagogy=72,RussianLanguage=56,Strength=46,UkrainianLanguage=22 items=Underwear:Gray:worn,Socks:White:worn,Trousers:Gray:worn,TShirt:Blue:worn,WinterBoots:Beige:worn,Sweater:Blue:worn,Coat:Gray:home,Phone:Black:bag +person f33.p1 Морозова Марина Владимировна female=True roles=parent class=- born=1972-10-24 traits=Leader skills=Administration=54,Agility=41,BelarusianLanguage=28,Communication=42,Endurance=80,English=30,Geography=60,Hauling=41,PhysicalEducation=76,RussianLanguage=74,Strength=37 items=Underwear:Black:worn,Socks:White:worn,Pants:Beige:worn,Shirt:Gray:worn,WinterBoots:Black:worn,Hat:Beige:worn,Belt:Gray:worn,Jacket:Beige:home +person f34.c0 Кузнецова Валентина Ивановна female=True roles=student class=class-classroom-00 born=2004-03-25 traits=Curious,Kind skills=Agility=29,Biology=32,Communication=21,Endurance=69,Hauling=54,Literature=58,Mathematics=28,PhysicalEducation=53,RussianLanguage=16,Strength=43,UkrainianLanguage=24 items=Underwear:Black:worn,Socks:Black:worn,Pants:Black:worn,Shirt:White:worn,Shoes:Black:worn,Sweater:Gray:worn,Jacket:Black:worn,PeShirt:Green:home,PeShorts:Red:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f34.p0 Кузнецов Иван Сергеевич female=False roles=parent class=- born=1970-02-02 traits= skills=Agility=44,Communication=43,Endurance=58,English=45,German=55,Hauling=31,Literature=54,RussianLanguage=55,Strength=72 items=Underwear:Black:worn,Socks:Black:worn,Pants:Beige:worn,Shirt:Gray:worn,WinterBoots:Gray:worn,Hat:Black:worn,Scarf:Beige:worn,Coat:Black:home +person f34.p1 Кузнецова Дарья Валериевна female=True roles=parent class=- born=1967-03-25 traits=HotTempered skills=Agility=47,BelarusianLanguage=23,Communication=52,Endurance=52,German=38,Hauling=32,Informatics=21,RussianLanguage=56,Strength=67,UkrainianLanguage=15 items=Underwear:Black:worn,Socks:Gray:worn,Jeans:Blue:worn,Shirt:Black:worn,Shoes:Black:worn,Sweater:Gray:worn,Jacket:Blue:home,Bottle:Blue:bag,Phone:Gray:bag +person f4.c0 Васильев Денис Федорович female=False roles=student class=class-classroom-01 born=2003-02-01 traits=Neat skills=Agility=50,BelarusianLanguage=9,Biology=58,Communication=27,Endurance=35,Hauling=25,Literature=52,Mathematics=53,PhysicalEducation=43,RussianLanguage=68,Strength=45,UkrainianLanguage=27 items=Underwear:Gray:worn,Socks:White:worn,Trousers:Black:worn,TShirt:Gray:worn,Shoes:Gray:worn,Sweater:Gray:worn,Jacket:Red:home,PeShirt:Black:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f4.p0 Васильев Фёдор Игоревич female=False roles=parent class=- born=1970-05-21 traits=AbsentMinded skills=Agility=66,Communication=49,Endurance=44,English=25,Geography=47,Hauling=45,Medicine=44,RussianLanguage=45,Strength=47,UkrainianLanguage=31 items=Underwear:Black:worn,Socks:Black:worn,Jeans:Gray:worn,TShirt:LightBlue:worn,Shoes:Gray:worn,Coat:Beige:worn,Hat:Black:worn,Belt:Gray:worn,Phone:White:bag +person f4.p1 Васильева Анастасия Федоровна female=True roles=parent class=- born=1975-01-20 traits= skills=Agility=64,BelarusianLanguage=22,Communication=59,Endurance=64,English=43,Hauling=53,Librarianship=49,Medicine=75,RussianLanguage=49,Strength=73,UkrainianLanguage=13 items=Underwear:Gray:worn,Socks:White:worn,Pants:Blue:worn,TShirt:Blue:worn,Shoes:Beige:worn,Sweater:Gray:worn,Hat:Black:worn,Coat:Gray:home,Bottle:White:bag +person f5.c0 Захарова Екатерина Борисовна female=True roles=student class=class-classroom-02 born=2002-07-13 traits=Kind,Lazy skills=Agility=57,BelarusianLanguage=29,Biology=72,Communication=42,Endurance=39,Hauling=29,Literature=19,Mathematics=37,PhysicalEducation=60,RussianLanguage=28,Strength=54 items=Underwear:Gray:worn,Socks:Black:worn,Dress:Black:worn,WinterBoots:Gray:worn,Sweater:Beige:worn,Hat:Black:worn,Coat:Black:home,PeShirt:Blue:home,PeShorts:Black:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f5.p0 Захаров Борис Николаевич female=False roles=parent class=- born=1980-04-15 traits= skills=Agility=45,BelarusianLanguage=29,Communication=37,Cooking=51,Endurance=51,Hauling=32,Pedagogy=36,RussianLanguage=66,Strength=51,UkrainianLanguage=15 items=Underwear:Black:worn,Socks:Gray:worn,Jeans:Blue:worn,Shirt:White:worn,Shoes:Gray:worn,Scarf:Beige:worn,Jacket:Gray:home +person f5.p1 Захарова Вероника Григориевна female=True roles=parent class=- born=1979-06-22 traits= skills=Administration=39,Agility=68,Communication=64,Endurance=40,English=31,Hauling=61,Informatics=35,PhysicalEducation=35,RussianLanguage=55,Strength=65 items=Underwear:Black:worn,Socks:White:worn,Skirt:Beige:worn,Shirt:Blue:worn,WinterBoots:Gray:worn,Sweater:Black:worn,Jacket:Gray:worn,Hat:Beige:worn +person f6.c0 Козловская Юлия Олеговна female=True roles=student class=class-classroom-00 born=2004-08-15 traits= skills=Agility=45,Biology=49,Communication=42,Endurance=61,Hauling=67,Literature=49,Mathematics=54,PhysicalEducation=39,RussianLanguage=23,Strength=58 items=Underwear:Black:worn,Socks:White:worn,Jeans:Black:worn,Shirt:Black:worn,WinterBoots:Black:worn,Sweater:Gray:worn,Coat:Gray:worn,Hat:Blue:worn,Scarf:Black:worn,PeShirt:Gray:home,PeShorts:Green:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f6.c1 Козловская Светлана Олеговна female=True roles=student class=class-classroom-02 born=2001-12-31 traits=HotTempered,Leader skills=Agility=53,BelarusianLanguage=37,Biology=59,Communication=36,Endurance=40,Hauling=26,Literature=66,Mathematics=34,PhysicalEducation=51,RussianLanguage=53,Strength=47,UkrainianLanguage=10 items=Underwear:White:worn,Socks:Black:worn,Jeans:Gray:worn,Shirt:Black:worn,WinterBoots:Beige:worn,Coat:Black:worn,Hat:Beige:worn,PeShirt:Blue:home,PeShorts:Green:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f6.c2 Козловская Вероника Олеговна female=True roles=student class=class-classroom-00 born=2003-09-29 traits=Diligent skills=Agility=55,Biology=77,Communication=27,Endurance=56,Hauling=46,Literature=56,Mathematics=40,PhysicalEducation=46,RussianLanguage=26,Strength=49,UkrainianLanguage=25 items=Underwear:Gray:worn,Socks:Black:worn,Jeans:Black:worn,TShirt:White:worn,Shoes:White:worn,Coat:Gray:home,PeShirt:Blue:home,PeShorts:Red:home,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f6.p0 Козловский Олег Станиславович female=False roles=parent class=- born=1967-12-18 traits=Kind skills=Agility=42,Communication=82,Endurance=64,Hauling=52,Informatics=53,Literature=33,RussianLanguage=58,Strength=21 items=Underwear:Black:worn,Socks:Black:worn,Pants:Beige:worn,TShirt:White:worn,Shoes:White:worn,Sweater:Gray:worn,Coat:Beige:home,Bottle:Blue:bag +person f6.p1 Козловская Ирина Кирилловна female=True roles=parent class=- born=1963-12-28 traits=AbsentMinded,Lazy skills=Agility=57,BelarusianLanguage=11,Communication=67,Endurance=42,English=48,Hauling=57,RussianLanguage=79,Strength=45 items=Underwear:Gray:worn,Socks:White:worn,Jeans:Gray:worn,TShirt:Gray:worn,WinterBoots:Beige:worn,Coat:Black:worn,Bottle:White:bag +person f7.c0 Андреев Виктор Степанович female=False roles=student class=class-classroom-01 born=2003-07-19 traits=Diligent,Kind skills=Agility=50,BelarusianLanguage=27,Biology=78,Communication=24,Endurance=50,Hauling=73,Literature=51,Mathematics=34,PhysicalEducation=26,RussianLanguage=56,Strength=64,UkrainianLanguage=34 items=Underwear:Gray:worn,Socks:Black:worn,Jeans:Black:worn,Shirt:Black:worn,Shoes:Gray:worn,Belt:Beige:worn,Jacket:Red:home,PeShirt:Blue:home,PeShorts:Green:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f7.p0 Андреев Степан Андреевич female=False roles=parent class=- born=1973-08-21 traits= skills=Agility=64,Communication=76,Endurance=36,English=60,Hauling=46,History=47,Literature=57,RussianLanguage=64,Strength=62,UkrainianLanguage=27 items=Underwear:Black:worn,Socks:White:worn,Jeans:Gray:worn,Shirt:Black:worn,Shoes:White:worn,Sweater:Black:worn,Hat:Beige:worn,FurCoat:Gray:home +person f7.p1 Андреева Мария Алексеевна female=True roles=parent class=- born=1977-07-16 traits=HotTempered skills=Agility=35,BelarusianLanguage=18,Communication=56,Cooking=47,Endurance=45,Hauling=56,Medicine=47,RussianLanguage=58,Strength=64 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Blue:worn,TShirt:Black:worn,Shoes:Gray:worn,Hat:Blue:worn,FurCoat:Beige:home,Bottle:White:bag +person f8.c0 Фролов Евгений Павелович female=False roles=student class=class-classroom-00 born=2003-12-20 traits=AbsentMinded,Kind skills=Agility=69,BelarusianLanguage=26,Biology=50,Communication=28,Endurance=29,Hauling=45,Literature=52,Mathematics=31,PhysicalEducation=44,RussianLanguage=43,Strength=31,UkrainianLanguage=24 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Black:worn,Shirt:White:worn,WinterBoots:Beige:worn,Sweater:Gray:worn,FurCoat:Beige:worn,PeShirt:Green:home,PeShorts:Black:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f8.c1 Фролов Станислав Павелович female=False roles=student class=class-classroom-03 born=2000-10-11 traits=AbsentMinded,Lazy skills=Agility=57,BelarusianLanguage=20,Biology=56,Communication=57,Endurance=34,Hauling=42,Literature=71,Mathematics=23,PhysicalEducation=25,RussianLanguage=39,Strength=45,UkrainianLanguage=24 items=Underwear:Black:worn,Socks:White:worn,Jeans:Black:worn,TShirt:Black:worn,Shoes:Beige:worn,Jacket:Black:worn,Hat:Black:worn,PeShirt:Red:home,PeShorts:Green:home,Bottle:White:bag,Phone:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f8.p0 Фролов Павел Егорович female=False roles=parent class=- born=1968-06-07 traits=Leader skills=Administration=51,Agility=71,Chemistry=39,Communication=87,Endurance=39,English=42,Hauling=45,Informatics=65,Librarianship=57,RussianLanguage=73,Strength=45,UkrainianLanguage=26 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Gray:worn,TShirt:White:worn,WinterBoots:Black:worn,Sweater:Gray:worn,Coat:Black:home,Phone:Black:bag +person f8.p1 Фролова Виктория Степановна female=True roles=parent class=- born=1963-10-04 traits=Curious,Leader skills=Agility=57,Chemistry=51,Communication=77,Endurance=45,English=33,Hauling=52,Librarianship=83,RussianLanguage=58,Strength=55 items=Underwear:White:worn,Socks:White:worn,Skirt:Beige:worn,Shirt:Gray:worn,WinterBoots:Black:worn,Coat:Gray:home,Bottle:Green:bag +person f9.c0 Кузьмина Любовь Александровна female=True roles=student class=class-classroom-01 born=2003-06-13 traits=Kind skills=Agility=45,Biology=47,Communication=31,Endurance=32,Hauling=40,Literature=63,Mathematics=46,PhysicalEducation=48,RussianLanguage=41,Strength=44,UkrainianLanguage=5 items=Underwear:Black:worn,Socks:Gray:worn,Skirt:Beige:worn,Shirt:Blue:worn,WinterBoots:Gray:worn,Sweater:Blue:worn,FurCoat:Beige:worn,PeShirt:Gray:home,PeShorts:Green:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f9.c1 Кузьмин Сергей Александрович female=False roles=student class=class-classroom-03 born=2001-08-20 traits=Curious,Quiet skills=Agility=11,Biology=58,Communication=41,Endurance=59,Hauling=40,Literature=39,Mathematics=31,PhysicalEducation=40,RussianLanguage=51,Strength=52 items=Underwear:Gray:worn,Socks:Black:worn,Trousers:Gray:worn,TShirt:Gray:worn,Shoes:Beige:worn,Sweater:Beige:worn,Hat:Beige:worn,Scarf:Beige:worn,Coat:Gray:home,PeShirt:Gray:home,PeShorts:Blue:home,Bottle:White:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f9.c2 Кузьмина Алина Александровна female=True roles=student class=class-classroom-03 born=2001-01-22 traits= skills=Agility=52,Biology=38,Communication=29,Endurance=53,Hauling=34,Literature=63,Mathematics=31,PhysicalEducation=55,RussianLanguage=42,Strength=63,UkrainianLanguage=12 items=Underwear:White:worn,Socks:Gray:worn,Trousers:Blue:worn,Shirt:Blue:worn,WinterBoots:Gray:worn,Jacket:Gray:worn,Scarf:Gray:worn,PeShirt:Blue:home,PeShorts:Black:home,Bottle:Blue:bag,SchoolBag:-:bag,Textbook:-:bag:PhysicalEducation,Textbook:-:bag:PrimarySchool +person f9.p0 Кузьмин Александр Денисович female=False roles=parent class=- born=1981-12-09 traits= skills=Agility=40,Chemistry=55,Communication=58,Endurance=78,English=57,Hauling=43,Pedagogy=52,RussianLanguage=67,Strength=63 items=Underwear:White:worn,Socks:White:worn,Jeans:Gray:worn,Shirt:Gray:worn,Shoes:Beige:worn,FurCoat:Beige:worn,Belt:Beige:worn,Bottle:Green:bag +person f9.p1 Кузьмина Анастасия Сергеевна female=True roles=parent class=- born=1977-01-01 traits=Diligent skills=Agility=62,BelarusianLanguage=27,Communication=72,Endurance=92,Hauling=47,Librarianship=43,Pedagogy=48,RussianLanguage=67,Strength=34,UkrainianLanguage=21 items=Underwear:Black:worn,Socks:White:worn,Skirt:Blue:worn,Shirt:Blue:worn,Shoes:Beige:worn,Hat:Black:worn,Belt:Gray:worn,Jacket:Black:home,Bottle:White:bag