Наличие тар в оффе передает нам дополнительных 2 коэффициента (а не 1, как везде написано). k1 - уровень стены, на которой бой собственно идет и k2 - уровень стены, который остался уже после разрушения (они рассчитываются независимо и в разное время боя; (на определенных диапазонах прослеживается зависимость, но она связана с тем, что k1 и k2 имеют своим источником собственно количество таранов)
k1: Коэффициент реального уровня стены в бою (тары снижают потери оффа).
Рассчет k1: k1=s-t/z, где s - уровень построенной стены, t-число тар, z-некий коэффициент прочности стены (z=произв. по i , i=2..20, 2,18(*1,09 i раз)
Ограничения на коэфф. : k1>=math.round(s/2)
k2: Коэффициент, дающий нам то, что от стены осталось (или не осталось).
Рассчет k2: k2=s-r/z, где s и z совпадают с рассчетами из k1, а r считается в 2-х вариациях (r1 или r2).
r1=t-t/2*w, где w - общий процент потерь оффа (на него дает влияние и k1, это не константная величина)
r2=t-w/2*d, где d - общий процент потерь дефа (на него, как и на w дает влияние k1, собственно в этом и разница между k1 и k2).
r1 или r2 выбирается в зависимости от w, при w<1 берется r1, при d<1 берется r2 (d и w не могут быть одновременно >1 в силу того, что дохнет всегда либо что-то одно (офф или деф), либо офф и деф сразу, но при этом достигается w=d=1, что даст прохождение по стене 50% таранов от начального значения (t/2), можно заметить, что при этом r1=r2. В принципе я думаю, что можно свести r1 и r2 к какому-то общему, но у меня и так работает
Итог: правда состоит в том, что тары ломают стену
после боя, а не до него, как у нас тут где-то было написано. По технической части r - предпоследний рассчитываемый коэффициент, после него считается только прохождение кат, (между формулами есть некоторые отличия в плане констант, но общий смысл у них одинаков)
Бой: Ввод данных->Определение k1->Рассчет боя->Определение k2 и p2, где p2 - рассчет кат вместо таранов.->Выдача результата.