this.inherits(OBJ);
this.set({
    unit: "张",
    name: "契约",
    desc: "一张契约",
    value: 100000,
    grade: 5
});
this.on_use = function (me, par) {
    if (!me.is_player) return me.notify_fail("你不能使用契约书。");
    if (me.environment.parent.id != "home") return me.notify_fail("你只能在自己家使用契约。");
    if (!this.npc_path) return me.notify("你使用了契约书，可是没有任何反应。");
    var npc = NPC.CLONE(this.npc_path);
    if (!npc) return me.notify("你使用了契约书，可是没有任何反应。");
    var max = me.query_temp("max_follower", 3);
    var is_max = false;
    if (me.follower && me.follower.length >= max) is_max = true;
    if (!par && is_max) {
        var str = ["{type:\"cmds\",items:["];
        for (var i = 0; i < me.follower.length; i++) {
            if (me.follower[i].path == npc.path) {
                return me.notify_fail("你已经拥有" + npc.name + "了。");
            }
            var follower = FOLLOWER.GET(me, me.follower[i]);
            if (!follower) return me.notify_fail("未能读取到你的追随者，请尝试出去住所重新进入。");
            if (str.length > 1) str.push(",");
            str.push("{cmd:\"use ");
            str.push(this.id);
            str.push(" ");
            str.push(follower.id);
            str.push("\",name:\"继承");
            str.push(follower.name);
            str.push("的属性\"}");
        }
        me.send("你家的位置已经不多了，请选择如何安置" + npc.name
            + "：\n<hir>会继承你选择的随从的经验，潜能，背包，装备。技能取两者的最高等级，进阶后的技能将保持等级不变</hir>");
        str.push("]}");
        me.send(str.join(""));
        return false;
    } else if (par) {
        for (var i = 0; i < me.follower.length; i++) {
            if (me.follower[i].path == npc.path) {
                return me.notify_fail("你已经拥有" + npc.name + "了。");
            }
        }
        var follower = FOLLOWER.GET(me, { id: par });
        if (!follower) return me.notify_fail("你家没有这个人。");
        // for (let sk in follower.skills) {
        //     let skill = follower.skills[sk];
        //     if (skill.addin && skill.addin.length)
        //         return me.notify_fail(follower.name
        //             + "的技能" +
        //             SKILL.get(sk).query_color_name(follower) + "已经进阶，取消进阶才可以覆盖。");
        // }
        let old_name = follower.name;
        FOLLOWER.REPLACE(me, follower, npc);
        follower.master_json = null;
        if (follower.actions) {
            for (let item of follower.actions) {
                item.name = item.name.replace(old_name, npc.name);
            }
        }
        me.notify("<him>恭喜你获得了" + npc.name + "的追随。</him>");
    } else {
        if (me.add_follower(npc)) {
            me.notify("<him>恭喜你获得了" + npc.name + "的追随。</him>");
            me.environment.item_changed(FOLLOWER.GET(me, npc), true);
        } else {
            return me.notify_fail("召唤失败。");
        }
    }


}
this.on_create = function (path, par) {
    if (!par) {
        return;
    }
    path = this.npcs[par.substr(1)];
    if (!path) return;
    var npc = NPC.CLONE(path);
    if (!npc) return;
    this.name = "契约：" + npc.name;
    this.desc = "这是一张契约书，在你的家里使用就可以拥有" + npc.name + "，你最多可以拥有三个追随者，新增的会继承原先NPC的技能，装备，物品。";
    this.npc_path = path;
}
this.npcs = {
    wang: "follower/wang",
    shuang: "follower/shuang",
    zhou: "follower/zhou",
    cheng: "follower/cheng",
    xiaozhao: "follower/xiaozhao",
    zhang: "follower/zhang",
    xia: "follower/xia",
    wen: "follower/wenyi",
    liumang: "yz/lm/xiaolm",
    wei: "yz/lcy/weichunfang",
    aobai: "bj/ao/aobai",
    qufeiyan: "wuyue/henshan/qufeiyan",
    huang: "follower/huang",
    azi: "follower/azi",
    azhu: "murong/azhu",
    abi: "murong/abi",
    long: "follower/xiaolongnv",
    qing: "follower/qing",
    qin: "follower/qin",
    lang: "follower/lang",
    dini: "follower/dini",
    shimei: "follower/shimei"
};