![]() |
|
||||||||||
|
|||||
|
.
|
Цитата:
ShopItem имплементит IComparator, с его методом compare. Метод принимает список ComparisonObject и возвращает Boolean (подошло/не подошло). У каждого магазина, его коллекции ShopItem'ов, самого ShopItem есть ссылка на User. User поддерживает интерфейс IComparable, метод которого getComparisonList(глагол):Vector.<ComparisonObject>, возвращает список доступных для сравнивания ComparisonObject; getComparisonList извлекает предварительно подготовленные списки ComparisonObject. Их формированием и обновлением занимается сам IComparable, правила для этого находятся в нем. Сама проверка можно ли купить предмет, с учетом скилов User и количества требуемой валюты сводится к одной строке Коллекция ShopItem -- ShopItemCollection тоже поддерживает интерфейс IComparator; Достаточно накидать в нее некоторое количество shopItem, а затем и с ней провести сравнение. const canBuyItems:Boolean = shopItemCollection.compare( shopItemCollection.user.getComparisonList(покупать) ); Итак, можно сравнивать все и вся, лишь бы была коллекция условий и то, с чем сравниваем. Можно померяться скилами UserData с коллекцией UserCollection. Вот как-то так я это сделал. |
![]() |
Часовой пояс GMT +4, время: 12:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|