Я реализовал класс инвентаря-сумки и инвентаря-надетых вещей. Между ними реализованы все операции. Теперь думаю над тем, как наделить каждый предмет так сказать индивидуальностью.
Есть базовый класс Item. Каждый предмет имеет свойства
Код: Выделить всё
private var itemID:uint;//ID в некой таблице предметовprivate var price:uint;//ценаprivate var description:String = "Обычный предмет";//Описание private var typeItem:String;//Тип предмета, например, = "armor"private var imageName:String;//Путь к изображению для иконки предмета
Код: Выделить всё
public function Item(_itemID:uint) { itemID = _itemID; init();}
Код: Выделить всё
if (itemID >= 0 && itemID < 1999){ typeItem = "Armor"; imageName = "armor.jpg"; price = 100; description = "Хорошая броня. Стоимость: " + String(price) + ". Вес: " + weight;} else if (itemID >= 2000 && itemID < 3999) { typeItem = "Gun"; ... } else if ...
Более важный для меня вопрос состоит в том, как предмет должен передавать свои свойства игровому персонажу при надевании.
Например, персонаж обладает рядом характеристик: жизнь, броня, урон, крит, уворот и пр.
Я надеваю на него броню, которая обладает характеристиками: жизнь, броня. При надевании как-то должны измениться характеристики персонажа. Я могу, конечно сделать что-то вроде персонаж.setHP(armorHP) и т.д. для каждой из характеристик. А если у всех предметов разные характеристики? Например, один щит повышает только здоровье, а другой повышает броню и уворот. Как это реализовывать? Я плохо представляю себе как реализовать класс персонажа и надевание на него предметов. Сами надетые предметы находятся в классе инвентаря-надетых вещей. Резюмирую:
1. Как наделить каждый предмет индивидуальностью? Нужно создавать для каждого предмета свой класс?
2. А если предметов сотни? У меня возникала идея воспользоваться декоратором. Правда, не знаю что из этого выйдет.
3. Или же каждому предмету задавать полный набор характеристик: жизнь, броня, урон, крит, уворот, и если предмет добавляет только броню, то остальные приравнять нулю.
4. Как собственно создать класс персонажа, чтобы в нем была информация пусты ли слоты инвентаря-надетых вещей, и чтобы добавлять характеристики надетых вещей.
5. Есть ли у кого-нить рабочий пример? Гуглил по-русски - не нашел ничего. А на англоязычных искать не получается. Если кто готов поделиться своими разработками (хотя бы в личку), то я буду очень признателен. Хочется просто увидеть, как это делается у грамотных людей. Хотя бы какие-то базовые вещи.