// 有關於 npc 的種種設定, 請到 /doc/build/npc 去參考
inherit NPC;

string do_ask (object me);

void create()
{
        set_name("測試員", ({ "test man", "man" }) );
        set("long", "你看到的是標準測試員, 是菠蘿麵包(wade)的最愛。\n");

	// 年齡
	// 由於系統將會依年齡而計算出, 該怪物之天賦及基本狀態,
	// 故請務必設定怪物的年齡。
	set( "age", 15);

	// 天賦, 請參考 help gift
	// set( "屬性", 數值 );		<-- 數值範圍: 10 - 30
	// 如果沒有設定, 將由年齡計算
        set("str", 33);
        set("cor", 30);

	// 狀態
	// 如果沒有設定, 將由年齡計算, 請參考 help stats
	set( "gin", 200 );
	set( "force_factor", 3 );

	// 一般沒有特殊技能的怪物, 其戰鬥經驗(combat_exp)幾乎決定了怪物的強度。
	// set( "combat_exp", 數值 );
	// set( "score", 數值 );
        set("combat_exp", 100);

	// 技能
	// 如果想做些較厲害的怪物或讓玩家學技能時, 最好的方式即是設定技能。
	// 設定方式:
	//		1.怪物學過的技能: set_skill( "技巧名", 數值 );
	//		2.怪物施展的技能: map_skill( "技巧種類", "技巧名" );
	set_skill("celestial", 10);
	map_skill("force", "celestial");

	// 種族
	// 種族會影響攻擊方式, 請參考 /doc/build/npc 的第八項
	// 如果未指定種族, 系統將會自動選定人類。
	// 目前已知的有: 人類, 賽亞人, 妖魔, 野獸 
	set("race", "人類");

	// 性別
	// 依種族之不同, 有兩種系統: 1.男性, 女性。
	//                           2.雄性, 雌性, 中性。
	// 設定方式: set( "gender", "性別" );
	set( "gender", "男性");

	// 設定 npc 攻擊方式及受功擊部位。
	// set( "limbs", ({ "受功部位1", "受功部位2", ...}) );
        set("limbs", ({ "頭部", "身體", "前腳", "後腳", "尾巴" }) );
	// set( "verbs", ({ "攻擊方式1", "攻擊方式2", ...}) );
        set("verbs", ({ "bite", "claw" }) );

	// 暗語
	// 我們可以在怪物上設定某些暗語, 使得當玩家詢問(ask)特定之
	// 關鍵字時, 怪物能自動做我們預設之動作。
	// 設定方式: set( "inquiry", ([
        //	          "暗語1" : "回應之語\n",
        //	          "暗語2" : (: this_object(), "呼叫副程式之名" :)
        //	        ]) );
	set("inquiry", ([
	    "wade"	:	"哈哈, 他不是史上最偉大的神嗎?\n",
	    "god"	:	(: do_ask :),
	]) );

        // attitude npc 的戰鬥行為請參考 /doc/help/attitude
        set("attitude", "friendly");

        set("chat_chance", 6);
        set("chat_msg", ({
        }) );

	// 底下的可以用到 eqs/weapons 裡, 可增強該 mob 的能力
	// if armor then 加 (+xxx)
	// if /dodge 加enable level
	// if spells 加enable spells level
        set_temp("apply/attack", 15);
        set_temp("apply/damage", 6);
        set_temp("apply/armor", 2);

        setup();
}

//   /std/npc/npc.c 裡面預設了幾個 function
//   所謂的 npc 其實是指 mob & player, 也就是在網路上所模擬出來的角色
// random_move 可以用來在 npc 受傷過重或某種情況下自動逃跑
//  參考 ???
// 也可以加上個 return_home() 讓 mob 跑回家
//  參考 ???
// chat_msg  其實是由 chat() 函數呼叫的, 可以自己定義 chat()
//  參考 /d/wiz/npc/judge.c
// cast_spell()  可以讓 npc 施法術
//  參考 /d/temple/npc/taoist.c
// exert_function()  可以讓 npc 使用自己的內功心法
//   參考 /d/waterfog/npc/guard.c
// perform_action()  可以讓 npc 使用自己的 skill
//   參考 /d/snow/npc/girl.c"
// is_fighting() 可以偵測是否戰鬥中
//   參考 /d/npc/sungoku.c


// 定義在人物物件中的附加函數(apply functions)
// void defeated_enemy(object victim)
// 當這名人物打昏一個敵人的時候會呼叫這個附加函數﹐victim 即是被打昏的的敵人物件
// 呼叫者: COMBAT_D
//   參考: /d/snow/npc/sungoku.c
// void killed_enemy(object victim)
// 當這名人物殺死一個敵人的時候會呼叫這個附加函數
// 呼叫者: COMBAT_D
//   參考: /oldpine/npc/spy.c
// int accept_fight(object who)
// 當有其他生物對這個人物下 fight 指令的時候﹐會呼叫這個附加函數
// 呼叫者: "fight" 指令
//   參考: /d/npc/sungoku.c
// int accept_object(object who, object item)
// 當有人用 give 指令給這個非玩家人物東西時﹐會呼叫這個附加函數
// 呼叫者: "give" 指令
//   參考: /d/snow/npc/dog.c
// void recruit_apprentice(objct apprentice)
// 當一個人物收了另一個人物做弟子時會呼叫這個附加函數﹐
// 呼叫者: "apprentice" 指令
//   參考:   ????

string do_ask (object me)
{
/*
  if (!arg)
    return "你想問我什麼啊?!\n";
*/

  return "難道你不知道最偉大的神是菠蘿麵包(Wade)嗎?\n";
}
