#include <ansi.h>
inherit NPC;

void create()
{
        set_name("珠宝商", ({ "zhubao shang"}) );
        set("nickname", HIG "无奸不商" NOR );
	set("gender", "男性" );
        set("age", 60);
        set("long", )
        set("str", 25);
        set("con", 17);
        set("int", 30);
	
	set("attitude", "peaceful");
        
	set("inquiry", ([
            "rumor"  : "这里是世外之地，你不过一凡夫俗子，问什么问？\n",
	    "name"  : "怎么？你想勒索我呀？？\n",
       ]) );

        setup();
}

void init()
{
        ::init();
        add_action("do_answer","answer");
	add_action("do_ask_back","huan");
}


int accept_object(object who, object ob)
{	
	int level;
	level=who->query_temp("baoshi/level");
	if(!level) who->set_temp("baoshi/level",ob->query("level"));
	if(ob->query("level")!=who->query_temp("baoshi/level"))
	{
	    message("vision","珠宝商迷惑的看着你，说道：对不起，我这里只能换取同类型的宝石。\n");
	    message("vision","珠宝商把"+ob->query("name")+"还给了你。\n");
	    return 2;
	}
	
	who->add_temp("baoshi/num",1);
	
	switch ((string)ob->query("type") ) 
	{
		case "yellow": 
			who->add_temp("baoshi/yellow",1);
			break;
		case "purple":
			who->add_temp("baoshi/purple",1);
			break;
		case "red": 
			who->add_temp("baoshi/red",1);
			break;
		case "green": 
			who->add_temp("baoshi/green",1);
			break;
		case "blue": 
			who->add_temp("baoshi/blue",1);
			break;
		default :
			message("vision","这是什么！想骗我呀？？",who);
			return 2;
	}
	message("vision","珠宝商低头检视了一下手中的"+(string)ob->query("name")+
			"点了点头说：\n",who);
	write("你可以换下面的法宝：\n"+
	      "     蓝宝石\n"+
	      "     紫宝石\n"+
	      "     红宝石\n"+
	      "     黄宝石\n"+
	      "     绿宝石\n"+
	      "     钻石\n");	  	
	say("这位"+RANK_D->query_respect(who)+"要造换什么宝石？决定了告诉我(answer)。\n");
	return 1;

}

int do_answer(string arg)
{
	object me=this_player();
	int level=me->query_temp("baoshi/level");
	level=level+1;

	if( (arg=="蓝宝石" || arg=="紫宝石" || arg=="红宝石" || arg=="黄宝石" || arg=="绿宝石"  )
	&& me->query_temp("baoshi/num") < 2 ){
		write("你的宝石数目还不够换取这种宝石。\n");
		return 0;
	}
	if( (arg=="钻石" )
	&& (!me->query_temp("baoshi/green")||!me->query_temp("baoshi/red")|| 
	!me->query_temp("baoshi/yellow"||!me->query_temp("baoshi/blue")||
	!me->query_temp("baoshi/purple")) ){
		write("你的宝石种类不够，不能换取钻石。\n");
		return 0;
	}
	if(arg!="钻石"&&level==4){
		write("这么大的买卖，小店还承受不起。");
		return 0;
	}
	
	if(!arg){
	   write("你要换什么宝石？\n");
	   return 0;
	}
	message("vision",me->name()+"对珠宝商说了几句话。\n",environment(me), ({me}) );
	switch (arg) {
	  case "钻石" :
		newob(level,zuan);
		break;
	  case "黄宝石" :
		newob(level,yellow);
		break;
	  case "绿宝石" :
		newob(level,green);
		break;
	  case "红宝石" :
		newob(level,red);
		break;
	  case "紫宝石" :
		newob(level,purple);
		break;
	  case "蓝宝石" :
		newob(level,blue);
		break;
	  default :
		message_vision(HIC "珠宝商一脸狐疑：这是什么东西？？\n" NOR,me);
		return notify_fail("珠宝商仔细的说：我这里可没有那种不上档次的东西!!\n");
	}
	ob->delete_temp("baoshi");
	return 1;
}

int do_ask_back()
{
	object me,obj;
	me = this_player();
	if( !(me->query_temp("baoshi/num")) )
		return notify_fail("你给过我什么东西吗？\n");

	if(me->query_temp("baoshi/yellow") ){
		for(i=0;i<me->query_temp("baoshi/yellow");i++)
		newob(level,yellow);
	}
	if(me->query_temp("baoshi/blue") ){	
		for(i=0;i<me->query_temp("baoshi/blue");i++)
		newob(level,blue);
	}
	if(me->query_temp("baoshi/red") ){	
		for(i=0;i<me->query_temp("baoshi/red");i++)
		newob(level,red);
	}
	if(me->query_temp("baoshi/green") )
	{	
		for(i=0;i<me->query_temp("baoshi/green");i++)
		newob(level,green);
	}
	if(me->query_temp("baoshi/purple") )
	{	
		for(i=0;i<me->query_temp("baoshi/purple");i++)
		newob(level,purple);
	}
	
	ob->delete_temp("baoshi");
	return 1;
}
void newob(int level,string type)
{	
	object obj;
	string filename;
	filename="bs_"+type+level;
	obj=new(filename);
	obj->move(me);
	message_vision(HIC "珠宝商给了$N一块"+obj->query("name")+"。\n" NOR, me);
	
}

