package server.buffs.buffclasses.sengoku;
import client.MapleBuffStat;
import client.MapleJob;
import server.MapleStatEffect;
import server.MapleStatInfo;
import server.buffs.AbstractBuffClass;
/**
*
* @author Charmander
*/
public class HayatoBuff extends AbstractBuffClass {
public HayatoBuff() {
buffs = new int[]{
40011186, // 劍豪初心者拔刀術
41121014, // 疾風五月雨刃
41110006, // 柳身
41110009, // 心頭滅卻
41101003, // 武神招來
41101005, // 秘劍‧隼
41121002, // 一閃
41121003, // 剛健
41121005, // 曉月勇者
41001001, // 拔刀術
41121015, // 制敵之先
41110008, // 拔刀術‧心體技
41121054, // 無雙十刃之型
41121053, // 公主的加護
};
}
@Override
public boolean containsJob(int job) {
return MapleJob.is劍豪(job);
}
@Override
public void handleBuff(MapleStatEffect eff, int skill) {
switch (skill) {
case 40011186: // 劍豪初心者拔刀術
eff.info.put(MapleStatInfo.time, 600000);
eff.statups.put(MapleBuffStat.SPEED, 10);
break;
case 41110006: // 柳身
eff.statups.put(MapleBuffStat.WILLOW_DODGE, eff.info.get(MapleStatInfo.prop));
break;
case 41110009: // 心頭滅卻
eff.statups.put(MapleBuffStat.RECOVERY, eff.info.get(MapleStatInfo.damage));
break;
case 41121014: //疾風五月雨刃
eff.statups.put(MapleBuffStat.INDIE_DAM_R, eff.info.get(MapleStatInfo.indieDamR));
break;
case 41001001: // 拔刀術
eff.info.put(MapleStatInfo.time, 2100000000);
eff.statups.put(MapleBuffStat.CRITICAL_RATE, eff.info.get(MapleStatInfo.y));
eff.statups.put(MapleBuffStat.HAYATO, eff.info.get(MapleStatInfo.prop));
eff.statups.put(MapleBuffStat.BATTOUJUTSU_STANCE, -1);
break;
case 41110008: // 拔刀術‧心體技
eff.info.put(MapleStatInfo.time, 2100000000);
eff.statups.put(MapleBuffStat.CRITICAL_RATE, eff.info.get(MapleStatInfo.y));
eff.statups.put(MapleBuffStat.HAYATO, eff.info.get(MapleStatInfo.prop));
eff.statups.put(MapleBuffStat.BATTOUJUTSU_STANCE, -1);
eff.statups.put(MapleBuffStat.BATTOUJUTSU_SOUL, 0);
break;
case 41101003: // 武神招來
eff.statups.put(MapleBuffStat.JUMP, eff.info.get(MapleStatInfo.u));
eff.statups.put(MapleBuffStat.SPEED, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.MILITARY_MIGHT, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.MILITARY_MIGHT1, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.MILITARY_MIGHT2, eff.info.get(MapleStatInfo.x));
break;
case 41101005: // 秘劍‧隼
eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.x));
break;
case 41121002: // 一閃
eff.statups.put(MapleBuffStat.HITOKIRI_STRIKE, eff.info.get(MapleStatInfo.prop));
break;
case 41121003: // 剛健
eff.statups.put(MapleBuffStat.ABNORMAL_STATUS_R, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.ELEMENTAL_STATUS_R, eff.info.get(MapleStatInfo.y));
break;
case 41121005: // 曉月勇者
eff.statups.put(MapleBuffStat.MAPLE_WARRIOR, eff.info.get(MapleStatInfo.x));
break;
case 41121015: // 制敵之先
eff.info.put(MapleStatInfo.time, 2100000000);
eff.statups.put(MapleBuffStat.COUNTERATTACK, 0);
break;
case 41121054: // 無雙十刃之型
//TODO - works without
break;
case 41121053: // 公主的加護
eff.statups.put(MapleBuffStat.INDIE_MAX_DAMAGE_OVER, eff.info.get(MapleStatInfo.indieMaxDamageOver));
eff.statups.put(MapleBuffStat.INDIE_DAM_R, eff.info.get(MapleStatInfo.indieDamR));
break;
default:
System.out.println("Hayato skill not coded: " + skill);
break;
}
}
}