package server.buffs.buffclasses.cygnus;
import client.MapleBuffStat;
import client.MonsterStatus;
import constants.GameConstants;
import server.MapleStatEffect;
import server.MapleStatInfo;
import server.buffs.AbstractBuffClass;
public class DawnWarriorBuff extends AbstractBuffClass {
public DawnWarriorBuff() {
buffs = new int[]{
11001021, // Hand of Light
11001022, // Soul Element
11101023, // Divine Hand
11101022, // Falling Moon
11101003, // Rage
11101024, // Soul Speed
11101024, // Booster
11111007, // Radiant Charge
11111022, // Rising Sun
11121012, // Equinox Cycle (Rising Sun)
11121011, // Equinox Cycle (Falling Moon)
11121005, // Equinox Cycle
11111024, // Soul of the Guardian
11121000, // Call of Cygnus
11121053, //Glory of guardians
};
}
@Override
public boolean containsJob(int job) {
return GameConstants.isDawnWarrior(job);
}
@Override
public void handleBuff(MapleStatEffect eff, int skill) {
switch (skill) {
case 11101024: // booster
eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.x) * 2);
break;
case 11001021: //Hand of Light
eff.statups.put(MapleBuffStat.ADD_AVOIDABILITY, 20);
eff.statups.put(MapleBuffStat.ACCURACY_PERCENT, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad));
break;
case 11001022: // Soul Element
eff.statups.put(MapleBuffStat.SOUL_ELEMENT, eff.info.get(MapleStatInfo.prop));
eff.monsterStatus.put(MonsterStatus.STUN, 1);
break;
case 11101023: // Divine Hand
eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePad));
break;
case 11101022: //Falling Moon
eff.statups.put(MapleBuffStat.SOLUNA_EFFECT, 0);
eff.statups.put(MapleBuffStat.ATTACK_COUNT, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.CRITICAL_PERCENT_UP, eff.info.get(MapleStatInfo.indieCr));
eff.info.put(MapleStatInfo.time, Integer.MAX_VALUE);
break;
case 11111022: // Rising Sun
eff.statups.put(MapleBuffStat.SOLUNA_EFFECT, 1);
eff.statups.put(MapleBuffStat.DAMAGE_PERCENT, eff.info.get(MapleStatInfo.indieDamR));
eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.indieBooster));
eff.info.put(MapleStatInfo.time, Integer.MAX_VALUE);
break;
case 11111007: // rad charge
eff.statups.put(MapleBuffStat.WK_CHARGE, eff.info.get(MapleStatInfo.x));
eff.statups.put(MapleBuffStat.DAMAGE_BUFF, eff.info.get(MapleStatInfo.z));
break;
case 11111024: // soul of guardian
eff.statups.put(MapleBuffStat.HP_BOOST, eff.info.get(MapleStatInfo.indieMhp));
eff.statups.put(MapleBuffStat.INDIE_MAD, eff.info.get(MapleStatInfo.indiePdd));
eff.statups.put(MapleBuffStat.INDIE_PAD, eff.info.get(MapleStatInfo.indiePdd));
break;
case 11121005: // Equinox Cycle
eff.statups.put(MapleBuffStat.SOLUNA_EFFECT, 1); // should be level but smd
break;
case 11121011: //Equinox Cycle (Falling Moon)
eff.statups.put(MapleBuffStat.EQUINOX_STANCE, 11121012);
eff.statups.put(MapleBuffStat.DAMAGE_PERCENT, eff.info.get(MapleStatInfo.indieDamR));
eff.statups.put(MapleBuffStat.BOOSTER, eff.info.get(MapleStatInfo.indieBooster));
break;
case 11121012: //Equinox Cycle (Rising Sun)
eff.statups.put(MapleBuffStat.EQUINOX_STANCE, 11121011);
eff.statups.put(MapleBuffStat.CRITICAL_PERCENT_UP, eff.info.get(MapleStatInfo.indieCr));
eff.statups.put(MapleBuffStat.ATTACK_COUNT, eff.info.get(MapleStatInfo.x));
break;
case 11121006: // soul pledge
eff.statups.put(MapleBuffStat.CRITICAL_PERCENT_UP, eff.info.get(MapleStatInfo.indieCr));
eff.statups.put(MapleBuffStat.STACK_ALLSTATS, eff.info.get(MapleStatInfo.indieAllStat));
eff.statups.put(MapleBuffStat.STANCE, eff.info.get(MapleStatInfo.prop));
break;
case 11121053: //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;
default:
//System.out.println("Unhandled Buff: " + skill);
break;
}
}
}