/*
* 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 <http://www.gnu.org/licenses/>.
*/
package ai.npc.VillageMasters.FirstClassTransferTalk;
import java.util.HashMap;
import java.util.Map;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2VillageMasterFighterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2VillageMasterPriestInstance;
/**
* This script manages the dialogs of the headmasters of all newbie villages.<br>
* None of them provide actual class transfers, they only talk about it.
* @author jurchiks, xban1x
*/
public final class FirstClassTransferTalk extends AbstractNpcAI
{
private static final Map<Integer, Race> MASTERS = new HashMap<>();
static
{
MASTERS.put(30026, Race.HUMAN); // Blitz, TI Fighter Guild Head Master
MASTERS.put(30031, Race.HUMAN); // Biotin, TI Einhasad Temple High Priest
MASTERS.put(30154, Race.ELF); // Asterios, Elven Village Tetrarch
MASTERS.put(30358, Race.DARK_ELF); // Thifiell, Dark Elf Village Tetrarch
MASTERS.put(30565, Race.ORC); // Kakai, Orc Village Flame Lord
MASTERS.put(30520, Race.DWARF); // Reed, Dwarven Village Warehouse Chief
MASTERS.put(30525, Race.DWARF); // Bronk, Dwarven Village Head Blacksmith
// Kamael Village NPCs
MASTERS.put(32171, Race.DWARF); // Hoffa, Warehouse Chief
MASTERS.put(32158, Race.DWARF); // Fisler, Dwarf Guild Warehouse Chief
MASTERS.put(32157, Race.DWARF); // Moka, Dwarf Guild Head Blacksmith
MASTERS.put(32160, Race.DARK_ELF); // Devon, Dark Elf Guild Grand Magister
MASTERS.put(32147, Race.ELF); // Rivian, Elf Guild Grand Master
MASTERS.put(32150, Race.ORC); // Took, Orc Guild High Prefect
MASTERS.put(32153, Race.HUMAN); // Prana, Human Guild High Priest
MASTERS.put(32154, Race.HUMAN); // Aldenia, Human Guild Grand Master
}
private FirstClassTransferTalk()
{
super(FirstClassTransferTalk.class.getSimpleName(), "ai/npc/VillageMasters");
addStartNpc(MASTERS.keySet());
addTalkId(MASTERS.keySet());
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
return event;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = npc.getId() + "_";
if (MASTERS.get(npc.getId()) != player.getRace())
{
return htmltext += "no.html";
}
switch (MASTERS.get(npc.getId()))
{
case HUMAN:
{
if (player.getClassId().level() == 0)
{
if (player.isMageClass())
{
if (npc instanceof L2VillageMasterPriestInstance)
{
htmltext += "mystic.html";
}
}
else
{
if (npc instanceof L2VillageMasterFighterInstance)
{
htmltext += "fighter.html";
}
}
}
else if (player.getClassId().level() == 1)
{
htmltext += "transfer_1.html";
}
else
{
htmltext += "transfer_2.html";
}
break;
}
case ELF:
case DARK_ELF:
case ORC:
{
if (player.getClassId().level() == 0)
{
if (player.isMageClass())
{
htmltext += "mystic.html";
}
else
{
htmltext += "fighter.html";
}
}
else if (player.getClassId().level() == 1)
{
htmltext += "transfer_1.html";
}
else
{
htmltext += "transfer_2.html";
}
break;
}
case DWARF:
{
if (player.getClassId().level() == 0)
{
htmltext += "fighter.html";
}
else if (player.getClassId().level() == 1)
{
htmltext += "transfer_1.html";
}
else
{
htmltext += "transfer_2.html";
}
break;
}
default:
{
htmltext += "no.html";
break;
}
}
return htmltext;
}
public static void main(String[] args)
{
new FirstClassTransferTalk();
}
}