Цитата:
|
Скорее, один массив + булевы значения слотов занятости.
|
В этом нет смысла. Если что-то надето, его надо просто снять. Глупо выводить какие-то окна с сообщениями "Вы не можете надеть шлем, пока не сняли шапку". Шапку надо просто автоматически снять и надеть шлем. Поэтому знать какие-то тру не имеет смысла, должна храниться ссылка на надетый предмет, чтобы тут же его передать в функцию-ликвидатор, которая освободит слот(ы) и пересчитает бонусы.
Добавлено через 5 минут
Цитата:
|
Не даёт мне покоя потенциальная проблема с двойным счётом эффектов от шмотья
|
Ну здесь же две разные задачи: считать эффекты и разбираться с возможностью добавления новой вещи. Вполне оправдано иметь разные "базы данных" — реестр вещей и реестр слотов — для этих разных задач.
Добавлено через 10 минут
При добавлении одёжки-мультислота тоже будет парадокс: типа удалил шляпу и добавил в этот слот мантию с капюшоном. Но она заняла и слот куртки и слот брюк, а тебе надо проверить эти слоты после шляпы, потому что в мантии указаны три занимаемых слота. Ты проверяешь слот куртки и удаляешь мантию))) и добавляешь ее в слот куртки? а потом та же история со слотом штанов. Удаляешь мантию из слота штанов и добавляешь туда мантию. Процессы то не всегда одноточечные, иногда они пошаговые))) Но ты разберешься.