package client.status;
import client.MapleDisease;
import constants.GameConstants;
import handling.Buffstat;
import java.io.Serializable;
public enum MonsterStatus implements Serializable, Buffstat {
WATK(0x1, 1),
WDEF(0x2, 1),
MATK(0x4, 1),
MDEF(0x8, 1),
ACC(0x10, 1),
AVOID(0x20, 1),
SPEED(0x40, 1),
STUN(0x80, 1),
FREEZE(0x100, 1),
POISON(0x200, 1),
SEAL(0x400, 1),
SHOWDOWN(0x800, 1),
WEAPON_ATTACK_UP(0x1000, 1),
WEAPON_DEFENSE_UP(0x2000, 1),
MAGIC_ATTACK_UP(0x4000, 1),
MAGIC_DEFENSE_UP(0x8000, 1),
DOOM(0x10000, 1),
SHADOW_WEB(0x20000, 1),
WEAPON_IMMUNITY(0x40000, 1),
MAGIC_IMMUNITY(0x80000, 1),
DAMAGE_IMMUNITY(0x200000, 1),
NINJA_AMBUSH(0x400000, 1),
VENOMOUS_WEAPON(0x1000000, 1), //BURN
DARKNESS(0x2000000, 1),
HYPNOTIZE(0x10000000, 1),
WEAPON_DAMAGE_REFLECT(0x20000000, 1),
MAGIC_DAMAGE_REFLECT(0x40000000, 1),
NEUTRALISE(0x2, 2),
IMPRINT(0x4, 2),
MONSTER_BOMB(0x8, 2),
MAGIC_CRASH(0x10, 2),
TRIANGULATION(0x8000, 2),
STING_EXPLOSION(0x10000, 2),
EMPTY(0x8000000, 1, true),
SUMMON(0x80000000, 1, true), //all summon bag mobs have.
EMPTY_1(0x20, 2, false), //chaos
EMPTY_2(0x40, 2, true),
EMPTY_3(0x80, 2, true),
EMPTY_4(0x100, 2, true), //jump
EMPTY_5(0x200, 2, true),
EMPTY_6(0x400, 2, true),
EMPTY_7(0x2000, 2, true);
static final long serialVersionUID = 0L;
private final int i;
private final int first;
private final boolean end;
private MonsterStatus(int i, int first) {
this.i = i;
this.first = first;
this.end = false;
}
private MonsterStatus(int i, int first, boolean end) {
this.i = i;
this.first = first;
this.end = end;
}
public int getPosition() {
return this.first;
}
public boolean isEmpty() {
return this.end;
}
public int getValue() {
return this.i;
}
public static final MapleDisease getLinkedDisease(final MonsterStatus skill) {
switch (skill) {
case STUN:
case SHADOW_WEB:
return MapleDisease.STUN;
case POISON:
case VENOMOUS_WEAPON: // BURN
return MapleDisease.POISON;
case SEAL:
case MAGIC_CRASH:
return MapleDisease.SEAL;
case FREEZE:
return MapleDisease.FREEZE;
case DARKNESS:
return MapleDisease.DARKNESS;
case SPEED:
return MapleDisease.SLOW;
}
return null;
}
}