package client; import handling.Buffstat; import java.io.Serializable; public enum MapleBuffStat implements Serializable, Buffstat { WATK(0x1, 1), WDEF(0x2, 1), MATK(0x4, 1), MDEF(0x8, 1), ACC(0x10, 1), AVOID(0x20, 1), HANDS(0x40, 1), SPEED(0x80, 1), //d JUMP(0x100, 1), //d STATUS_RESIST(0x10, 2), ELEMENT_RESIST(0x20, 2), MAGIC_GUARD(0x200, 1), DARKSIGHT(0x400, 1), //d BOOSTER(0x800, 1), // d POWERGUARD(0x1000, 1), MAXHP(0x2000, 1), MAXMP(0x4000, 1), INVINCIBLE(0x8000, 1),//0x800000000000L ?? SOULARROW(0x10000, 1), STUN(0x20000, 1), POISON(0x40000, 1), SEAL(0x80000, 1), DARKNESS(0x100000, 1), COMBO(0x200000, 1), SUMMON(0x200000, 1), //hack buffstat for summons ^.- (does/should not increase damage... hopefully <3) WK_CHARGE(0x400000, 1), DRAGONBLOOD(0x800000, 1), HOLY_SYMBOL(0x1000000, 1), MESOUP(0x2000000, 1), Battoujutsu(0x2000000, 11), Battoujutsu2(0x80000, 11), Battoujutsu3(0x40000, 11), CRITICAL_DAMAGE(32768, 6), SHADOWPARTNER(0x4000000, 1), // d PICKPOCKET(0x8000000, 1), PUPPET(0x8000000, 1), // HACK - shares buffmask with pickpocket - odin special ^.- MESOGUARD(0x10000000, 1), HP_LOSS_GUARD(0x20000000, 1), WEAKEN(0x40000000, 1), CURSE(0x80000000, 1), SLOW(0x1, 2), MORPH(0x2, 2), RECOVERY(0x4, 2), MAPLE_WARRIOR(0x8, 2), STANCE(0x10, 2), SHARP_EYES(0x20, 2), MANA_REFLECTION(0x40, 2), SEDUCE(0x80, 2), SPIRIT_CLAW(0x100, 2), // d INFINITY(0x200, 2), HOLY_SHIELD(0x400, 2), //advanced blessing after ascension HAMSTRING(0x800, 2), BLIND(0x1000, 2), CONCENTRATE(0x2000, 2), ZOMBIFY(0x4000, 2), ECHO_OF_HERO(0x8000, 2), MESO_RATE(0x10000, 2), //confirmed GHOST_MORPH(0x20000, 2), ARIANT_COSS_IMU(0x40000, 2), // The white ball around you REVERSE_DIRECTION(0x80000, 2), DROP_RATE(0x100000, 2), //d //2 = unknown EXPRATE(0x400000, 2), ACASH_RATE(0x800000, 2), ILLUSION(0x1000000, 2), //hack buffstat //apply monster status error 38 //2 and 4 are unknown BERSERK_FURY(0x8000000, 2), Dusk_Guard(8192, 6, true), DIVINE_BODY(0x10000000, 2), SPARK(0x20000000, 2), ARIANT_COSS_IMU2(0x40000000, 2), // no idea, seems the same FINALATTACK(0x80000000, 2), //4 = unknown //0x1? ELEMENT_RESET(0x2, 3), WIND_WALK(0x4, 3), //0x8 ARAN_COMBO(0x4, 3),//0x10, 3 COMBO_DRAIN(0x8, 3),//0x20, 3 COMBO_BARRIER(0x10, 3),//0x40, 3 BODY_PRESSURE(0x20, 3),//0x80, 3 SMART_KNOCKBACK(0x40, 3),//0x100, 3 PYRAMID_PQ(0x200, 3), // 4 ? POTION_CURSE(0x800, 3), SHADOW(0x1000, 3), //receiving damage/moving BLINDNESS(0x2000, 3), SLOWNESS(0x4000, 3), MAGIC_SHIELD(0x8000, 3), // MAGIC_RESISTANCE(0x40000, 3), MAGIC_RESISTANCE(16384, 3), SOUL_STONE(0x20000, 3), SOARING(0x10000, 3), FREEZE(0x80000, 3), LIGHTNING_CHARGE(0x100000, 3), LIGHTNING(0x80, 10), ENRAGE(0x200000, 3), OWL_SPIRIT(0x400000, 3), //0x800000 debuff, shiny yellow FINAL_CUT(0x1000000, 3), DAMAGE_BUFF(0x2000000, 3), ATTACK_BUFF(16777216, 3), //attack %? feline berserk v143 RAINING_MINES(0x8000000, 3), ENHANCED_MAXHP(0x4000000, 3),//0x10000000 ENHANCED_MAXMP(0x4000000, 3),//0x20000000 ENHANCED_WATK(0x10000000, 3),//0x40000000 ENHANCED_MATK(0x20000000, 3),//0x80000000 ENHANCED_WDEF(0x40000000, 3),//0x1, 4 ENHANCED_MDEF(0x80000000, 3),//0x2, 4 PERFECT_ARMOR(0x1, 4),//0x4, 4 SATELLITESAFE_PROC(0x2, 4),//0x8, 4 SATELLITESAFE_ABSORB(0x4, 4),// 0x10, 4 TORNADO(0x20, 4), CRITICAL_RATE_BUFF(0x40, 4), MP_BUFF(0x80, 4), DAMAGE_TAKEN_BUFF(0x100, 4), DODGE_CHANGE_BUFF(0x200, 4), CONVERSION(0x400, 4), REAPER(0x800, 4), INFILTRATE(0x1000, 4), MECH_CHANGE(0x2000, 4), //0x10000000, 12 FIRE_AURA(0x80000000, 10), AURA(4096, 4), DARK_AURA(0x2000, 4), BLUE_AURA(0x4000, 4), YELLOW_AURA(0x8000, 4), BODY_BOOST(0x10000, 4),//0x40000 FELINE_BERSERK(0x20000, 4),//0x80000 OverWelming_PWR(0x80000000, 7), INDIEBOOSTER(4096, 7, true), DICE_ROLL(0x40000, 4),//0x100000 DIVINE_SHIELD(0x80000, 4),//0x200000 DAMAGE_RATE(0x100000, 4),//0x400000 TELEPORT_MASTERY(0x200000, 4),//-2 COMBAT_ORDERS(0x400000, 4),//0x1000000 BEHOLDER(0x200000, 4),//-2 ? DISABLE_POTENTIAL(0x4000000, 4), GIANT_POTION(0x8000000, 4), ONYX_SHROUD(0x10000000, 4), ONYX_WILL(0x8000000, 4),//-2 TORNADO_CURSE(0x40000000, 4), BLESS(0x20000000, 4),//-2 //1 //blue star + debuff //2 debuff but idk THREATEN_PVP(0x4, 5), ICE_KNIGHT(0x8, 5), //1 debuff idk. //2 unknown STR(0x10, 5),//-2 INT(0x20, 5),//-2 DEX(0x40, 5),//-2 LUK(0x80, 5),//-2 ATTACK(0x100, 5), //used also for kaiser majesty //-2 ANGEL(0x100, 9), //8 unknown tornado debuff? - hp INDIE_PAD(0x400, 5, true), // indiePad INDIE_MAD(0x800, 5, true), HP_BOOST(0x1000, 5, true), //0x4000 - 142 - weapon acc/magic acc pct boost MP_BOOST(0x2000, 5, true), ANGEL_ACC(0x4000, 5, true), ANGEL_AVOID(0x8000, 5, true),//0x20000 ANGEL_JUMP(0x10000, 5, true),//0x40000 INDIE_SPEED(0x20000, 5, true),//0x80000 ANGEL_STAT(0x40000, 5, true),//0x100000 PVP_DAMAGE(0x200000, 5), PVP_ATTACK(0x400000, 5), //skills INVINCIBILITY(0x800000, 5), HIDDEN_POTENTIAL(0x1000000, 5), ELEMENT_WEAKEN(0x2000000, 5), STACK_ALLSTATS(0x40000, 5), SNATCH(0x4000000, 5), //however skillid is 90002000, 1500 duration FROZEN(0x8000000, 5), //1, unknown ICE_SKILL(0x20000000, 5), //4 - debuff BOUNDLESS_RAGE(0x20000000, 5), // 1 unknown PVP_FLAG(0x2, 6), //4 unknown //8 unknown HOLY_MAGIC_SHELL(0x1, 6), //max amount of attacks absorbed //2 unknown a debuff MANY_USES(0x4, 6, true),//was40 BUFF_MASTERY(0x200, 2), //buff duration increase //was 0x80, 6 ABNORMAL_STATUS_R(0x10, 6), // % ELEMENTAL_STATUS_R(0x20, 6), // % WATER_SHIELD(0x40, 6), DARK_METAMORPHOSIS(128, 6), // mob count PIRATES_REVENGE(1048576, 4), BARREL_ROLL(0x1000, 6), DAMAGE_R(0x200, 6), MDEF_BOOST(0x2000, 6), WDEF_BOOST(0x4000, 6), SPIRIT_LINK(0x4000, 6, true), CRITICAL_RATE(0x8000, 6), //used for perspective shift VIRTUE_EFFECT(0x10000, 6), //2, 4, 8 unknown NO_SLIP(0x100000, 6), FAMILIAR_SHADOW(0x200000, 6), LEECH_AURA(0x2000000, 6), // 4 // 8 //CRITICAL_RATE(0x1000000, 6), //0x2000000 unknown //0x4000000 unknown DEBUFF? //0x8000000 unknown DEBUFF? // 1 unknown // 2 unknown ABSORB_DAMAGE_HP(0x20000000, 6), DEFENCE_BOOST_R(0x4000000, 6), // weapon def and magic def // 8 unknown // 0x1 // 0x2 // 0x4 HP_R(0x8, 7), //efficiency streamline // 0x10 UNKNOWN8(0x20, 7), // 0x40 add attack, 425 wd, 425 md, 260 for acc, and avoid // 0x80 ATTACK_SPEED(0x100, 7), //UNIGNORABLE_PDR or DAMAGE_REFLECT or ATTACK_SPEED or WATK ATTACK_SPEED2(0x100, 7, true), DAMAGE_RESIST(0x8000, 9), HP_BOOST_PERCENT(0x200, 7, true), MP_BOOST_PERCENT(0x400, 7, true), //WEAPON_ATTACK(0x800, 7), UNKNOWN12(0x1000, 7), //+ 5003 wd // 0x2000, // 0x4000, true // 0x8000 // WEAPON ATTACK 0x10000, true // 0x20000, true // 0x40000, true MP_R(0x80000, 7, true), //efficiency streamline // 0x100000 true // 0x200000 idk // 0x400000 true MOUNT_MORPH(0x100000, 7), //ion thrust 220 UNKNOWN9(0x800000, 7), KILL_COUNT(0x800000, 7), IGNORE_DEF(0x2000000, 7), DAMAGE_PERCENT(0x80000000, 7, true), PHANTOM_MOVE(0x8, 8), JUDGMENT_DRAW(0x10, 8), HYBRID_DEFENSES(0x400, 8), UNKNOWN10(0x10, 8), LUMINOUS_GAUGE(0x200, 8), DARK_CRESCENDO(0x400, 8), BLACK_BLESSING(0x800, 8), PRESSURE_VOID(0x1000, 8), LUNAR_TIDE(0x2000, 8), //hp to damage KAISER_COMBO(0x8000, 8), KAISER_MORPH_GAUGE(0x8000, 1),//Pure KMS guess.. IGNORE_MONSTER_DEF(0x10000, 5), KAISER_MODE_CHANGE(0x20000, 8), TEMPEST_BLADES(0x100000, 8), CRIT_DAMAGE(0x200000, 8), DAMAGE_ABSORBED(0x800000, 8), ENERGY_CHARGE(0x2000000, 8), DASH_SPEED(0x4000000, 12),//was 8 DASH_JUMP(0x8000000, 12),//was8 // MONSTER_RIDING(0x10000000, 8), MONSTER_RIDING(0x10000000, 10), STORM_BRINGER((int) 0x20000000000L, 3), SPEED_INFUSION(0x20000000, 8), HOMING_BEACON(0x40000000, 8), //probably changed DAMAGE_CAP_INCREASE(0x40000000, 8, true), DEFAULT_BUFFSTAT(0x80000000, 8), PRETTY_EXALTATION(0x1, 9), KAISER_MAJESTY3(0x2, 9), //UNIGNORABLE_PDR or DAMAGE_REFLECT or ATTACK_SPEED or WATK KAISER_MAJESTY4(0x4, 9), //UNIGNORABLE_PDR or DAMAGE_REFLECT or ATTACK_SPEED or WATK\ PARTY_STANCE(0x10, 9), STATUS_RESIST_TWO(0x10, 9), ELEMENT_RESIST_TWO(0x20, 9, true), BOWMASTERHYPER(0x400, 9), CRITICAL_PERCENT_UP(0x40000, 9), //critical or damage% MOON_STANCE2(0x80000000, 9), //critical or damage% ATTACK_COUNT(0x80000000, 9), EXCEED_ATTACK(0x4000000, 9), EXCEED(0x40000000, 9), DIABOLIC_RECOVERY(0x8000000, 9), BOSS_DAMAGE(0x10000, 9, true), BOSS_ATTDMG(16777216, 9), SUPPLY_SURPLUS(0x2, 10), XENON_FLY(0x10, 10), AMARANTH_GENERATOR(0x20, 10), STORM_ELEMENTAL(0x80, 10), PROP(0x100, 10), FROZEN_SHIKIGAMI(0x400, 10), TOUCH_OF_THE_WIND1(0x1000, 10), TOUCH_OF_THE_WIND2(0x2000, 10, true), ALBATROSS(0x4000, 10), SPEED_LEVEL(0x8000, 10),//0x8000, 10 ADD_AVOIDABILITY(0x1000, 10), ACCURACY_PERCENT(0x20000, 10), WARRIOR_STANCE(0x10000, 10, true), SOUL_ELEMENT(0x40000, 10), EQUINOX_STANCE(0x80000, 10), SOLUNA_EFFECT(0x10000,10), BATTOUJUTSU_STANCE(0x2, 12),//confirm HAYATO_ATTACK_SPEED(0x4, 12),//confirm HAYATO_STANCE(0x100, 12),//not sure BATTOUJUTSU_STANCEnew(0x40000, 11), CROSS_SURGE(0x8000000, 10), HP_RECOVER(0x4000000, 10), PARASHOCK_GUARD(0x80000000, 10, true), PASSIVE_BLESS(0x4, 11), DIVINE_FORCE_AURA(0x1000, 11), DIVINE_SPEED_AURA(0x2000, 11), HAYATO1(0x2, 12), HAYATO2(0x4, 12), SHIKIGAMI(0x10, 12), HAYATO3(0x20, 12), HAYATO4(0x40, 12), HAYATO5(0x80, 12), // HAYATO_STANCE(0x100, 12), FOX_FIRE(0x2000, 12), HAKU_REBORN(0x4000, 12), // 0x100000, 10 HAKU_BLESS(0x8000, 12), BEARASSAULT(0x6000, 1), ANIMAL_SELECT(0x100000, 12), ASURA(0x10000, 9); private static final long serialVersionUID = 0L; private final int buffstat; private final int first; private boolean stacked = false; // [12] [11] [10] [9] [8] [7] [6] [5] [4] [3] [2] [1] // [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] private MapleBuffStat(int buffstat, int first) { this.buffstat = buffstat; this.first = first; } private MapleBuffStat(int buffstat, int first, boolean stacked) { this.buffstat = buffstat; this.first = first; this.stacked = stacked; } @Override public int getPosition() { return getPosition(false); } public final int getPosition(boolean fromZero) { if (!fromZero) { return this.first; } switch (this.first) { case 12: return 0; case 11: return 1; case 10: return 2; case 9: return 3; case 8: return 4; case 7: return 5; case 6: return 6; case 5: return 7; case 4: return 8; case 3: return 9; case 2: return 10; case 1: return 11; } return 0; } @Override public int getValue() { return buffstat; } public final boolean canStack() { return stacked; } }