/* $Id$
* EOSERV is released under the zlib license.
* See LICENSE.txt for more info.
*/
const int WISEMAN_NPC_ID = 166;
void karma_menu(Character &character, int param)
{
Dialog @dialog = new Dialog("Karma Quest");
dialog.AddText("What shall i do to your karma?");
dialog.AddLink("Take 10 Karma", "do_karma", -10);
dialog.AddLink("Take 100 Karma", "do_karma", -100);
dialog.AddLink("Give 10 Karma", "do_karma", 10);
dialog.AddLink("Give 100 Karma", "do_karma", 100);
character.OpenDialog(dialog);
}
void do_karma(Character &character, int param)
{
character.karma = character.karma + param;
}
void class_menu(Character &character, int param)
{
Dialog @dialog = new Dialog("Karma Quest");
dialog.AddText("This is a temporary menu to set your class thru the quest-engine, will be better later on.");
for (PtrVector_Iterator<ECF_Data> i(character.world.ecf.data); i.InRange(); i.Forward())
{
ECF_Data @class = i.Dereference();
dialog.AddLink("Make me " + class.name, "do_class", class.id);
}
character.OpenDialog(dialog);
}
void do_class(Character &character, int param)
{
character.clas = param;
}
bool npc_click(CharacterEvent &e)
{
if (e.target_npc.id == WISEMAN_NPC_ID)
{
Dialog @dialog = new Dialog("Karma Quest");
dialog.AddText("Hellow stranger, what can i do for you");
dialog.AddLink("Karma menu", "karma_menu", 0);
dialog.AddLink("Class menu", "class_menu", 0);
e.character.OpenDialog(dialog);
return true;
}
return false;
}
bool install(HookManager @hookmanager)
{
if (enf.Get(WISEMAN_NPC_ID).type != ENF::Quest)
{
Wrn("wiseman script not installed: WISEMAN_NPC_ID not set or not quest NPC");
return false;
}
hookmanager.Register("character/npc/click", "npc_click");
return true;
}