Делаю адаптацию карточной игры, и такой момент, что игрок получает в ход определенные карты, реализованые в виде апгрейдов, которые потом подвязаны в триггеры, используются и уходят в "сброс". Таких улучшений около 100, и вот вопрос, как их лучше выдавать игрокам в случайном порядке, чтобы у нас сохранялся пул и рандом, не прописывать же 100 if then else'ов.
Можно было бы использовать itempool, но получается что надо в таком случае задублировать все их в виде предметов. В теории возможно, также сделать и при получении - открытие доступа к улучшению, и удаление предмета, но тоже выходит много if'ов.
В хэштаблицах также не увидел возможности сохранения апгрейда.

Не до конца понял суть проблемы, но думаю тебе стоит использовать массивы. Они полностью под твоим контролем. Случайный объект - это случайный индекс - целое число от 1 до размера массива.
Если порядок не важен - при удалении карты из массива - просто перемещаем последний элемент в позицию удаляемого и уменьшаем размер массива на 1. Так сохраним пул не полученных карт.

Если карты это юниты - можно использовать группу юнитов и выбирать случайного юнита, удаляя из группы, сохраняя пул.
`
ОЖИДАНИЕ РЕКЛАМЫ...
27
Принятый ответ
Не до конца понял суть проблемы, но думаю тебе стоит использовать массивы. Они полностью под твоим контролем. Случайный объект - это случайный индекс - целое число от 1 до размера массива.
Если порядок не важен - при удалении карты из массива - просто перемещаем последний элемент в позицию удаляемого и уменьшаем размер массива на 1. Так сохраним пул не полученных карт.

Если карты это юниты - можно использовать группу юнитов и выбирать случайного юнита, удаляя из группы, сохраняя пул.
4
В том и дело, что апгрейды было проблемно отследить и потом использовать, и как теперь выяснилось - совсем не подходят, так как их нельзя отменить изученные.
А идея с массивом хорошая!
13
Я не понял для чего там ваще апгрейды, как это реализовано и почему именно апгрейды, когда есть более удобные инструменты.
Айди исследования это тот же инт, который отлично сохраняется в хеше.
Костылить через itempool это пик гения картодельства в варике, кек.
Да и я бы не использовал улучшения, т.к. их можно только повышать, то есть с 1 лвл ты не сможешь опустить на нулевой.
4
IzobretatelBoom, выбрал апгрейды, так как их удобно было бы выбирать в здании, места много, а также потом проверять выбран он или нет. Про то что разучить только сейчас узнал.... Действительно тогда лучше абилками и уже триггерно отслеживать, что выбиралось.
Загруженные файлы
13
LosKalmaros, Самый лучший вариант для кнопок это найм дамми-юнитов, которых сразу после покупки удаляешь. Если через абилки будешь делать, то используй "каналы" с разными айди
Чтобы оставить комментарий, пожалуйста, войдите на сайт.