[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Браузерные » My Lands » Механика разрушения зданий
Механика разрушения зданий
dextermanruДата: Пятница, 15.01.2016, 23:56 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 0
Статус: Offline
Разрушение зданий - миссии, отправляемые на вражеские владения с целью уничтожения построек противника. Разрушать здания можно в городских посёлках, копи и в солёном озере.
Не путать с разрушением лагеря.

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

Механизм.
Чтобы повредить здание на один уровень, необходимо нанести required_damage единиц урона. Изначально это число равно 200. Далее случайным образом определяется, будет ли оно повреждено или нет.
После разрушения здания могут принять состояние из диапазона значений [0;lvl], где lvl - уровень здания. Если здание уже повреждено, за lvl берется его состояние. Далее:
  • если урон отсутствует, то вероятность получить после боя состояние lvl равна 100%;
  • если урона хватает на повреждение dmg уровней здания, то вероятность получить состояние lvl уменьшается на (dmg/lvl)*100%, при этом возникает вероятность получить состояния из интервала [lvl-1;lvl-dmg] - им присваивается шанс (1/lvl)*100%.
    Пример: есть здание 5 уровня, на него приходится урон, способный повредить 3 уровня. Тогда шанс получить состояние 100% уменьшается на (3/5)*100% и становится равен 40%, а шансы получить состояния [4;2] становятся равны (1/5)*100%=20%

Исходя из этого следует, что если на какое-то здание пришлось lvl dmg (хватило урона на разрушение всех уровней), то минимум на один уровень здание повредится.
Пример: есть здание 5 уровня, на него приходится урон, способный повредить 5 уровней. Тогда шанс получить состояние 100% уменьшается на (5/5)*100% и становится равен 0%, а шансы получить состояния [4;0] становятся равны (1/5)*100%=20%
Если урона хватает на повреждение части зданий, то здания повреждаюстя поочерёдно, т. е. не может быть например такого, что на все здания пришлось менееlvl урона, всегда на часть зданий будет приходиться полный урон и ещё на одно здание придётся остаток урона.
Пример: есть 3 здания 5 уровня, на них приходится урон, способный повредить 12 уровней зданий. В таком случае на два здания придётся 5 уровней урона, и на одно здание - 2 уровня, и никак иначе.
Если урон не кратен required_damage, то остаток преобразуется либо в 0, либо в required_damage урона. Вероятность преобразования его в большую сторону равна (extra_damage/required_damage)*100%, где extra_damage - остаток.
Если dmg=0, extra_damage не равен нулю и менее required_damage, то он всегда округляется до required_damage.

Вот как распределятся вероятности для зданий разных уровней при достаточном уроне:


Код
Уровень 1
Состояние|__0%|100%|
_____Шанс|100%|__0%|

Уровень 2
Состояние|__0%|_50%|100%|
_____Шанс|_50%|_50%|__0%|

Уровень 3
Состояние|__0%|_33%|_66%|100%|
_____Шанс|_33%|_33%|_33%|__0%|

Уровень 4
Состояние|__0%|_25%|_50%|_75%|100%|
_____Шанс|_25%|_25%|_25%|_25%|__0%|

Уровень 5
Состояние|__0%|_20%|_40%|_60%|_80%|100%|
_____Шанс|_20%|_20%|_20%|_20%|_20%|__0%|

Уровень 6
Состояние|__0%|_16%|_33%|_50%|_66%|_83%|100%|
_____Шанс|_16%|_16%|_16%|_16%|_16%|_16%|__0%|

Уровень 7
Состояние|__0%|_14%|_28%|_42%|_57%|_71%|_85%|100%|
_____Шанс|_14%|_14%|_14%|_14%|_14%|_14%|_14%|__0%|

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

Баффы позволяют провести дополнительный раунд разрушения зданий. Для каждого здания рассчитывается отдельно, будет ли оно дополнительно повреждено или нет. Если бафф не превышает 100%, то дополнительный раунд будет проведён с вероятностью, равной баффу. Если бафф более 100%, то гарантированно проводится один или несколько раундов (их число равно количеству сотен в шансе), а затем производится случайный рассчет по остатку - будет ли проведён еще один раунд. Помните, что если повреждённое здание повторно повреждается, за lvl берётся его текущее состояние.

Дебаффы дают равный дебаффу шанс того, что здание не повредится вообще. Алгоритм будет выглядеть так:

Цитата
если урона хватает на повреждение dmg уровней здания, то вероятность получить состояние lvl уменьшается на ((dmg-debuff)/lvl)*100%, при этом возникает вероятность получить состояния из интервала [lvl-1;0] - берутся первые dmg значений из этого интервала и им присваивается шанс ((1-debuff)/lvl)*100%


Если в атаке участвуют несколько игроков, за итоговый бафф повреждения берётся среднее от баффов всех атакующих, с учётом действия дебаффов защитника на каждом атакующем.
Пример: есть укрепление зданий (-60%), идут двое атакующих, один из них с тараном (+100%). Тогда бафф одного атакующего будет +40%, второго -60%. Среднее значение -10%.
 
SnorkДата: Суббота, 16.01.2016, 01:38 | Сообщение # 2
Группа: Гости





Добавлю уточнение.
При победе повреждается минимум один lvl здания. Если здание 1ур - оно гарантированно разрушается, даже если урона не достаточно. Например 1 нос с вероятностью 100% разрушит укреп 1ур (или любое другое, без посторонних модификаторов). По идее 1 выживший нос тоже должен разрушать (лично не проверял).
 
Форум » Браузерные » My Lands » Механика разрушения зданий
  • Страница 1 из 1
  • 1
Поиск: