Челенж по выполнению заданий от пикабушников №1
Реквестирую:
Генератор рандомного дерева навыков для Rpg.
Мелкие пассивки и ключевые навыки, что за навыки пофиг, лишь бы строились более менее осмысленно.
Этот запрос показался мне самым понятным с точки зрения постановки задачи, поэтому взялся за него. Я делал на гейм-обжектах, но в принципе и UI нарисовать таким макаром можно.
графика, конечно, так себе. Но вроде функционал готов.
Легендочка:
синий - это рут обжект (по задумке какая-то отправная точка, но ничто не мешает заменить на обычный скилл)
зелёный - активный скилл
красный - пассивный скилл, зависящий от этого скила.
Вся эта штука спокойно масштабируется в любое количество шагов.
Есть ещё некоторые косметические недоделки: начальная точка расположения всегда справа, но для этого можно добавить рандомизатор, что разнообразит рисунок дерева в целом; нет графики; ничего не юзабельно, само собой :D
Управляется всё это дело вот такой вот штукой:
Префабы рут объекта (центрального), главного скила + его цвет, пассивного скила + его цвет, связи + цвет
MaxBranches - это вектор 2, минимальное кол-во веток из узла и максимальное количество веток (Random.Range выбирает из этого диапазона для каждого узла)
SkillDistance - расстояние от одного скила до другого (это флоат, в юнитёвских единицах)
TreeSteps - кол-во шагов в каждой ветке (если макс брэнч выпадет 0 - ветка прервётся)
MaxPassiveSkill - это вектор 2, минимально кол-во пассивных скилов (красных квадратиков) и максимальное.
SubSkillDistance - расстояние от центра активного скила (зеленого), до центра пассивного (красного).
Код получился длинным, аж на 130 строк, но основной кусок здесь
Есть ещё косяк с хранением всего этого дела. А именно: я передаю инфу через пару листов, для пошаговой генерации. И голова уже не варит, как это организовать правильнее :D
Графически, конечно, не очень впечатляет, но в целом работает. Дерево генерится, всё хорошо. Кроме времени генерации ) Большие на 10+ шагов деревья просаживают фпс до 15 ^_^
Спасибо за отзывчивость. К сожалению все запросы я просто физически не успею выполнить, а тема станет бессмысленной, если не будет предложений. Поэтому предлагайте. Кто больше лайков наберёт - того и тапки для следующего челенжа.
Я подумал что речь была не только о дереве, но и о работающей прокачке умений, описании и тд.
Типа навык "сильный удар" от него разветвления с улучшениями характеристик навыка, возможно несколько взаимоисключающих веток (выбрал одну, вторая заблокировалась) и тд.
Мил человек, ты про- path of exile, вообще слышал что то?
Почему так мало плюсов? Его попросили - он сделал. И сделал оперативно. Нефиг придираться что это дерево не как в PoE... там не 1 десяток человек трудится над балансом и механикой , а тут просили рандомизатор. Однозначно плюс!
Не забудь : взял память-отдай.На ui и прочих гавнофреймфорках это в порядке вещей.А велосипед придумывать не надо.Легион этих систем.