/*
* 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.Q00372_LegacyOfInsolence;
import java.util.HashMap;
import java.util.Map;
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.holders.QuestItemHolder;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.util.Util;
/**
* Legacy Of Insolence (372)
* @author ivantotov
*/
public final class Q00372_LegacyOfInsolence extends Quest
{
// NPCs
private static final int TRADER_HOLLY = 30839;
private static final int WAREHOUSE_KEEPER_WALDERAL = 30844;
private static final int MAGISTER_DESMOND = 30855;
private static final int ANTIQUE_DEALER_PATRIN = 30929;
private static final int CLAUDIA_ATHEBALDT = 31001;
// Items
private static final int ANCIENT_RED_PAPYRUS = 5966;
private static final int ANCIENT_BLUE_PAPYRUS = 5967;
private static final int ANCIENT_BLACK_PAPYRUS = 5968;
private static final int ANCIENT_WHITE_PAPYRUS = 5969;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_AVARICE = 5972;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_GNOSIS = 5973;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_STRIFE = 5974;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_VENGEANCE = 5975;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_AWEKENING = 5976;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_CALAMITY = 5977;
private static final int REVELATION_OF_THE_SEALS_CHAPTER_OF_DESCENT = 5978;
private static final int ANCIENT_EPIC_CHAPTER_1 = 5979;
private static final int ANCIENT_EPIC_CHAPTER_2 = 5980;
private static final int ANCIENT_EPIC_CHAPTER_3 = 5981;
private static final int ANCIENT_EPIC_CHAPTER_4 = 5982;
private static final int ANCIENT_EPIC_CHAPTER_5 = 5983;
private static final int IMPERIAL_GENEALOGY_1 = 5984;
private static final int IMPERIAL_GENEALOGY_2 = 5985;
private static final int IMPERIAL_GENEALOGY_3 = 5986;
private static final int IMPERIAL_GENEALOGY_4 = 5987;
private static final int IMPERIAL_GENEALOGY_5 = 5988;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR = 5989;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR = 5990;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR = 5991;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR = 5992;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR = 5993;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR = 5994;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR = 5995;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR = 5996;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR = 5997;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR = 5998;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR = 5999;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR = 6000;
private static final int BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR = 6001;
// Rewards
private static final int RECIPE_SEALED_DARK_CRYSTAL_BOOTS_60 = 5368;
private static final int RECIPE_SEALED_TALLUM_BOOTS_60 = 5370;
private static final int RECIPE_SEALED_BOOTS_OF_NIGHTMARE_60 = 5380;
private static final int RECIPE_SEALED_MAJESTIC_BOOTS_60 = 5382;
private static final int RECIPE_SEALED_DARK_CRYSTAL_GLOVES_60 = 5392;
private static final int RECIPE_SEALED_TALLUM_GLOVES_60 = 5394;
private static final int RECIPE_SEALED_GAUNTLETS_OF_NIGHTMARE_60 = 5404;
private static final int RECIPE_SEALED_MAJESTIC_GAUNTLETS_60 = 5406;
private static final int RECIPE_SEALED_DARK_CRYSTAL_HELMET_60 = 5426;
private static final int RECIPE_SEALED_TALLUM_HELMET_60 = 5428;
private static final int RECIPE_SEALED_HELM_OF_NIGHTMARE_60 = 5430;
private static final int RECIPE_SEALED_MAJESTIC_CIRCLET_60 = 5432;
private static final int SEALED_DARK_CRYSTAL_BOOTS_LINING = 5496;
private static final int SEALED_TALLUM_BOOTS_LINING = 5497;
private static final int SEALED_BOOTS_OF_NIGHTMARE_LINING = 5502;
private static final int SEALED_MAJESTIC_BOOTS_LINING = 5503;
private static final int SEALED_DARK_CRYSTAL_GLOVES_DESIGN = 5508;
private static final int SEALED_TALLUM_GLOVES_DESIGN = 5509;
private static final int SEALED_GAUNTLETS_OF_NIGHTMARE_DESIGN = 5514;
private static final int SEALED_MAJESTIC_GAUNTLETS_DESIGN = 5515;
private static final int SEALED_DARK_CRYSTAL_HELMET_DESIGN = 5525;
private static final int SEALED_TALLUM_HELM_DESIGN = 5526;
private static final int SEALED_HELM_OF_NIGHTMARE_DESIGN = 5527;
private static final int SEALED_MAJESTIC_CIRCLET_DESIGN = 5528;
// Monsters
private static final int HALLATES_INSPECTOR = 20825;
private static final Map MONSTER_REWARDS = new HashMap<>();
static
{
MONSTER_REWARDS.put(20817, new QuestItemHolder(ANCIENT_RED_PAPYRUS, 302, 1));
MONSTER_REWARDS.put(20821, new QuestItemHolder(ANCIENT_RED_PAPYRUS, 410, 1));
MONSTER_REWARDS.put(HALLATES_INSPECTOR, new QuestItemHolder(ANCIENT_RED_PAPYRUS, 1, 447));
MONSTER_REWARDS.put(20829, new QuestItemHolder(ANCIENT_BLUE_PAPYRUS, 451, 1));
MONSTER_REWARDS.put(21062, new QuestItemHolder(ANCIENT_WHITE_PAPYRUS, 290, 1));
MONSTER_REWARDS.put(21069, new QuestItemHolder(ANCIENT_BLACK_PAPYRUS, 280, 1));
}
// Misc
private static final int MIN_LEVEL = 59;
public Q00372_LegacyOfInsolence()
{
super(372, Q00372_LegacyOfInsolence.class.getSimpleName(), "Legacy Of Insolence");
addStartNpc(WAREHOUSE_KEEPER_WALDERAL);
addTalkId(WAREHOUSE_KEEPER_WALDERAL, TRADER_HOLLY, MAGISTER_DESMOND, ANTIQUE_DEALER_PATRIN, CLAUDIA_ATHEBALDT);
addKillId(MONSTER_REWARDS.keySet());
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
final int chance = getRandom(100);
if (qs == null)
{
return super.onAdvEvent(event, npc, player);
}
String htmltext = null;
switch (event)
{
case "30844-04.htm":
{
if (qs.isCreated())
{
qs.startQuest();
htmltext = event;
}
break;
}
case "30844-07.html":
{
if (hasQuestItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR))
{
htmltext = event;
}
else
{
htmltext = "30844-06.html";
}
break;
}
case "30844-09.html":
{
qs.exitQuest(true, true);
htmltext = event;
break;
}
case "30844-07a.html":
{
if (hasQuestItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR))
{
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR, 1);
if (chance < 10)
{
giveItems(player, SEALED_DARK_CRYSTAL_BOOTS_LINING, 1);
}
else if (chance < 20)
{
giveItems(player, SEALED_DARK_CRYSTAL_GLOVES_DESIGN, 1);
}
else if (chance < 30)
{
giveItems(player, SEALED_DARK_CRYSTAL_HELMET_DESIGN, 1);
}
else if (chance < 40)
{
giveItems(player, SEALED_DARK_CRYSTAL_BOOTS_LINING, 1);
giveItems(player, SEALED_DARK_CRYSTAL_GLOVES_DESIGN, 1);
giveItems(player, SEALED_DARK_CRYSTAL_HELMET_DESIGN, 1);
}
else if (chance < 51)
{
giveItems(player, RECIPE_SEALED_DARK_CRYSTAL_BOOTS_60, 1);
}
else if (chance < 62)
{
giveItems(player, RECIPE_SEALED_DARK_CRYSTAL_GLOVES_60, 1);
}
else if (chance < 79)
{
giveItems(player, RECIPE_SEALED_DARK_CRYSTAL_HELMET_60, 1);
}
else if (chance < 100)
{
giveItems(player, RECIPE_SEALED_DARK_CRYSTAL_BOOTS_60, 1);
giveItems(player, RECIPE_SEALED_DARK_CRYSTAL_GLOVES_60, 1);
giveItems(player, RECIPE_SEALED_DARK_CRYSTAL_HELMET_60, 1);
}
htmltext = event;
}
else
{
htmltext = "30844-07e.html";
}
break;
}
case "30844-07b.html":
{
if (hasQuestItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR))
{
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR, 1);
if (chance < 10)
{
giveItems(player, SEALED_TALLUM_BOOTS_LINING, 1);
}
else if (chance < 20)
{
giveItems(player, SEALED_TALLUM_GLOVES_DESIGN, 1);
}
else if (chance < 30)
{
giveItems(player, SEALED_TALLUM_HELM_DESIGN, 1);
}
else if (chance < 40)
{
giveItems(player, SEALED_TALLUM_BOOTS_LINING, 1);
giveItems(player, SEALED_TALLUM_GLOVES_DESIGN, 1);
giveItems(player, SEALED_TALLUM_HELM_DESIGN, 1);
}
else if (chance < 51)
{
giveItems(player, RECIPE_SEALED_TALLUM_BOOTS_60, 1);
}
else if (chance < 62)
{
giveItems(player, RECIPE_SEALED_TALLUM_GLOVES_60, 1);
}
else if (chance < 79)
{
giveItems(player, RECIPE_SEALED_TALLUM_HELMET_60, 1);
}
else if (chance < 100)
{
giveItems(player, RECIPE_SEALED_TALLUM_BOOTS_60, 1);
giveItems(player, RECIPE_SEALED_TALLUM_GLOVES_60, 1);
giveItems(player, RECIPE_SEALED_TALLUM_HELMET_60, 1);
}
htmltext = event;
}
else
{
htmltext = "30844-07e.html";
}
break;
}
case "30844-07c.html":
{
if (hasQuestItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR))
{
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR, 1);
if (chance < 17)
{
giveItems(player, SEALED_BOOTS_OF_NIGHTMARE_LINING, 1);
}
else if (chance < 34)
{
giveItems(player, SEALED_GAUNTLETS_OF_NIGHTMARE_DESIGN, 1);
}
else if (chance < 49)
{
giveItems(player, SEALED_HELM_OF_NIGHTMARE_DESIGN, 1);
}
else if (chance < 58)
{
giveItems(player, SEALED_BOOTS_OF_NIGHTMARE_LINING, 1);
giveItems(player, SEALED_GAUNTLETS_OF_NIGHTMARE_DESIGN, 1);
giveItems(player, SEALED_HELM_OF_NIGHTMARE_DESIGN, 1);
}
else if (chance < 70)
{
giveItems(player, RECIPE_SEALED_BOOTS_OF_NIGHTMARE_60, 1);
}
else if (chance < 82)
{
giveItems(player, RECIPE_SEALED_GAUNTLETS_OF_NIGHTMARE_60, 1);
}
else if (chance < 92)
{
giveItems(player, RECIPE_SEALED_HELM_OF_NIGHTMARE_60, 1);
}
else if (chance < 100)
{
giveItems(player, RECIPE_SEALED_BOOTS_OF_NIGHTMARE_60, 1);
giveItems(player, RECIPE_SEALED_GAUNTLETS_OF_NIGHTMARE_60, 1);
giveItems(player, RECIPE_SEALED_HELM_OF_NIGHTMARE_60, 1);
}
htmltext = event;
}
else
{
htmltext = "30844-07e.html";
}
break;
}
case "30844-07d.html":
{
if (hasQuestItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, //
BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR))
{
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_1ST_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_2ND_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_3RD_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_4TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_5TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_6TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_7TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_8TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_9TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_10TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_11TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_12TH_FLOOR, 1);
takeItems(player, BLUEPRINT_TOWER_OF_INSOLENCE_13TH_FLOOR, 1);
if (chance < 17)
{
giveItems(player, SEALED_MAJESTIC_BOOTS_LINING, 1);
}
else if (chance < 34)
{
giveItems(player, SEALED_MAJESTIC_GAUNTLETS_DESIGN, 1);
}
else if (chance < 49)
{
giveItems(player, SEALED_MAJESTIC_CIRCLET_DESIGN, 1);
}
else if (chance < 58)
{
giveItems(player, SEALED_MAJESTIC_BOOTS_LINING, 1);
giveItems(player, SEALED_MAJESTIC_GAUNTLETS_DESIGN, 1);
giveItems(player, SEALED_MAJESTIC_CIRCLET_DESIGN, 1);
}
else if (chance < 70)
{
giveItems(player, RECIPE_SEALED_MAJESTIC_BOOTS_60, 1);
}
else if (chance < 82)
{
giveItems(player, RECIPE_SEALED_MAJESTIC_GAUNTLETS_60, 1);
}
else if (chance < 92)
{
giveItems(player, RECIPE_SEALED_MAJESTIC_CIRCLET_60, 1);
}
else if (chance < 100)
{
giveItems(player, RECIPE_SEALED_MAJESTIC_BOOTS_60, 1);
giveItems(player, RECIPE_SEALED_MAJESTIC_GAUNTLETS_60, 1);
giveItems(player, RECIPE_SEALED_MAJESTIC_CIRCLET_60, 1);
}
htmltext = event;
}
else
{
htmltext = "30844-07e.html";
}
break;
}
case "30844-05b.html":
{
qs.setCond(2);
htmltext = event;
break;
}
case "30844-03.htm":
case "30844-05.html":
case "30844-05a.html":
case "30844-08.html":
case "30844-10.html":
case "30844-11.html":
{
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestItemHolder item = MONSTER_REWARDS.get(npc.getId());
if (npc.getId() == HALLATES_INSPECTOR)
{
if (getRandom(1000) < item.getChance())
{
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
if (qs != null)
{
giveItems(qs.getPlayer(), item.getId(), item.getCount());
playSound(qs.getPlayer(), QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
return super.onKill(npc, killer, isSummon);
}
if (Util.checkIfInRange(1500, npc, killer, true) && (getRandom(1000) < item.getChance()))
{
L2PcInstance rewardedPlayer = null;
if (!killer.isInParty())
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isStarted())
{
rewardedPlayer = killer;
}
}
else
{
int chance = 0;
for (L2PcInstance partyMember : killer.getParty().getMembers())
{
final QuestState partyMemberQuestState = getQuestState(partyMember, false);
if ((partyMemberQuestState != null) && partyMemberQuestState.isStarted())
{
final int chance2 = getRandom(1000);
if (chance < chance2)
{
chance = chance2;
rewardedPlayer = partyMember;
}
}
}
}
if ((rewardedPlayer != null) && Util.checkIfInRange(1500, npc, rewardedPlayer, true))
{
giveItems(rewardedPlayer, item.getId(), item.getCount());
playSound(rewardedPlayer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
final int chance = getRandom(100);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
if (npc.getId() == WAREHOUSE_KEEPER_WALDERAL)
{
if (player.getLevel() < MIN_LEVEL)
{
htmltext = "30844-01.htm";
}
else
{
htmltext = "30844-02.htm";
}
}
}
else if (qs.isStarted())
{
switch (npc.getId())
{
case WAREHOUSE_KEEPER_WALDERAL:
{
htmltext = "30844-05.html";
break;
}
case TRADER_HOLLY:
{
if (hasQuestItems(player, IMPERIAL_GENEALOGY_1, IMPERIAL_GENEALOGY_2, IMPERIAL_GENEALOGY_3, IMPERIAL_GENEALOGY_4, IMPERIAL_GENEALOGY_5))
{
takeItems(player, IMPERIAL_GENEALOGY_1, 1);
takeItems(player, IMPERIAL_GENEALOGY_2, 1);
takeItems(player, IMPERIAL_GENEALOGY_3, 1);
takeItems(player, IMPERIAL_GENEALOGY_4, 1);
takeItems(player, IMPERIAL_GENEALOGY_5, 1);
if (chance < 30)
{
giveItems(player, SEALED_DARK_CRYSTAL_BOOTS_LINING, 1);
}
else if (chance < 60)
{
giveItems(player, SEALED_DARK_CRYSTAL_GLOVES_DESIGN, 1);
}
else if (chance < 80)
{
giveItems(player, SEALED_DARK_CRYSTAL_HELMET_DESIGN, 1);
}
else if (chance < 90)
{
giveItems(player, SEALED_DARK_CRYSTAL_BOOTS_LINING, 1);
giveItems(player, SEALED_DARK_CRYSTAL_GLOVES_DESIGN, 1);
giveItems(player, SEALED_DARK_CRYSTAL_HELMET_DESIGN, 1);
}
else if (chance < 100)
{
giveAdena(player, 4000, true);
}
htmltext = "30839-02.html";
}
else
{
htmltext = "30839-01.html";
}
break;
}
case MAGISTER_DESMOND:
{
if (hasQuestItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_AVARICE, REVELATION_OF_THE_SEALS_CHAPTER_OF_GNOSIS, REVELATION_OF_THE_SEALS_CHAPTER_OF_STRIFE, //
REVELATION_OF_THE_SEALS_CHAPTER_OF_VENGEANCE, REVELATION_OF_THE_SEALS_CHAPTER_OF_AWEKENING, REVELATION_OF_THE_SEALS_CHAPTER_OF_CALAMITY, //
REVELATION_OF_THE_SEALS_CHAPTER_OF_DESCENT))
{
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_AVARICE, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_GNOSIS, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_STRIFE, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_VENGEANCE, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_AWEKENING, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_CALAMITY, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_DESCENT, 1);
if (chance < 31)
{
giveItems(player, SEALED_MAJESTIC_BOOTS_LINING, 1);
}
else if (chance < 62)
{
giveItems(player, SEALED_MAJESTIC_GAUNTLETS_DESIGN, 1);
}
else if (chance < 75)
{
giveItems(player, SEALED_MAJESTIC_CIRCLET_DESIGN, 1);
}
else if (chance < 83)
{
giveItems(player, SEALED_MAJESTIC_BOOTS_LINING, 1);
giveItems(player, SEALED_MAJESTIC_GAUNTLETS_DESIGN, 1);
giveItems(player, SEALED_MAJESTIC_CIRCLET_DESIGN, 1);
}
else if (chance < 100)
{
giveAdena(player, 4000, true);
}
htmltext = "30855-02.html";
}
else
{
htmltext = "30855-01.html";
}
break;
}
case ANTIQUE_DEALER_PATRIN:
{
if (hasQuestItems(player, ANCIENT_EPIC_CHAPTER_1, ANCIENT_EPIC_CHAPTER_2, ANCIENT_EPIC_CHAPTER_3, ANCIENT_EPIC_CHAPTER_4, ANCIENT_EPIC_CHAPTER_5))
{
takeItems(player, ANCIENT_EPIC_CHAPTER_1, 1);
takeItems(player, ANCIENT_EPIC_CHAPTER_2, 1);
takeItems(player, ANCIENT_EPIC_CHAPTER_3, 1);
takeItems(player, ANCIENT_EPIC_CHAPTER_4, 1);
takeItems(player, ANCIENT_EPIC_CHAPTER_5, 1);
if (chance < 30)
{
giveItems(player, SEALED_TALLUM_BOOTS_LINING, 1);
}
else if (chance < 60)
{
giveItems(player, SEALED_TALLUM_GLOVES_DESIGN, 1);
}
else if (chance < 80)
{
giveItems(player, SEALED_TALLUM_HELM_DESIGN, 1);
}
else if (chance < 90)
{
giveItems(player, SEALED_TALLUM_BOOTS_LINING, 1);
giveItems(player, SEALED_TALLUM_GLOVES_DESIGN, 1);
giveItems(player, SEALED_TALLUM_HELM_DESIGN, 1);
}
else if (chance < 100)
{
giveAdena(player, 4000, true);
}
htmltext = "30929-02.html";
}
else
{
htmltext = "30929-02.html";
}
break;
}
case CLAUDIA_ATHEBALDT:
{
if (hasQuestItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_AVARICE, REVELATION_OF_THE_SEALS_CHAPTER_OF_GNOSIS, REVELATION_OF_THE_SEALS_CHAPTER_OF_STRIFE, //
REVELATION_OF_THE_SEALS_CHAPTER_OF_VENGEANCE, REVELATION_OF_THE_SEALS_CHAPTER_OF_AWEKENING, REVELATION_OF_THE_SEALS_CHAPTER_OF_CALAMITY, //
REVELATION_OF_THE_SEALS_CHAPTER_OF_DESCENT))
{
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_AVARICE, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_GNOSIS, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_STRIFE, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_VENGEANCE, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_AWEKENING, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_CALAMITY, 1);
takeItems(player, REVELATION_OF_THE_SEALS_CHAPTER_OF_DESCENT, 1);
if (chance < 31)
{
giveItems(player, SEALED_BOOTS_OF_NIGHTMARE_LINING, 1);
}
else if (chance < 62)
{
giveItems(player, SEALED_GAUNTLETS_OF_NIGHTMARE_DESIGN, 1);
}
else if (chance < 75)
{
giveItems(player, SEALED_HELM_OF_NIGHTMARE_DESIGN, 1);
}
else if (chance < 83)
{
giveItems(player, SEALED_BOOTS_OF_NIGHTMARE_LINING, 1);
giveItems(player, SEALED_GAUNTLETS_OF_NIGHTMARE_DESIGN, 1);
giveItems(player, SEALED_HELM_OF_NIGHTMARE_DESIGN, 1);
}
else if (chance < 100)
{
giveAdena(player, 4000, true);
}
htmltext = "31001-02.html";
}
else
{
htmltext = "31001-01.html";
}
break;
}
}
}
return htmltext;
}
}