void perform()
{
//// Ticks attacks even when not attacking to permit cooldowns and warmups.
//std::list<AutoAttack> attacksReady;
//mAutoAttacks.tick(&attacksReady);
//if (mAction != ATTACK || mTarget == NULL)
//{
// mAutoAttacks.stop();
// return;
//}
//// Deal with the ATTACK action.
//// Install default bare knuckle attack if no attacks were added from config.
//// TODO: Get this from configuration.
//if (!mAutoAttacks.getAutoAttacksNumber())
//{
// int damageBase = getModifiedAttribute(ATTR_STR);
// int damageDelta = damageBase / 2;
// Damage knuckleDamage(skillManager.getDefaultSkillId(),
// damageBase, damageDelta, 2, ELEMENT_NEUTRAL,
// DAMAGE_PHYSICAL,
// (getSize() < DEFAULT_TILE_LENGTH) ?
// DEFAULT_TILE_LENGTH : getSize());
// AutoAttack knuckleAttack(knuckleDamage, 7, 3);
// mAutoAttacks.add(knuckleAttack);
//}
//if (attacksReady.empty())
//{
// if (!mAutoAttacks.areActive())
// mAutoAttacks.start();
//}
//else
//{
// // Performs all ready attacks.
// for (std::list<AutoAttack>::iterator it = attacksReady.begin();
// it != attacksReady.end(); ++it)
// {
// performAttack(mTarget, it.getDamage());
// }
//}
}