# Эволюция звёзд Owniverse.GI Механики перенесены из Owniverse.U с согласованными изменениями GI: постепенные партии, детерминированные дробные остатки, уязвимость цивилизаций до C1.2 и передача выживших планет преемнику. Баланс таблицы GI сохраняется. ## Порядок расчёта 1. Накопить игровое время; обработать новые десятые доли года. 2. Рассчитать производство существующих объектов за интервал с учётом их постепенного исчезновения; выполнить автоматическое создание звёзд и их планет. 3. Для очередного поколения определить долю заканчивающих жизнь звёзд. Применить локальное разрушение их планет до списания партий. 4. Снять целые объекты из партий, рассчитать основные и альтернативные выходы с накоплением дробей. 5. Передать выжившие планеты полученным звёздам/остаткам. Если преемников несколько, распределить по их фактическим количествам; если преемника нет — освободить. Остальные связанные объекты используют существующие правила GI. 6. Создать партии преемников. Учесть производство новорождённых за оставшуюся часть длинного шага, включая излучение короткоживущих сверхновых. 7. Применить суммарный бласт поколения; повторять обработку поколений, пока в интервале остаются переходы. 8. Пересчитать группы и опубликовать состояние. ## Постепенные партии Окно рождения шириной `w = lifespan / 40` при `lifespan > 10`, иначе `w = lifespan`. Окно превращения сдвинуто на `lifespan`. При частичном списании: ``` expected = remainder + (remaining_count - remainder) * elapsed / remaining_window converted = floor(expected) remainder = expected - converted ``` Конец окна списывает остаток. Переход не уничтожает всю партию в начале окна. Начала и длительности сохраняют модель GI, включая годовую длительность событий SN/GRB. ## Планеты При ручном и автоматическом создании звёзд: ``` expected = stars_created * planet_amount * planet_chance * metallicity + remainder planets_created = floor(expected) remainder = expected - planets_created ``` Остаток независим для каждой пары звезда/планета и сохраняется. Планеты сразу связаны со звездой. Эволюционный переход сам по себе не создаёт новую планетную систему. Шансы планет в таблице — доли, а проценты альтернативных выходов звёзд делятся на 100. ## Среда: адаптация формул Unity к состоянию GI GI не хранит накопленные счётчики первичной материи Unity. Поэтому `stellar_environment()` вычисляет среду из текущего физического состава, включая связанные объекты, без суммирующих групп интерфейса. Это приближение для баланса GI, а не побитовое воспроизведение Unity. - `M` — свободные и связанные H/He/Met плюс табличная масса конкретных объектов и масса SMBH. - `V` — физическое S плюс табличный объём объектов и `voids * 1e22`. - `Z = max(0, 0.4 * ln(100 * free_Met / M + 0.11) + 0.88)`; при `M = 0` металличность нулевая. - `B = 65536 * f(M)`, где `f(0)=1`, `f(M)=M^0.1` при `0