/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package server.buffs.buffclasses.adventurer; import client.MapleBuffStat; import constants.GameConstants; import server.MapleStatEffect; import server.MapleStatInfo; import server.buffs.AbstractBuffClass; /** * * @author Maple */ public class BowmanBuff extends AbstractBuffClass { public BowmanBuff() { buffs = new int[]{ 3101002, //Bow Booster 3101004, //SoulArrow 3201002, //Bow Booster 3201004, //Soul Arrow xBow 3121000, //MapleWarrior 3211011, //PainKiller 3121002, //SharpEyes 3121007, //Illusion Step 3221000, //Maple Warrior 3221002, //Sharp Eye 3221006, //Illusion Step 3121053, //Epic Adventure 3221053, //Epic Adventure 3121054, //Constentration 3221053, //Epic Adventure 3221054, //Bullseye Shot }; } @Override public boolean containsJob(int job) { return GameConstants.isAdventurer(job) && job / 100 == 3; } @Override public void handleBuff(MapleStatEffect eff, int skill) { switch (skill) { case 3101002: //Bow Booster case 3201002: //Bow Booster eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.x)); break; case 3101004: //SoulArrow bow case 3201004: //SoulArrow xbow //eff.statups.put(MapleBuffStat.CONCENTRATE, eff.info.get(MapleStatInfo.epad)); eff.statups.put(MapleBuffStat.SOULARROW, eff.info.get(MapleStatInfo.x)); break; case 3211011: //PainKiller eff.statups.put(MapleBuffStat.PRESSURE_VOID, eff.info.get(MapleStatInfo.asrR)); eff.statups.put(MapleBuffStat.PRESSURE_VOID, eff.info.get(MapleStatInfo.terR)); break; case 3121000: //Maple Warrior case 3221000: //Maple Warrior eff.statups.put(MapleBuffStat.MAPLE_WARRIOR, eff.info.get(MapleStatInfo.x)); break; case 3121002: //Sharp Eyes case 3221002: //Sharp Eye eff.statups.put(MapleBuffStat.SHARP_EYES, (eff.info.get(MapleStatInfo.x) << 8) + eff.info.get(MapleStatInfo.criticaldamageMax)); break; case 3121007: //Illusion Step case 3221006: //Illusion Step eff.statups.put(MapleBuffStat.DEX, eff.info.get(MapleStatInfo.dex)); //add more break; case 3121053: //Epic Adventure case 3221053: //Epic Adventure eff.statups.put(MapleBuffStat.DAMAGE_PERCENT, eff.info.get(MapleStatInfo.indieDamR)); eff.statups.put(MapleBuffStat.DAMAGE_CAP_INCREASE, eff.info.get(MapleStatInfo.indieMaxDamageOver)); break; case 3121054: //Consentration eff.statups.put(MapleBuffStat.BOWMASTERHYPER, eff.info.get(MapleStatInfo.x)); eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad)); break; case 3221054: //BullsEye Shot break; default: //System.out.println("Bowman skill not coded: " + skill); break; } } }