@Override
	public void onAttack() {
		Alteration buff;
		MathTools math = new MathTools();
		CombatLog log = CombatLog.getInstance();
		int dmg;
		
		// Proc surging charge
		buff = engine.getPlayer().getAlterations().get("surgingCharge");
		if (buff != null && (engine.getTime() - this.lastCharge) >= 0){
			if (math.chance(25.0)){
				log.write(engine.getTimeStr() + "Surging Charge ");
				dmg = engine.spellDamage(0.344,0.01,0,0,0.034,0.034,790,true);
				engine.dealDamage(dmg);
				log.writeln(" for " + dmg + " damage.");
				this.lastCharge = engine.getTime() + 1500;
			}
		}
		
		// Proc lightning charge
		buff = engine.getPlayer().getAlterations().get("lightningCharge");
		if (buff != null && (engine.getTime() - this.lastCharge) >= 0){
			if (math.chance(50.0)){
				log.write(engine.getTimeStr() + "Lightning Charge ");
				dmg = engine.spellDamage(0.165, 0.01, 0, 0, 0.017, 0.017, 1610, true);
				engine.dealDamage(dmg);
				log.writeln(" for " + dmg + " damage.");
				this.lastCharge = engine.getTime() + 1500;
			}
		}
	}