[Java] Вопрос о проверке

finfan

Выдающийся
Местный
Сообщения
93
Розыгрыши
0
Репутация
565
Реакции
149
Баллы
1 335
Вечер бодрый.

Интересует такая вещь.
Если enum WeaponType, с конструктором типа: WeaponType(atkType)
У каждого оружия свой тип урона но у некоторых типов оружия есть 2 типа разного урона. Как пример:
DAGGER(PIERCE)
POLEARM(CUT | PIERCE)
atkType - int примитив похожий на это
Код:
    public static final int ATYPE_CUT = 1;
    public static final int ATYPE_CRUSH = 2;
    public static final int ATYPE_PIERCE = 4;
    public static final int ATYPE_SLASH = 8;
    public static final int ATYPE_ARROW = 16;

Как сделать проверку для POLEARM(CUT | PIERCE), которая будет учитывать что оружие имеет и CUT и PIERCE?
Делал-делал и запутался. Единственный выход, который нашёлся это:
Код:
switch(atkType) {
     case 5:
        //обработка
        return;
}
Но это бред какой-то.

Смысл в том, что каждый тип урона имеет свои плюхи, есть оружие (типа POLEARM) способное выпуливать 2 типа урона одновременно и проникающий(PIERCE) и режущий (CUT), но как правильно обработать это всё дело?

Спасибо!
 
Код:
if((atkType & ATYPE_CUT) == ATYPE_CUT && (atkType & ATYPE_PIERCE) == ATYPE_PIERCE)
{
   //обработка
}
 
Назад
Сверху Снизу