ItemRoulette

ItemRoulette

Рефакторинг с учётом комментария от @RoBoT:
  • array_sum() вместо foreach(). Действительно, чего это я?
  • Теперь loot() возвращает только массив. Вариант со строкой выглядел как частный костыль. В связи с чем удалены более не используемые getOne() и getMany().
  • Отказ от метода setItems() в пользу публичного свойства $items. Сеттер при отсутствии какой-либо логики только усложняет восприятие ничего не давая взамен. Переубедите меня.
  • Дополнительные проверки "на дурака".
  • Видно, что никто этим не пользуется. В коде был недочищенный огрызок старого функционала (переменная $multiplier), которая сыпала ошибками, но никто не замечал.

Короче откатил половину изменений версии 1.1. :LOL:
  • Замена цикла for на функцию pow();
  • Функция countDecimals() заменена на randMax(), выполняющую более комплексную задачу благодаря использованию pow();
  • Добавил комментарии ко всем функциям;
  • Функция getMany(), больше не отдаёт больше предметов чем требуется;
  • Добавлена возможно получать на выход строчное значение одного предмета, на случай когда нужно только одно значение, а не массив;
  • Функция roll() больше не возвращает неиспользуемый null;
Сверху