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

WC3




Ред. konvan5
Если порядок не важен - при удалении карты из массива - просто перемещаем последний элемент в позицию удаляемого и уменьшаем размер массива на 1. Так сохраним пул не полученных карт.
А идея с массивом хорошая!
Айди исследования это тот же инт, который отлично сохраняется в хеше.
Костылить через itempool это пик гения картодельства в варике, кек.
Да и я бы не использовал улучшения, т.к. их можно только повышать, то есть с 1 лвл ты не сможешь опустить на нулевой.