/* * 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 PirateBuff extends AbstractBuffClass { public PirateBuff() { buffs = new int[]{ 5101011, //Dark Clarity 5701006, //Dark Clarity 5101006, //Knuckle Booster 5111007, //Roll Of The Dice 5211007, //Roll Of The Dice 5111010, //Admiral's Wings 5121015, //Crossbones 5121010, //Time Leap 5121009, //Speed Infusion 5121000, //Maple Warrior 5221000, //Maple Warrior 5321005, //Maple Warrior 5721000, //Maple Warrior 5121054, //Stimulating Conversation 5121053, //Epic Adventure 5221053, //Epic Adventure 5321053, //Epic Adventure 5721053, //Epic Adventure 5201012, //Scurvy Summons 5201003, //Gun Booster 5201008, //Infinity Blast 5211009, //Cross Cut Blast 5221018, //Jolly Roger 5221021, //Quickdraw 5221054, //Whaler's Potion 5301002, //Cannon Booster 5301003, //Monkey Magic 5311004, //Barrel Roulette 5311005, //Luck of the Die 5321010, //Pirate's Spirit 5321054, //Buckshot 5701005, //Gun Booster 5711011, //Roll of the Dice 5721009, //Relentless 5721054, //Bionic Maximizer 5721052, }; } @Override public boolean containsJob(int job) { return GameConstants.isAdventurer(job) && job / 100 == 5; } @Override public void handleBuff(MapleStatEffect eff, int skill) { switch (skill) { case 5101011: //Dark Clarity case 5701006: //Dark Clarity eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad)); break; case 5101006: //Knuckle Booster case 5201003: //Gun Booster case 5301002: //Cannon Booster case 5701005: //Gun Booster eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.x)); break; case 5111007: //Roll Of The Dice case 5211007: //Roll Of The Dice case 5311005: //Luck of the Die case 5711011: //Roll of the Dice eff.statups.put(MapleBuffStat.DICE_ROLL, 0); break; case 5111010: //Admiral's Wings //TODO break; case 5121015: //Crossbones eff.statups.put(MapleBuffStat.DAMAGE_BUFF, eff.info.get(MapleStatInfo.x)); break; case 5121009: //Speed Infusion eff.statups.put(MapleBuffStat.SPEED_INFUSION, eff.info.get(MapleStatInfo.x)); break; case 5121054: //Stimulating Conversation //TODO break; case 5221018: //Jolly Roger eff.statups.put(MapleBuffStat.ELEMENTAL_STATUS_R, eff.info.get(MapleStatInfo.x)); eff.statups.put(MapleBuffStat.ABNORMAL_STATUS_R, eff.info.get(MapleStatInfo.y));//or x? eff.statups.put(MapleBuffStat.DAMAGE_RATE, eff.info.get(MapleStatInfo.damR)); eff.statups.put(MapleBuffStat.STANCE, eff.info.get(MapleStatInfo.z)); eff.statups.put(MapleBuffStat.AVOID, eff.info.get(MapleStatInfo.eva)); break; case 5201008: //Infinity Blast eff.statups.put(MapleBuffStat.SPIRIT_CLAW, eff.info.get(MapleStatInfo.x)); break; case 5211009: //Cross Cut Blast eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad)); break; case 5221054: //Whaler's Potion eff.statups.put(MapleBuffStat.MAXHP, eff.info.get(MapleStatInfo.x)); //Max HP: +40% eff.statups.put(MapleBuffStat.ELEMENTAL_STATUS_R, eff.info.get(MapleStatInfo.y));//Status Ailment and Elemental Resistance: +15% eff.statups.put(MapleBuffStat.INVINCIBLE, eff.info.get(MapleStatInfo.w)); //Damage Intake: -15% break; case 5301003: //Monkey Magic eff.statups.put(MapleBuffStat.HP_BOOST, eff.info.get(MapleStatInfo.indieMhp)); eff.statups.put(MapleBuffStat.MP_BOOST, eff.info.get(MapleStatInfo.indieMmp)); eff.statups.put(MapleBuffStat.ANGEL_ACC, eff.info.get(MapleStatInfo.indieAcc)); eff.statups.put(MapleBuffStat.ANGEL_AVOID, eff.info.get(MapleStatInfo.indieEva)); eff.statups.put(MapleBuffStat.ANGEL_JUMP, eff.info.get(MapleStatInfo.indieJump)); eff.statups.put(MapleBuffStat.INDIE_SPEED, eff.info.get(MapleStatInfo.indieSpeed)); eff.statups.put(MapleBuffStat.ANGEL_STAT, eff.info.get(MapleStatInfo.indieAllStat)); break; case 5311004: //Barrel Roulette eff.statups.put(MapleBuffStat.BARREL_ROLL, 0); break; case 5321010: //Pirate's Spirit eff.statups.put(MapleBuffStat.STANCE, eff.info.get(MapleStatInfo.prop)); break; case 5321054: //Buckshot //TODO break; case 5721009: //Relentless //TODO break; case 5721054: //Bionic Maximizer eff.statups.put(MapleBuffStat.HP_R, eff.info.get(MapleStatInfo.x)); eff.statups.put(MapleBuffStat.STATUS_RESIST_TWO, eff.info.get(MapleStatInfo.v)); eff.statups.put(MapleBuffStat.ELEMENT_RESIST_TWO, eff.info.get(MapleStatInfo.w)); eff.statups.put(MapleBuffStat.DAMAGE_RESIST, eff.info.get(MapleStatInfo.y)); break; case 5721052: eff.statups.put(MapleBuffStat.DAMAGE_CAP_INCREASE, eff.info.get(MapleStatInfo.x)); break; case 5121000: //Maple Warrior case 5221000: //Maple Warrior case 5321005: //Maple Warrior case 5721000: //Maple Warrior eff.statups.put(MapleBuffStat.MAPLE_WARRIOR, eff.info.get(MapleStatInfo.x)); break; case 5121053: //Epic Adventure case 5221053: //Epic Adventure case 5321053: //Epic Adventure case 5721053: //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; default: //System.out.println("Pirate skill not coded: " + skill); break; } } }