Сражение и фарм ресурсов NFT персонажами
Победивший в сражении Дом постепенно накапливает баф на все характеристики своих персонажей с каждой новой победой подряд! Проигравшие Дома накапливают дебаф.
if last_round_winner == nft.house:
buff_koef *= 1 + winner_combo_count * 0.1
else:
buff_koef *= 1 - winner_combo_count * 0.1
Игрок может отправить свои NFT сражаться и в случае победы того Дома, к которому относится NFT, её можно послать добывать ресурсы! Персонажи, вошедшие в ТОП 10 по итогам сражения, получают награду до нескольких тысяч золотых! Выжившие в сражении так же получают золото!
Чтобы отправить персонажа в сражение, надо заплатить золото за его оснащение. Первый раз это дороже, далее если его убивают на дуэли, переотправка примерно вдвое дешевле. Но при этом цена отправки в сражение растёт с приближением конца раунда!
После сражения все участвовавшие NFT победившего Дома могут пойти добывать ресурсы. Количество ресурсов, которое сможет добыть персонаж на фарме после сражения, зависит от его характеристик и времени, которое он провёл на добыче. Чем раньше вы отправили свои NFT на фарм после победы их Дома, тем больше они смогут добыть!
Ещё один фактор, который влияет не добычу - как долго длился раунд. Если он завершился досрочно, пул добычи будем пропорционально уменьшен. Всего на каждый раунд для фарма отводится всё золото, которое было у проигравших Домов в этом раунде и если эта сумма менее 10 000, игра автоматически пополнит пул до данного значения!
Для того, чтобы добывать ресурсы, ваша NFT должна участвовать в сражении и её Дом должен победить в раунде. Если же раунд окончился ничьей, пул золота формируется из сумм поддержки всех трёх Домов и добывать ресурсы могут все NFT, даже если они не были в сражении!
Изгои могут добывать ресурсы только при победе Дома, к которому они не относятся! Либо при ничьей.
Animal и Mech могут добывать ресурсы при победе любого Дома!
Во время фарма персонажи так же могут с неким шансом добыть редкие кристаллы, сила которых зависит от редкости NFT, добывшей его.
nft_round_weight = (time_now - nft.farm_start) / round_length
farm_power = (nft.power ^ 1.75 + nft.stamina ^ 2 + nft.agility * nft.intelligence / 7) * ((nft.grade / 1.75 + nft.rarity * 4) ^ 1.85 / 100 + 1)
luck_bonus = random(0, nft.luck) ^ 1.5
nft_farm_power = farm_power * (luck_bonus / 100 + 1) * nft_round_weight
Дерутся сотни персонажей, игра знает только их параметры и кто из них какой Дом послан атаковать. Всё остальное - случайность. И чтобы она была максимально реалистична, сделано так, что каждый бой внутри большого сражения выбираются по одному случайному персонажу из каждого Дома, как если бы они оказались в бою рядом и начали атаковать друг друга.
Далее каждый наносит кому-то из тройки урон, согласно своим характеристикам и с учетом общей суммы черных камней Дома и суммы снабжения, которую Дому передали игроки в раунде.
При выборе цели сначала персонаж пытается найти тот Дом, который его отправили атаковать. Если такой противник вдруг не найден, атакуется случайный любой другой, в том числе может ударить сам себя, растерявшись в бою. Этот вариант так же в целом имитирует любые случайности в сражении, которые могут привести к гибели не по плану.
Далее выживает один персонаж, который получил урона меньше других, он продолжает сражаться, но не первым, а так же в тот момент, когда снова случай отберёт его в тройку.
Персонажи, которые уже прошли бой, накапливают урон в размере трети от того, который получили внутри боя "тройки". То есть те, кто выжил, понемногу ослабевают в следующих тройках. По итогам боя урон далее не переносится, он используется только в момент расчёта сражения!
Ранения, полученые на дуэлях, учитываются при финальном сражении! Убитые на дуэли перосонажи участвуют в сражении, но ослаблены.
power = ((nft.power ^ 2.25 + (nft.agility * 1.5 + nft.intelligence) * (nft.luck / 3 + nft.stamina / 2)) / 100) ^ (1 + (nft.rarity * 7 + nft.grade) / 50)
if nft.dead_in_duels:
power = power / 4
else:
power = power * (1 - nft.hits / 100)
nft_power = random(power/2, power)
В конце сражения ТОП 30 лучших по числу побеждённых противников получают крупную награду золотом с учётом числа своих побед за сражение! Награду так же получают все выжившие, в зависимости от их количества и удачи.
random(50, 300) * wins
random(50, 200) * nft.luck / 70 / battle_winners_count * 10
Last updated