/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package server.buffs.buffclasses.adventurer; import client.MapleBuffStat; import client.MapleJob; import client.MonsterStatus; import server.MapleStatEffect; import server.MapleStatInfo; import server.buffs.AbstractBuffClass; /** * * @author Itzik */ public class MagicianBuff extends AbstractBuffClass { public MagicianBuff() { buffs = new int[]{ //一轉 2001002, //魔心防禦Magic Guard //二轉 //火毒 2101001, //精神強化Meditation 2101008, //極速詠唱Magic Booster 2101010, //燎原之火 //冰雷 2201009, //寒冰迅移 2201001, //精神強化Meditation 2201010, //極速詠唱Magic Booster //僧侶 //2300009, //祝福福音Blessed Ensemble - passive but buff? 2301004, //天使祝福Bless 2301008, //極速詠唱Magic Booster 2301003, //神聖之光Invicible //三轉 //火毒 2111011, //元素適應(火、毒)Elemental Adaptation (Fire, Poison) 2111008, //自然力重置Elemental Decrease 2111007, //瞬間移動精通Teleport Mastery //冰雷 2211012, //元素適應(雷、冰)Elemental Adaptation (Ice, Lightning) 2211008, //自然力重置Elemental Decrease 2211007, //瞬間移動精通Teleport Mastery //祭司 // 2311011, //神聖之泉Holy Fountain 2311012, //聖靈守護Divine Protection 2311002, //時空門Mystic Door 2311003, //神聖祈禱Holy Symbol 2311007, //瞬間移動精通Teleport Mastery 2311009, //聖十字魔法盾Holy Magic Shield //四轉 //火毒 2121004, //魔力無限Infinity 2121000, //楓葉祝福Maple Warrior 2120010,//神秘狙擊 //冰雷 2221004, //魔力無限Infinity 2221000, //楓葉祝福Maple Warrior 2220010,//神秘狙擊 //主教 2221001, //核爆術 2321004, //魔力無限Infinity 2321005, //進階祝福Advanced Blessing 2321000, //楓葉祝福Maple Warrior 2320011,//神秘狙擊 //超技 //火毒 2121053, //傳說冒險Epic Adventure 2121054, //火靈結界Inferno Aura //冰雷 2221053, //傳說冒險Epic Adventure 2221054, //冰雪結界Absolute Zero Aura //主教 2321052, //天堂之門 2321053, //傳說冒險Epic Adventure 2321054, //復仇天使Avenging Angel }; } @Override public boolean containsJob(int job) { return MapleJob.is冒險家(job) && job / 100 == 2; } @Override public void handleBuff(MapleStatEffect eff, int skill) { switch (skill) { case 2001002: //魔心防禦Magic Guard eff.statups.put(MapleBuffStat.MAGIC_GUARD, eff.info.get(MapleStatInfo.x)); break; case 2101001: //精神強化Meditation case 2201001: //精神強化Meditation eff.statups.put(MapleBuffStat.INDIE_MAD, eff.info.get(MapleStatInfo.indieMad)); break; case 2101010: //燎原之火 eff.statups.put(MapleBuffStat.IGNITE, 1); break; case 2101008: //極速詠唱Magic Booster case 2201010: //極速詠唱Magic Booster case 2301008: //極速詠唱Magic Booster eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.x)); break; case 2201009: //寒冰迅移 eff.info.put(MapleStatInfo.time, 2100000000); eff.statups.put(MapleBuffStat.CHILLING_STEP, 1); break; case 2301004: //天使祝福Bless eff.statups.put(MapleBuffStat.BLESS, (int) eff.getLevel()); break; case 2301003: //神聖之光Invicible eff.statups.put(MapleBuffStat.INVICIBLE, eff.info.get(MapleStatInfo.x)); break; case 2111011: //元素適應(火、毒)Elemental Adaptation (Fire, Poison) case 2211012: //元素適應(雷、冰)Elemental Adaptation (Ice, Lightning) case 2311012: //聖靈守護Divine Protection eff.info.put(MapleStatInfo.time, 2100000000); eff.statups.put(MapleBuffStat.ABNORMAL_BUFF_RESISTANCES, 1); break; case 2111008: //自然力重置Elemental Decrease case 2211008: //自然力重置Elemental Decrease eff.statups.put(MapleBuffStat.ELEMENT_RESET, eff.info.get(MapleStatInfo.x)); break; case 2111007: //瞬間移動精通Teleport Mastery case 2211007: //瞬間移動精通Teleport Mastery case 2311007: //瞬間移動精通Teleport Mastery eff.info.put(MapleStatInfo.mpCon, eff.info.get(MapleStatInfo.y)); eff.info.put(MapleStatInfo.time, 2100000000); eff.statups.put(MapleBuffStat.TELEPORT_MASTERY, eff.info.get(MapleStatInfo.x)); eff.monsterStatus.put(MonsterStatus.STUN, 1); break; case 2311002: //時空門Mystic Door eff.statups.put(MapleBuffStat.MYSTIC_DOOR, eff.info.get(MapleStatInfo.x)); break; case 2311003: //神聖祈禱Holy Symbol eff.statups.put(MapleBuffStat.HOLY_SYMBOL, eff.info.get(MapleStatInfo.x)); break; case 2311009: //聖十字魔法盾Holy Magic Shield eff.statups.put(MapleBuffStat.HOLY_MAGIC_SHELL, eff.info.get(MapleStatInfo.x)); break; case 2121004: //魔力無限Infinity case 2221004: //魔力無限Infinity case 2321004: //魔力無限Infinity eff.statups.put(MapleBuffStat.STANCE, eff.info.get(MapleStatInfo.prop)); eff.statups.put(MapleBuffStat.INFINITY, eff.info.get(MapleStatInfo.damage) + 1); break; case 2121000: //楓葉祝福Maple Warrior case 2221000: //楓葉祝福Maple Warrior case 2321000: //楓葉祝福Maple Warrior eff.statups.put(MapleBuffStat.MAPLE_WARRIOR, eff.info.get(MapleStatInfo.x)); break; case 2221001: //核爆術 eff.statups.put(MapleBuffStat.BIG_BANG, 1); break; case 2321005: //進階祝福Advanced Blessing eff.statups.put(MapleBuffStat.HOLY_SHIELD, eff.info.get(MapleStatInfo.x)); eff.statups.put(MapleBuffStat.INDIE_MAX_HP, eff.info.get(MapleStatInfo.indieMhp)); eff.statups.put(MapleBuffStat.INDIE_MAX_MP, eff.info.get(MapleStatInfo.indieMmp)); break; case 2320011://神秘狙擊 case 2220010://神秘狙擊 case 2120010://神秘狙擊 eff.info.put(MapleStatInfo.time, 2100000000); eff.statups.put(MapleBuffStat.MANY_USES, eff.info.get(MapleStatInfo.x)); break; case 2121053: //傳說冒險Epic Adventure case 2221053: //傳說冒險Epic Adventure case 2321053: //傳說冒險Epic Adventure eff.statups.put(MapleBuffStat.INDIE_DAM_R, eff.info.get(MapleStatInfo.indieDamR)); eff.statups.put(MapleBuffStat.INDIE_MAX_DAMAGE_OVER, eff.info.get(MapleStatInfo.indieMaxDamageOver)); break; case 2121054: //火靈結界Inferno Aura eff.info.put(MapleStatInfo.time, 2100000000); eff.statups.put(MapleBuffStat.INFERNO_AURA, 1); break; case 2221054: //冰雪結界Absolute Zero Aura eff.info.put(MapleStatInfo.time, 2100000000); eff.statups.put(MapleBuffStat.ABSOLUTE_ZERO_AURA, 1); eff.statups.put(MapleBuffStat.INDIE_TER_R, eff.info.get(MapleStatInfo.v)); eff.statups.put(MapleBuffStat.INDIE_ASR_R, eff.info.get(MapleStatInfo.v)); break; case 2321052: //天堂之門 eff.statups.put(MapleBuffStat.HEAVEN_IS_DOOR, 1); break; case 2321054: //復仇天使Avenging Angel eff.statups.clear(); eff.statups.put(MapleBuffStat.IGNORE_DEF, eff.info.get(MapleStatInfo.ignoreMobpdpR)); eff.statups.put(MapleBuffStat.AVENGING_ANGEL, (int) eff.getLevel()); eff.statups.put(MapleBuffStat.INDIE_MAD, eff.info.get(MapleStatInfo.indieMad)); eff.statups.put(MapleBuffStat.INDIE_BOOSTER, eff.info.get(MapleStatInfo.indieBooster) - 2); eff.statups.put(MapleBuffStat.INDIE_MAX_DAMAGE_OVER, eff.info.get(MapleStatInfo.indieMaxDamageOver)); break; default: System.out.println("法師技能未處理,技能代碼: " + skill); break; } } }