}
ssGrade = weaponItem.getCrystalType().externalOrdinal;
}
_attackEndTime = sAtk + System.currentTimeMillis() + 10000;
_isAttackAborted = false;
Attack attack = new Attack(this, target, getChargedSoulShot(), ssGrade);
setHeading(target, true);
// Select the type of attack to start
if(weaponItem == null)
{
doAttackHitSimple(attack, target, 1., !isPlayer(), sAtk, true);
}
else
{
switch(weaponItem.getItemType())
{
case BOW:
case CROSSBOW:
doAttackHitByBow(attack, target, sAtk);
break;
case POLE:
doAttackHitByPole(attack, target, sAtk);
break;
case DUAL:
case DUALFIST:
case DUALDAGGER:
doAttackHitByDual(attack, target, sAtk);
break;
default:
doAttackHitSimple(attack, target, 1., true, sAtk, true);
}
}
if(attack.hasHits())
{
broadcastPacket(attack);
}
}