/* * Copyright (C) 2004-2015 L2J DataPack * * This file is part of L2J DataPack. * * L2J DataPack is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * L2J DataPack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package quests.Q00132_MatrasCuriosity; import com.l2jserver.gameserver.enums.QuestSound; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; /** * Matras' Curiosity (132) * @author GKR, Gladicek */ public final class Q00132_MatrasCuriosity extends Quest { // NPCs private static final int MATRAS = 32245; private static final int DEMON_PRINCE = 25540; private static final int RANKU = 25542; // Items private static final int FIRE = 10521; private static final int WATER = 10522; private static final int EARTH = 10523; private static final int WIND = 10524; private static final int DARKNESS = 10525; private static final int DIVINITY = 10526; private static final int BLUEPRINT_RANKU = 9800; private static final int BLUEPRINT_PRINCE = 9801; public Q00132_MatrasCuriosity() { super(132, Q00132_MatrasCuriosity.class.getSimpleName(), "Matras' Curiosity"); addStartNpc(MATRAS); addTalkId(MATRAS); addKillId(RANKU, DEMON_PRINCE); registerQuestItems(BLUEPRINT_RANKU, BLUEPRINT_PRINCE); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState st = getQuestState(player, false); if (st == null) { return getNoQuestMsg(player); } String htmltext = event; if (event.equalsIgnoreCase("32245-03.htm") && (player.getLevel() >= 76) && !st.isCompleted()) { if (st.isCreated()) { st.startQuest(); st.set("rewarded_prince", "1"); st.set("rewarded_ranku", "1"); } else { htmltext = "32245-03a.htm"; } } else if (event.equalsIgnoreCase("32245-07.htm") && st.isCond(3) && !st.isCompleted()) { st.giveAdena(65884, true); st.addExpAndSp(50541, 5094); st.giveItems(FIRE, 1); st.giveItems(WATER, 1); st.giveItems(EARTH, 1); st.giveItems(WIND, 1); st.giveItems(DARKNESS, 1); st.giveItems(DIVINITY, 1); st.exitQuest(false, true); } return htmltext; } @Override public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) { L2PcInstance pl = null; switch (npc.getId()) { case DEMON_PRINCE: pl = getRandomPartyMember(player, "rewarded_prince", "1"); if (pl != null) { final QuestState st = getQuestState(pl, false); st.giveItems(BLUEPRINT_PRINCE, 1); st.set("rewarded_prince", "2"); if (st.hasQuestItems(BLUEPRINT_RANKU)) { st.setCond(2, true); } else { st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET); } } break; case RANKU: pl = getRandomPartyMember(player, "rewarded_ranku", "1"); if (pl != null) { final QuestState st = getQuestState(pl, false); st.giveItems(BLUEPRINT_RANKU, 1); st.set("rewarded_ranku", "2"); if (st.hasQuestItems(BLUEPRINT_PRINCE)) { st.setCond(2, true); } else { st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET); } } break; } return null; } @Override public final String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = getNoQuestMsg(player); final QuestState st = getQuestState(player, true); if (st == null) { return htmltext; } if (st.isCreated()) { htmltext = (player.getLevel() >= 76) ? "32245-01.htm" : "32245-02.htm"; } else if (st.isCompleted()) { htmltext = getAlreadyCompletedMsg(player); } else if (st.isStarted()) { switch (st.getCond()) { case 1: case 2: if (st.hasQuestItems(BLUEPRINT_RANKU) && st.hasQuestItems(BLUEPRINT_PRINCE)) { st.takeItems(BLUEPRINT_RANKU, -1); st.takeItems(BLUEPRINT_PRINCE, -1); st.setCond(3, true); htmltext = "32245-05.htm"; } else { htmltext = "32245-04.htm"; } break; case 3: htmltext = "32245-06.htm"; } } return htmltext; } }