package server.buffs.buffclasses.cygnus;
import client.MapleBuffStat;
import constants.GameConstants;
import server.MapleStatEffect;
import server.MapleStatInfo;
import server.buffs.AbstractBuffClass;
/**
*
* @author Maple
*/
public class WindArcherBuff extends AbstractBuffClass {
public WindArcherBuff() {
buffs = new int[]{
13001022, //Storm Elemental
13101024, //Sylvan Aid
13101023, //Bow Booster
13111023, //Albatross
13111024, //Emerald Flower
13121004, //Touch of the Wind
13121005, //Sharp Eyes
13121053, //Glory of the Guardians
13121054, //Storm Bringer
};
}
@Override
public boolean containsJob(int job) {
return GameConstants.isKOC(job) && (job / 100) % 10 == 3;
}
@Override
public void handleBuff(MapleStatEffect eff, int skill) {
switch (skill) {
case 13001022:// Storm Elemental
eff.statups.put(MapleBuffStat.STORM_ELEMENTAL, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.DAMAGE_PERCENT, eff.info.get(MapleStatInfo.indieDamR));
break;
case 13101023:// Bow Booster
eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.x));
break;
case 13111024:// Emerald Flower
//spawn
break;
case 13101024:// Sylvan Aid
eff.statups.put(MapleBuffStat.CRITICAL_PERCENT_UP, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad));
eff.statups.put(MapleBuffStat.SOULARROW, eff.info.get(MapleStatInfo.x));
break;
case 13111023:// Albatross
eff.statups.put(MapleBuffStat.ALBATROSS, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad));
eff.statups.put(MapleBuffStat.HP_BOOST, eff.info.get(MapleStatInfo.indieMhp));
eff.statups.put(MapleBuffStat.ATTACK_SPEED, eff.info.get(MapleStatInfo.indieBooster));//true?
eff.statups.put(MapleBuffStat.CRITICAL_PERCENT_UP, eff.info.get(MapleStatInfo.indieCr));
break;
case 13121004:// Touch of the Wind
eff.statups.put(MapleBuffStat.TOUCH_OF_THE_WIND2, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.HAMSTRING, eff.info.get(MapleStatInfo.y));
eff.statups.put(MapleBuffStat.TOUCH_OF_THE_WIND1, eff.info.get(MapleStatInfo.prop));
eff.statups.put(MapleBuffStat.HP_R, eff.info.get(MapleStatInfo.indieMhpR));
break;
case 13121005:// Sharp Eyes
eff.statups.put(MapleBuffStat.SHARP_EYES, (eff.info.get(MapleStatInfo.x) << 8) + eff.info.get(MapleStatInfo.criticaldamageMax));
break;
case 13121053:// Glory of the Guardians
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 13121054:// Storm Bringer
eff.statups.put(MapleBuffStat.STORM_BRINGER, eff.info.get(MapleStatInfo.x));
break;
default:
System.out.println("Unhandled Buff: " + skill);
break;
}
}
}