}
@Override
protected void runImpl()
{
L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
return;
if (activeChar.getPrivateStoreType() == 0 &&
activeChar.getActiveRequester() == null &&
!activeChar.isDead())
{
if (Config.DEBUG)
_log.fine("AutoSoulShot:" + _itemId);
L2ItemInstance item = activeChar.getInventory().getItemByItemId(_itemId);
if (item != null)
{
if (_type == 1)
{
//Fishingshots are not automatic on retail
if (_itemId < 6535 || _itemId > 6540) {
// Attempt to charge first shot on activation
if (_itemId == 6645 || _itemId == 6646 || _itemId == 6647)
{
activeChar.addAutoSoulShot(_itemId);
ExAutoSoulShot atk = new ExAutoSoulShot(_itemId, _type);
activeChar.sendPacket(atk);
//start the auto soulshot use
SystemMessage sm = new SystemMessage(SystemMessageId.USE_OF_S1_WILL_BE_AUTO);
sm.addString(item.getItemName());
activeChar.sendPacket(sm);
sm = null;
activeChar.rechargeAutoSoulShot(true, true, true);
}
else {
if (activeChar.getActiveWeaponItem() != activeChar.getFistsWeaponItem()
&& item.getItem().getCrystalType() == activeChar.getActiveWeaponItem().getCrystalType())
{
if (_itemId>=3947 && _itemId<=3952 && activeChar.isInOlympiadMode()){
SystemMessage sm = new SystemMessage(SystemMessageId.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT);
sm.addString(item.getItemName());
activeChar.sendPacket(sm);
sm = null;
}else{
activeChar.addAutoSoulShot(_itemId);
ExAutoSoulShot atk = new ExAutoSoulShot(_itemId, _type);
activeChar.sendPacket(atk);
// start the auto soulshot use
SystemMessage sm = new SystemMessage(SystemMessageId.USE_OF_S1_WILL_BE_AUTO);
sm.addString(item.getItemName());
activeChar.sendPacket(sm);
sm = null;
activeChar.rechargeAutoSoulShot(true, true, false);
}
}
else {
if ((_itemId >= 2509 && _itemId <= 2514) || (_itemId >= 3947 && _itemId <= 3952) || _itemId == 5790)
activeChar.sendPacket(new SystemMessage(SystemMessageId.SPIRITSHOTS_GRADE_MISMATCH));
else
activeChar.sendPacket(new SystemMessage(SystemMessageId.SOULSHOTS_GRADE_MISMATCH));
}
}
}
}
else if (_type == 0)
{
activeChar.removeAutoSoulShot(_itemId);
ExAutoSoulShot atk = new ExAutoSoulShot(_itemId, _type);
activeChar.sendPacket(atk);
//cancel the auto soulshot use
SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED);
sm.addString(item.getItemName());
activeChar.sendPacket(sm);
sm = null;
}
}
}
}