Skip to content

Случайные (одноразовые) события ​

Все условные и вероятностные события игры. Формулы — точные из исходника (eiforia.lua), rnd(n) = целое 1..n. Постоянные циклические события года — в постоянные циклические события.

События годового цикла (слоты L2) ​

Каждый слот проверяется один раз в год, по порядку. Не сработало — событие года нет.

E1. Караван (snaradkar) ​

  • Слот 0, вероятность 25%: rnd(100) < 25
  • Заморский купец предлагает снарядить караван. Игрок вносит произвольную сумму X руб. (fl_kar += {X, age=1}).
  • Дальнейшее: каждые годы возраст каравана растёт; при age == 5 караван возвращается с прибылью round(X × 6) (+600% к вкладу).
  • Риски: грабёж (E2) в любой из следующих лет.

E2. Грабёж каравана (grabegkar) ​

  • Слот 1, вероятность 20 / #fl_kar на год (есть караваны): rnd(100) × #fl_kar < 20
  • Жертва — случайный караван:
    • 5%: караван полностью разграблен (удаляется из fl_kar);
    • 95%: украдена сумма grabkar = round(rnd(40) × X / 100) (0–40% вклада); из них 25% — весь grabkar вычитается, 75% — только grabkar / 6.
  • Без выбора игрока: отчёт и дальше.

E3. Митрополит (mitropolit) ​

  • Слот 2, вероятность 20%: rnd(100) < 20
  • Митрополит просит деньги на храм. Игрок вносит произвольную сумму D:
    • for_xram += D; на каждые полные 100 000 руб. — build_xram += 1 (новый храм, +200 очков в итог);
    • реакция митрополита зависит от D / оставшаяся казна × 100: <1% «Скряга!!», <10% «мёртвый грех», <20% «можно и побольше», <30% «спасибо и на этом», <50% «щедрость будет оценена», ≥50% «поют молитвы во славу короля»; казна пуста — «Молись усерднее, сын мой».
  • Особая ценность: единственный способ получить храмы (200 очков каждый).

E4. Война (три повода) ​

Повод 1 — мщение за отказ (fl_mar_war): слот 3, детерминированный (100%), если в прошлом году игрок отказался от свадьбы.

Повод 2 — слабая армия: слот 4, если rnd(100) > cur_guard (т.е. вероятность (100 − guard)% при наличии гвардии/крестьян).

Повод 3 — агрессия игрока: слот 4, 30%: rnd(100) < 30 (если не было нападений) — «Объявить войну?» (prewar); отказ — ничего.

Ход войны (war1 → war12 → war2 → war3 → war4):

ЭтапМеханика
Разведка (war1)Враг: enemy_guard = rnd(guard×2.5), enemy_krest = rnd(krest×2.5). Разведка врёт: ras = round(0.5×e + rnd(e)) → 50–150% реального числа
Мобилизация (да/нет)Да: your_krest = round((rnd(50)+50) × krest / 100) (50–150% крестьян) — «в народе растёт недовольство»
Наёмники (war2, да/нет)Да: по 100 руб. за наёмника (your_extra = N). После: 80% → союзник (war3), 20% → сразу сражение
Союзник (war3)Сосед помогает helper_guard = rnd_gauss(guard, guard), helper_krest = rnd_gauss(krest, krest) (случайное блуждание ±1 на шаг) при условии раздела добычи поровну
Сражение (war4)your_mark = guard×rndfr(7,8) + extra×rndfr(5,8) + krest×rndfr(2,4); enemy_mark = eguard×rndfr(7,8) + ekrest×rndfr(2,4); n = rnd(enemy_mark + 2×your_mark); победа если n < 2×your_mark (P ≈ 2·your/(your+enemy))
Победа+round(cur × (rnd(90)+10)/100) (10–100%) каждого ресурса: деньги, золото, земля, зерно, крестьяне (гвардия не трогается); с союзником — добыча делится пополам
Поражение−10–100% того же, включая гвардию

E5. Поймали визиря (poimali_visir) ​

  • Слот 5, вероятность 15% при наличии записанных краж (#fl_vis > 0).
  • Полиция ловит визиря: возвращают round((rnd(50)+50) × кража / 100) (50–150% случайной прошлой кражи).

E6. Наследство (nasledstvo) ​

  • Слот 6, вероятность 10%.
  • Умер дальний родственник: +10–100% (round(cur×(rnd(90)+10)/100)) каждого ресурса: деньги, золото, земля, зерно, крестьяне, гвардия. Без выбора игрока.

E7. Родился сын (rodilsa_sin) ​

  • Слот 7, вероятность 10% × число жён: rnd(100) < fl_marry × 10 (макс. 50% при 5 жёнах).
  • Банкет: −round((rnd(40)+20) × money / 100) (20–60% казны).

E8. Свадьба (svadba) ​

  • Слот 8, вероятность 15% при fl_marry < prefs.maxwife.
  • Соседний король сватает дочь; приданое: +10–100% каждого ресурса (та же формула, что в E6).
  • Да: fl_marry += 1, year_marry = 1; свадебный пир −20–60% казны (round((rnd(40)+20)×money/100)).
  • Нет: обида — fl_mar_war = 1 → гарантированная война в следующем году (слот 3).

E9. Смерть королевы (wife_dead1) ​

  • Слот 9, вероятность 10% при fl_marry > 0 и (year_marry == 0 или fl_marry > 1) — в год свадьбы вдова не становится.
  • Вопрос «Впустить гонца?» (влияет только на текст).
  • Похороны: −20–60% казны, fl_marry −= 1.

События этапа L3 ​

E10. Болезнь короля (ill) ​

  • Вероятность растёт с годами: rnd(100) < god × 2 (1-й год — 2%, 25-й — 50%, 50-й и далее — 100%).
  • Лекарь просит round((rnd(30)+1) × money / 100) (1–30% казны).
  • Лечиться (да): платить; 95% — выздоровление, 5% — смерть (переход к шаману).
  • Не лечиться (нет): выздоровление с вероятностью 100 − god)%, обострение (к шаману) с вероятностью god)%.

E11. Шаман (shaman) ​

  • Цен: половина всего золота + round((rnd(40)+1) × money / 100) (1–40% казны).
  • Да: 20% — выздоровление; 80% — смерть (fl_lec = 2 → конец игры).
  • Нет: 5% — «ЧУДО, выздоровел»; 95% — смерть (fl_lec = 1).

Случайные эффекты годового отчёта (L7) ​

Происходят внутри make_turn() каждый год (обязательный пайплайн), но сами по себе случайны — подробности в циклических событиях:

ЭффектВероятностьВеличина
Урожай100%3× … 11× посев (5 уровней: засуха → супер-урожай)
Крысы20%съедают 0–20% зерна
Бегство крестьянпри krest > landrnd(избыток) человек
Прирост крестьян100%6–16%
Дезертирство гвардиине хватило денег на жалованье6–16% гвардии
Кража золота20% (есть золото)0–25% золота
Кража денег визирем10% (есть деньги)0–25% денег (записывается, см. E5)
Экономическая блокада25%на следующий год закрыта биржа
Караван вернулсяage == 5+вклад×6

Сводная таблица вероятностей (события L2) ​

СлотСобытиеP(год)
0Караван25%
1Грабёж каравана20% / (число караванов)
2Митрополит20%
3Война-мщение100% (если флаг fl_mar_war)
4Война-нападение(100 − guard)%
4Война-агрессия30% (если не напали)
5Визирь пойман15% (если есть кражи)
6Наследство10%
7Сын10% × жёны
8Свадьба15% (жёны < max)
9Смерть королевы10% (не в год свадьбы)