Appearance
Королевство Эйфория — план и структура всех уровней
Текстовый экономический симулятор управления королевством. Оригинал на C++: Ponpa Dmitriy; порт на движок INSTEAD: Очинский Валерий (2015–2016). Интерактивная веб-версия: компонент
<EiforiaKindom />(см. ниже,components/EiforiaKindom.vue; игровой движок —components/eiforia/useEiforiaGame.ts).
Цель игры: править как можно дольше, накапливая ресурсы и очки. Правление заканчивается при: революции (голод), смерти короля (болезнь), добровольном уходе с трона или достижении 51-го года правления.
Ресурсы и стартовое состояние
| Ресурс | Lua-переменная | Ед. | Старт | Базовая цена (руб.) |
|---|---|---|---|---|
| Деньги | cur_money | руб. | 10000 | 1 |
| Золото | cur_gold | кг | 0 | 1000 |
| Земля | cur_land | га | 100 | 200 |
| Зерно | cur_zerno | т | 1000 | 10 |
| Крестьяне | cur_krest | душ | 100 | 50 |
| Гвардия | cur_guard | чел. | 100 | 100 |
- Текущая цена на бирже:
round(base × (0.75 + rnd(50)/100))— плавают в диапазоне 75%–125% от базы. - Еда:
prefs.ed_eatтонн зерна на человека в год (настройка, дефолт 3; 0 — режим без нормы). - Посев:
ed_posev = 1т зерна на 1 га. - Жалованье гвардии:
(cur_guard + 1) × 10руб./год (+10 руб. начальнику стражи). - Настройка
prefs.maxwife(1–5, дефолт 1) — максимальное число жён.
Очки (итоговый счёт)
ochki = round(money/1000) + round(gold×2) + round(land/5) + round(zerno/100)
+ round(krest/20) + round(guard/10) + round(build_xram×200) + round(god×10)build_xram — число возведённых храмов (1 храм = 100 000 руб. пожертвований митрополиту).
«Уровни» игры: что это
Игра не делится на классические уровни: структура — циклическая. Каждый год правления (цикл) состоит из 7 последовательных этапов (сцен), а внутри этапов случайно срабатывают событийные сцены.
Обозначение ниже: L — уровни годового цикла (постоянные), E — событийные сцены (случайные/условные).
Главный экран (L0)
Меню: Начать игру → старт (сброс переменных, fl_block = rnd(100)<25), Помощь (правила), Настройки (maxwife, ed_eat, музыка).
Годовой цикл: последовательность уровней
Порядок строгий, управляется автоматами cstate (этап года) и ecstate (слот внутри этапа):
| Уровень | Этап | Lua-сцена(ы) | Что происходит |
|---|---|---|---|
| L1 | «Состояние» | startyear | Таблица ресурсов за god-й год. Блокада (25%) или вопрос: торговать на бирже? |
| L1b | «Биржа» | torgovla → ask1/ask2 | Покупка/продажа любого из 5 ресурсов по текущим ценам, любое число сделок. Вход только если нет блокады |
| L2 | Случайные события (10 слотов) | см. random_events.md | По одному событию на слот: караван, грабёж, митрополит, войны, визирь, наследство, сын, свадьба, смерть королевы |
| L3 | «Королева» + «Болезнь» | koroleva_prosit1…3, ill, ill2, shaman, shaman2 | Если женат — гонец от королевы (просьба денег). Затем проверка болезни (вероятность god×2%) |
| L4 | «Распределение зерна» | choicezerno1…3 | Авто/ручное распределение зерна на еду и посев. Недостаток → революция → конец игры |
| L5 | «Продолжение правления» | isend | «Будете править в следующем году?» — отказ → конец игры |
| L6 | «Новогодний бал» | newyear, newyearenter, newyear1 | Устроить бал за произвольную сумму (флейвор) |
| L7 | «Доклад визиря» | make_turn + yeartoyear | Годовые расчёты (урожай, крысы, крестьяне, гвардия, кражи, караваны, цены) и отчёт; god += 1 → цикл заново с L1 |
После L7 цикл повторяется, пока не сработает одно из условий конца (см. «Концовки»).
Сводная таблица всех сцен
| Код | Сцена | Тип | Условия входа | Переходы |
|---|---|---|---|---|
main | Главное меню | room | старт игры | start_game / help / settings |
startyear | Состояние | room | каждый год (L1) | torgovla (y) или дальше (n) |
torgovla | Биржа | room | y в L1 | сделки → дальше |
snaradkar | Караван | yes/no | слот 0, 25% | вложение → snaradkar1 |
grabegkar | Грабёж каравана | xenter | слот 1, 20/#fl_kar | отчёт → дальше |
mitropolit | Митрополит | room+input | слот 2, 20% | вношение → mitropolit1 |
prewar | Объявить войну | yes/no | слот 4, 30% | war1 / дальше |
war1 | Война: разведка | yes/no | слот 3 (мщение) / слот 4 (нападение) / prewar | мобилизация? → war12 / war2 |
war12 | Мобилизация | cutscene | мобилизация да | war2 |
war2 | Наёмники | yes/no | после war1 | наём → warenter / war3 или war4 (80/20) |
war3 | Союзник | yes/no | 80% из war2 | договор → war4 |
war4 | Сражение | enter | перед битвой | расчёт → warvictory / warloss |
poimali_visir | Поймали визиря | xenter | слот 5, 15%, есть кражи | возврат денег → дальше |
nasledstvo | Наследство | xenter | слот 6, 10% | +ресурсы → дальше |
rodilsa_sin | Сын родился | cutscene | слот 7, 10%×жён | −деньги (банкет) → дальше |
svadba | Свадьба | yes/no | слот 8, 15%, жён < max | приданое → svadba1 / обида → svadba2 (война в след. году) |
wife_dead1 | Смерть королевы | yes/no | слот 9, 10% | wife_dead2 |
koroleva_prosit1…3 | Просьба королевы | yes/no+cutscene | L3, если женат | плата/отказ → дальше |
ill / ill2 | Болезнь | yes/no+cutscene | L3, вероятность god×2% | лечение/само → shaman или выздоровление |
shaman / shaman2 | Шаман | yes/no+cutscene | неудачное лечение | исцеление или смерть (fl_lec) |
choicezerno1…3 | Зерно | yes/no+inputs | L4 (если ed_eat>0) | zerno_end 0..5; 3/4/5 → революция |
isend | Конец правления? | yes/no | L5 | no → fl_end → gameend |
newyear / newyear1 | Новый год | yes/no+cutscene | L6 | бал → дальше |
yeartoyear | Доклад визиря | cutscene | L7 | отчёт → следующий год |
gameend | Итог | xenter | fl_lec/fl_r/fl_end/god>50 | очки + оценка → рестарт |
Граф сцен (год)
Концовки
| Конец | Флаг | Условие |
|---|---|---|
| Смерть (болезнь) | fl_lec = 1/2 | отказ от шамана без чуда / шаман не помог |
| Революция | fl_r = 1 | норма еды <40% гарантированно; 40–69% с вероятностью (100−норма)%; зерно = 0 при наличии люда |
| Добровольный уход | fl_end = 1 | «нет» в L5 |
| Лимит правления | god > 50 | срабатывает в любой момент следующего хода |
Оценки по очкам: ≤100 «гусей пасти», ≤300 «новичку сойдёт», ≤500 «худо-бедно», ≤1000 «уже получается», ≤3000 «весьма неплохо», ≤5000 «умеете играть», ≤10000 «профессионал», ≤100000 «ну вы даете!», больше — «NO pity, NO mercy, NO REGRET!».
Документы
- Постоянные циклические события — что гарантированно происходит каждый год и в каком порядке.
- Случайные события — все условные/случайные события: вероятности, выборы игрока, последствия.
- Интерактивный компонент игры — см. раздел «Веб-компонент игры» ниже.
Веб-компонент игры
Полный функциональный порт оригинала (та же логика, формулы и тексты). Кнопка «⛶ Весь экран» в правом верхнем углу компонента разворачивает игру на весь экран пользователя (навигация сайта закрывается), чтобы интерфейс было удобнее использовать; выход — «✕ Свернуть» или клавиша Esc.