package l2p.gameserver.enums.skills;
public enum OperateType implements IOperateType
{
NONE(T_PASSIVE),
A1(T_ACTIVE), // умения только с эффектами мгновенного действия
A2(T_ACTIVE), // умения только эффектами длительного действия, так же могут быть и эффекты мгновенного действия
A3(T_ACTIVE), // то же что и A2, но если есть self_effect, то он применяется только если есть цели для основного эффекта (?)
A4(T_ACTIVE), // если на цели уже есть эффект от умения, то пытается наложить эффект от умения уровнем выше
A5(T_ACTIVE), // умение, вызываемое специальной аурой
A6(T_ACTIVE), // умение, вызываемое аурой синергии
AP(T_ACTIVE), // используется в некоторых хербах (эффект херба действует на все пати?)
CA1(T_ACTIVE | T_CHANNELING), // вызывает во время каста tick_effect, в первый раз через channeling_start после начала каста и потом с периодом в tick_interval
CA2(T_ACTIVE | T_CHANNELING), // пытается наложить на цели эффекты умения из attached_skill, в первый раз через channeling_start после начала каста и потом с периодом в tick_interval
CA5(T_ACTIVE | T_CHANNELING), // то же что и CA2, но каст прерывается с 100% шансом при получении урона кастующим
DA1(T_ACTIVE), // то же что и A1, но с эффектом прыжка/чарджа вперед в начале каста
DA2(T_ACTIVE), // то же что и A2, но с эффектом прыжка/чарджа вперед в начале каста
DA3(T_ACTIVE), // то же что и A2, но с эффектом прыжка/чарджа назад в начале каста
DP1(T_ACTIVE), // используется в умении вызова на дуэль 1 на 1 у тира (особенности?)
AU(T_TOGGLE), // специальные ауры, периодически вызывающие другие умения, обычно умения A5/A6
T(T_TOGGLE), // переключаемое умение
TG(T_TOGGLE), // переключаемое умение, входящее в группу с другими такими умениями (одновременно может работать только одно умение из группы)
P(T_PASSIVE), // пассивное умение
RP(T_PASSIVE); // пассивное умение алхимии
private final int _flags;
private final boolean _active;
private final boolean _toggle;
private final boolean _passive;
private final boolean _channeling;
OperateType(int flags)
{
_flags = flags;
_active = (flags & T_ACTIVE) == T_ACTIVE;
_toggle = (flags & T_TOGGLE) == T_TOGGLE;
_passive = (flags & T_PASSIVE) == T_PASSIVE;
_channeling = (flags & T_CHANNELING) == T_CHANNELING;
}
public boolean checkFlag(int flag)
{
return (_flags & flag) == flag;
}
public boolean isActive()
{
return _active;
}
public boolean isToggle()
{
return _toggle;
}
public boolean isPassive()
{
return _passive;
}
public boolean isChanneling()
{
return _channeling;
}
}