иммиграция с учетом пантеона
общая формула конверсии в религию:
процент конверсии x = 100/p где p - население города после иммиграции, применяется ко всем представленным в городе религиям (см пример с копенгагеном выше).
алгоритм религиозной миграции:
1. если мигрирует атеизм - делаем конверсию в атеизм.
2. если мигрирует пантеон - смотрим, основал ли владелец города пантеон player:HasCreatedPantheon().
2.a. если основал - делаем конверсию в пантеон.
2.b. если не основал - делаем конверсию в атеизм.
3. если мигрирует религия - смотрим, есть ли в городе пантеон (число последователей пантеона > 0)
3.a. если пантеона нет - конвертируем в религию.
3.b. если пантеон есть, производим специальную конверсию (не пользуемся общей формулой конверсии):
- сохраняем число атеистов и язычников в городе: af, pf
- конвертируем 100*(1+1/pf)% пантеона в атеизм
- конвертируем 1 атеиста в религию, x = 100/(af+pf+1)
- конвертируем pf атеистов назад в пантеон, x = 100*pf/(af+pf)
пример:
целевой город - 3 жителя, 100 очков атеизм (1п), 200 очков пантеон (2п)
af = 1, pf = 2.
приезжает индуист.
конвертируем 100*(1+1/pf)=150% пантеона в атеизм, получаем 400 атеизма, 0 пантеона (очки давления не могут уйти в минус)
конвертируем атеиста в религию, x = 100/(1+2+1)=25% = 100 очков получает индуизм, в атеизме остается 300
конвертируем атеистов в пантеон, x = 100*2/(1+2)=67% или 201 очков
результирующее распределение:
4 жителя, 100 индуизм (1п), 100 атеизм (1п), 201 пантеон (2п)
эмиграция с учетом пантеона
если в городе есть пантеон,
1. сохраняем исходное число атеистов и язычников af, pf
2. сливаем 100% пантеона в атеизм и дальше делаем по обычному алгоритму (см пост №55); при эмиграции язычника перелив в другие религии будет делаться из атеизма.
3. по окончании конвертируем атеистов назад в пантеон:
3.a. если эмигрировал атеист, x = 100*pf/(pf+af-1)
3.b. если эмигрировал язычник, x = 100*(pf-1)/(pf-1+af)
3.c. иначе x = 100*pf/(pf+af)
ps я думаю этот алгоритм мне самому нужно будет закодировать, займусь этим послезавтра






Ответить с цитированием