Skip to content

Королевство Эйфория — план и структура всех уровней ​

Текстовый экономический симулятор управления королевством. Оригинал на C++: Ponpa Dmitriy; порт на движок INSTEAD: Очинский Валерий (2015–2016). Интерактивная веб-версия: компонент <EiforiaKindom /> (см. ниже, components/EiforiaKindom.vue; игровой движок — components/eiforia/useEiforiaGame.ts).

Цель игры: править как можно дольше, накапливая ресурсы и очки. Правление заканчивается при: революции (голод), смерти короля (болезнь), добровольном уходе с трона или достижении 51-го года правления.

Ресурсы и стартовое состояние ​

РесурсLua-переменнаяЕд.СтартБазовая цена (руб.)
Деньгиcur_moneyруб.100001
Золотоcur_goldкг01000
Земляcur_landга100200
Зерноcur_zernoт100010
Крестьянеcur_krestдуш10050
Гвардияcur_guardчел.100100
  • Текущая цена на бирже: 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Биржаroomy в 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/no80% из 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+cutsceneL3, если женатплата/отказ → дальше
ill / ill2Болезньyes/no+cutsceneL3, вероятность god×2%лечение/само → shaman или выздоровление
shaman / shaman2Шаманyes/no+cutsceneнеудачное лечениеисцеление или смерть (fl_lec)
choicezerno1…3Зерноyes/no+inputsL4 (если ed_eat>0)zerno_end 0..5; 3/4/5 → революция
isendКонец правления?yes/noL5no → fl_end → gameend
newyear / newyear1Новый годyes/no+cutsceneL6бал → дальше
yeartoyearДоклад визиряcutsceneL7отчёт → следующий год
gameendИтогxenterfl_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.