package handlers.itemhandlers;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.handler.IItemHandler;
import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.L2Playable;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.SystemMessageId;
/**
* Mysterious Seed
* <p>
* (item ID = 34963, for Quest: Q00750_SevenFlowers)
* </p>
* @author Gigi
* @date 2017-03-31 - [22:13:53]
*/
public class MysteriousSeed implements IItemHandler
{
//@formatter:off
private static final int[] FLOWERS_NPC = {33720, 33721, 33722, 33723, 33724, 33725, 33726};
private static final int DESPAWN = 30000;
//@formatter:on
@Override
public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
{
if (!playable.isPlayer())
{
playable.sendPacket(SystemMessageId.YOUR_PET_CANNOT_CARRY_THIS_ITEM);
return false;
}
final L2PcInstance activeChar = playable.getActingPlayer();
L2NpcTemplate npcTemplate = null;
if ((activeChar != null) && !activeChar.isDead())
{
npcTemplate = NpcData.getInstance().getTemplate(FLOWERS_NPC[Rnd.get(FLOWERS_NPC.length)]);
if (npcTemplate != null)
{
activeChar.stopMove(null);
try
{
final L2Spawn spawn = new L2Spawn(npcTemplate);
spawn.setX(activeChar.getX() + (Rnd.nextBoolean() ? Rnd.get(10, 30) : Rnd.get(-30, -10)));
spawn.setY(activeChar.getY() + (Rnd.nextBoolean() ? Rnd.get(10, 30) : Rnd.get(-30, -10)));
spawn.setZ(activeChar.getZ());
spawn.setHeading(activeChar.getHeading());
final L2Npc npc = spawn.doSpawn(true);
npc.setIsRunning(false);
npc.scheduleDespawn(DESPAWN);
activeChar.sendMessage("You Summoned " + npcTemplate.getName() + ".");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
return true;
}
}