Разведение

Материал из Mew-Genics вики
Перейти к навигации Перейти к поиску

Разведение - механика, которая определяет, когда рождаются котята и как они наследуют признаки от родителей.

В конце каждого дня две взрослые кошки в одной комнате получают шанс спариться и родить до двух котят.

Домашние параметры

На разведение особенно влияют параметры дома:

Параметр Влияние
Комфорт Участвует в проверках спаривания. При значении ниже -10 проверки автоматически проваливаются.
Стимуляция Увеличивает шанс наследования лучших параметров, активных способностей и пассивных способностей. Также участвует в некоторых проверках внешности и мутаций.

Инбридинг

У каждой кошки есть процент инбридинга, отражающий, насколько близко связаны ее родители. При высоком инбридинге котята могут получать уникальные расстройства и мутации врожденных дефектов.

  • Бродячие кошки всегда имеют коэффициент инбридинга 0%.
    • Поскольку у них нет семейного дерева, разведение с бродячей кошкой разрывает цепочки родства и снижает инбридинг.
  • Уровни инбридинга определяют иконки:
Ниже 10% (<10%) Файл:UI Not Inbred Icon.svg Не инбредный
10%-25% Файл:UI Slightly Inbred Icon.svg Слегка инбредный
25%-50% Файл:UI Moderately Inbred Icon.svg Умеренно инбредный
50%-80% Файл:UI Highly Inbred Icon.svg Сильно инбредный
Выше 80% (>80%) Файл:UI Extremely Inbred Icon.svg Экстремально инбредный

Родство

Инбридинг равен родству между двумя родительскими кошками. Родство показывает, насколько сильно пересекаются их семейные деревья.

Как рассчитывается родство:<ref>https://store.steampowered.com/news/app/686060/view/529850584204837361</ref>

  • Родство считается рекурсивно как среднее родство родителей более молодой кошки со старшей кошкой.
  • Базовый случай: родство кошки с самой собой определяется как (1 + инбридинг) / 2.
    • Это применяется, например, когда старшая кошка является родителем младшей. Это основной способ максимально разогнать инбридинг.

Общие предки увеличивают родство, причем близкие родственники дают самый большой вклад. Каждый шаг вверх по дереву примерно делит вклад пополам, поэтому дальнее родство быстро становится почти незаметным.

Максимизация инбридинга

Инбридинг максимизируется разведением близких родственников, особенно прямых членов семьи. Самый эффективный способ - выбирать родителя как партнера для разведения потомка. Если начать с двух неродственных бродячих кошек, такой метод увеличивает инбридинг по поколениям примерно так:

  • 0% -> 25% -> 37.5% -> 50% -> 59.4% -> 67.2% -> 73.4% -> 78.5% -> 82.6% -> ...

После 9 последовательных скрещиваний родителя с потомком рождающиеся котята гарантированно будут Файл:UI Extremely Inbred Icon.svg экстремально инбредными. После 12-го поколения значение превышает 90%, и кошки начинают получать по 2 врожденных дефекта. См. шаг 13 в разделе процесса рождения котенка.

Добавление неродственных кошек, например бродячих, сразу снижает инбридинг до 0%, потому что разрывает общие петли происхождения.

Подбор пары

Каждый день все живые взрослые кошки перемешиваются в списки по комнатам. Затем каждая кошка действует как инициатор и пытается выбрать партнера для разведения по следующей логике:

  1. Если в комнате есть эффект мебели BreedSuppression, например Idol of Chastity, попытка кошки пропускается.
  2. Иначе случайный партнер в той же комнате выбирается с весом по совместимости.
  3. Делаются две проверки, каждая с шансом совместимость * sqrt(1 + 0.1 * комфорт).
    • Если комфорт < -10, проверки автоматически проваливаются.
    • Если первая проверка провалилась, пропускается только инициатор. Партнер или другая кошка все еще может выбрать его позже.
    • Если вторая проверка провалилась, обе кошки удаляются из списка кандидатов на этот день.
    • Если обе проверки успешны, кошки начинают попытку разведения.
  4. Роли «отца» и «матери» назначаются отдельно; кошки нейтрального пола могут занять любую роль. Если обе кошки одного пола, роли выбираются случайно.
  5. Совместимость пересчитывается так, будто отец является инициатором. Если пересчитанная совместимость выше 5%, партнер принимает попытку разведения.
  6. Результат зависит от пола пары:
    • Пары самец-самец или самка-самка увеличивают шанс появления Gay Stray, но не дают котенка.
    • Остальные пары рождают котенка, с шансом двойни произведение_фертильности - 1, где используется произведение фертильности родителей.

Процесс рождения котенка

Когда рождается котенок, игра выполняет 13 шагов:<ref>https://gist.github.com/SciresM/95a9dbba22937420e75d4da617af1397</ref>

1. Расчет эффектов мебели

Большинство этих эффектов сейчас не используется, например разные модификаторы наследования от отца или матери. Судя по всему, это сделано для упрощения параметров.

2. Наследование параметров

Для каждого из 7 основных параметров наследуется значение одного из родителей.

  • Шанс выбрать более высокий параметр для каждого параметра: (100 + стимуляция) / (200 + стимуляция).
  • Таблица ниже показывает шанс унаследовать лучшие значения сразу для X параметров.
Шанс унаследовать лучшее значение для X параметров
Параметры Стимуляция
0 20 40 60 80 100 120 140 160 180 200
1 50.00% 54.55% 58.33% 61.54% 64.29% 66.67% 68.75% 70.59% 72.22% 73.68% 75.00%
2 25.00% 29.75% 34.03% 37.87% 41.33% 44.44% 47.27% 49.83% 52.16% 54.29% 56.25%
3 12.50% 16.23% 19.85% 23.30% 26.57% 29.63% 32.50% 35.17% 37.67% 40.01% 42.19%
4 6.25% 8.85% 11.58% 14.34% 17.08% 19.75% 22.34% 24.83% 27.21% 29.48% 31.64%
5 3.13% 4.83% 6.75% 8.83% 10.98% 13.17% 15.36% 17.53% 19.65% 21.72% 23.73%
6 1.56% 2.63% 3.94% 5.43% 7.06% 8.78% 10.56% 12.37% 14.19% 16.00% 17.80%
7 0.78% 1.44% 2.30% 3.34% 4.54% 5.85% 7.26% 8.73% 10.25% 11.79% 13.35%

Пример: при 20 стимуляции шанс гарантировать строго лучшие силу и ловкость равен 29.75%.

3. Skill Share+

Для каждого родителя со способностью Skill Share+ другая пассивная способность этого родителя гарантированно передается котенку.

Если эта другая пассивная способность тоже Skill Share, котенок может унаследовать Skill Share на этом шаге. Это единственный известный способ наследования Skill Share, хотя легитимно такой случай пока не наблюдался.

4. Наследование активных способностей

Котенок делает две независимые попытки унаследовать активную способность и может получить до двух активных способностей.

  • Первая попытка: 20% + 2.5% * стимуляция.
  • Вторая попытка: 2% + 0.5% * стимуляция.
  • Эти шансы гарантируются при 32 и 196 стимуляции соответственно.

Для каждой успешной попытки:

  • Если ровно у одного родителя есть любые способности не из класса Без ошейника, есть шанс 1% * стимуляция принудительно выбрать этого родителя.
  • Иначе один из родителей выбирается случайно.
  • Затем случайно выбирается одна из активных способностей выбранного родителя.

Если обе попытки выбирают одну и ту же способность, наследуется только одна копия, без переброса.

5. Наследование пассивных способностей

Котенок делает одну попытку унаследовать пассивную способность.

  • Шанс: 5% + 1% * стимуляция.
  • Этот шанс гарантируется при 95 стимуляции.

Если попытка успешна:

  • Если ровно у одного родителя есть любые пассивные способности не из класса Без ошейника, есть шанс 1% * стимуляция принудительно выбрать этого родителя.
  • Иначе один из родителей выбирается случайно.
  • Затем случайно выбирается одна из пассивных способностей выбранного родителя.

Если попытка должна выбрать Skill Share или Skill Share+, она пропускается вместо переброса.

6. Наследование расстройств

Шансы:

  • Унаследовать одно случайное расстройство от матери: 15%.
  • Унаследовать одно случайное расстройство от отца: 15%.

Это наследование не зависит от мебели или стимуляции.

7. Проверка инбредных расстройств

Когда применяется:

  • Только если от родителей было унаследовано меньше 2 расстройств.

Шанс: 2% + 40% * clamp(инбридинг - 20%, 0%, 100%).

См. пул расстройств врожденных дефектов для списка возможных результатов. Шанс равен 2% до значения инбридинг > 20%, затем линейно растет до максимума 34% при 100% инбридинге.

8. Наследование внешности

«Внешность» включает мутации и врожденные дефекты.

Для каждой наследуемой части тела:

  • Если ровно у одного родителя эта часть мутировала, мутировавшая версия выбирается с шансом (100 + стимуляция) / (200 + стимуляция).
  • Иначе версия одного из родителей наследуется случайно.

9. Случайное изменение части тела

Одна случайная часть тела может быть переназначена.

  • Шанс: 20%.
  • Часть тела выбирается равномерно из 15 частей: тело, голова, хвост, рот, шерсть, 2 ноги, 2 руки, 2 глаза, 2 брови, 2 уха.

10. Симметризация частей тела

Для левых и правых частей, которые должны совпадать, симметрия принудительно задается копированием одной стороны на другую.

  • Левая сторона заменяется правой: 50%.
  • Правая сторона заменяется левой: 50%.

Максимальное количество мутаций, которое может появиться из-за разведения, равно 10: тело, голова, хвост, нога, рука, глаз, бровь, ухо, рот и шерсть.

11. Наследование высоты голоса

Шансы:

  • Наследуется от родителей: 98%.
  • Перебрасывается как высокий голос: 1%.
  • Перебрасывается как низкий голос: 1%.

По умолчанию родитель выбирается с шансом 50% на каждого.

Высота голоса - модификатор от 50% до 200%. Распределение для низкого голоса: max(U1, U2), где U равномерно распределено между 50% и 100%. Высокий голос равен 100% / low_pitch.

12. Наследование голоса

Обычно голос наследуется от родителей, с небольшим шансом переброса.

  • Наследуется от родителей: 98%.
  • Перебрасывается: 2%.

По умолчанию родитель выбирается с шансом 50% на каждого. См. также голоса кошек.

13. Проверка врожденных дефектов

Когда применяется:

  • Только если инбридинг > 5%.

Шанс: 1.5 * инбридинг, гарантированно при 66% инбридинга.

Части врожденных дефектов применяются за один или несколько проходов:

  • Если инбридинг <= 90%: 1 проход.
  • Если инбридинг > 90%: 2 прохода.

Врожденные дефекты применяются после обычного наследования частей тела и могут заменить уже унаследованные части.

Любовник

У каждой кошки может быть любовник. Если игрок пожертвовал достаточно кошек Тинк, рядом с именем кошки появляется соответствующая иконка. Это влияет на lover_coeff - скрытое значение между 0% и 100%, используемое для расчета совместимости. В частности, выполняются два обновления:<ref>Информация из датамайна Desktop v1.0.20763, функция House::EndDay (FUN_1401e5630).</ref>

  • Если у кошки нет любовника, но ее выбрали для попытки разведения, другая кошка немедленно становится ее любовником и устанавливает lover_coeff = 0.25. Каждая попытка разведения с любовником увеличивает значение по формуле lover_coeff -> 0.9 * lover_coeff + 0.1.
    • По сути это взвешенное среднее, медленно тянущее lover_coeff к 1. Рост идет примерно как 1 - k * (0.9)^n.
  • Если у кошки есть любовник, но ее выбрали в попытку разведения не с ним, значение уменьшается по формуле lover_coeff -> 0.9 * lover_coeff.

Соперники

  • Когда кошки объединяются в пару для попытки разведения, любовник каждой кошки меняет текущего соперника на другую кошку. Это нужно, чтобы кошки не «изменяли» текущему любовнику.
  • Каждая такая попытка разведения увеличивает hater_coeff соперника к 1.
  • Это происходит независимо от того, была ли попытка успешной или отклоненной.
  • Соперники чаще начинают драки друг с другом.

Совместимость

Когда две кошки объединяются для попытки разведения, игра рассчитывает их совместимость так:

Сначала проверяются требования:

  • Инициатор не может быть котенком, например из-за вечной молодости.
  • Обе кошки не должны быть заблокированы от разведения, например особые гуманоидные бродячие.

Если требования выполнены, рассчитываются два значения.

Множитель любовника

Берется lover_coeff партнера. По умолчанию это 0.25.

  • Если у партнера нет любовника, lover_mult = 1, то есть множитель ни на что не влияет.
  • Если инициатор является любовником партнера, lover_mult = 1 + lover_coeff.
  • Иначе применяется штраф: lover_mult = 1 - lover_coeff.

Множитель сексуальности

  • Если один из родителей нейтрального пола, sexuality_mult = 1, то есть множитель ни на что не влияет.
  • Иначе от партнера берется partner_sexuality. См. сексуальность.
  • Если пара самец-самка, sexuality_mult = cos(0.5pi * partner_sexuality).
  • Если обе кошки самцы или обе самки, sexuality_mult = sin(0.5pi * partner_sexuality).

Финальная совместимость рассчитывается так:

15% * харизма_инициатора * либидо_партнера * lover_mult * sexuality_mult

  • Если совместимость < 5%, попытка разведения отклоняется.
  • харизма_инициатора - это полная харизма, а не базовая.

Параметры разведения

Когда создается любая кошка, ей случайно назначаются значения, влияющие на взаимодействия в доме. Эти значения не наследуются.<ref>Информация из датамайна Desktop v1.0.20763, функция FUN_1400b4b60.</ref>

Либидо

У каждой кошки есть коэффициент либидо от 0% до 100%. Он действует как множитель при расчете совместимости и враждебности в драках.

Уровни либидо:

Ниже 30% (<30%) Файл:UI Low Libido Icon.svg Низкое либидо
30%-70% Файл:UI Average Libido Icon.svg Среднее либидо
Выше 70% (>70%) Файл:UI High Libido Icon.svg Высокое либидо

Распределение: либидо рассчитывается как большее из четырех случайных чисел между 0% и 50%. Затем есть дополнительный шанс 50% отразить значение выше 50%, чтобы низкое либидо встречалось так же часто, как высокое.

Верхние % кошек Либидо >=
50% 50.0%
25% 58.0%
10% 66.6%
6.5% 70% (высокое)
5% 71.9%
2% 77.6%
1% 81.2%
0.1% 89.4%

Сексуальность

Для каждой кошки игра выбирает сексуальность с такими шансами:

  • 81.9% шанс быть гетеросексуальной.
  • 7.2% шанс быть бисексуальной.
  • 10.9% шанс быть гомосексуальной.

Кроме того, у каждой кошки есть sexuality_coeff от 0% до 100%, который используется в разных расчетах, включая совместимость. После выбора фактической сексуальности sexuality_coeff получает равномерно случайное значение в соответствующих границах.

Уровни сексуальности:

Ниже 10% (<10%) без флага, гетеросексуальная
10%-90% Файл:UI Bi Icon.svg Бисексуальная
Выше 90% (>90%) Файл:UI Gay Icon.svg Гомосексуальная

Однополое разведение увеличивает шанс дальнейшего появления Gay Stray с дополнительным заклинанием или пассивной способностью на основе классов разводимых кошек.

Фертильность

У каждой кошки есть скрытый коэффициент фертильности от 1.0 до 1.25. Он контролирует вероятность двойни при успешной попытке разведения. Каждый родитель дает свое значение фертильности, затем эти значения перемножаются в финальную combined_fertility.

Это единственный параметр, для которого Тинк не открывает отображение.

  • Если combined_fertility > 1, 1 котенок гарантирован, а шанс двойни равен combined_fertility - 1, то есть больше 0% и меньше 56.25%.

Фертильность рассчитывается как меньшее из двух случайных чисел между 1 и 1.25.

  • Средняя фертильность кошки равна примерно 1.0833. Это означает, что средняя вероятность двойни при случайной попытке разведения равна 17.36%.
Верхние % кошек Фертильность >=
50% 1.0732
25% 1.125
10% 1.171
5% 1.194
2% 1.214
1% 1.224
0.1% 1.242

История версий

v1.0.20689

  • Исправлена небольшая проблема с шансами, связанная с тем, как стимуляция влияет на родителя с классовой пассивной способностью, но без классовой активной способности.

v1.1.21016 (Beta)

  • Исправлены некоторые проблемы с большими отрицательными значениями стимуляции.
  • Исправлено поведение стимуляции: раньше она считала врожденные дефекты родителей так же, как положительные мутации. Теперь более высокая стимуляция снижает шанс наследования врожденных дефектов родителей.
  • Эффекты стимуляции теперь уменьшаются тем сильнее, чем более инбредным является котенок.
  • Шансы унаследовать врожденный дефект родителя значительно увеличиваются тем сильнее, чем более инбредным является котенок.
  • Шанс унаследовать голос от родителя теперь составляет 75% вместо 98%.

Примечания

<references />