this.inherits(COMMAND);
this.command = "jinglian";
this.regex = /^(\w+)(?:\s(\w+))?$/;
this.enter = function (player, objid, isok) {
var obj = player.find_obj(objid);
if (!obj) {
return player.notify("你要精炼什么装备?");
}
if (!obj.is_equipment || obj.no_jinglian) return player.notify("这个东西没办法精炼。");
if (!obj.grade) return player.notify(obj.color_name + "品质太低了,承受不住再多的力量。");
if (obj.level >= 12) return player.notify(obj.color_name + "已经到了极限,无法再承受更多的力量。");
var item = {
path: obj.grade == 6 ? "st/yuanjing" : "st/xuanjing",
color_name: obj.grade == 6 ? "元晶" : "玄晶", count: 0
};
for (var i = 0; i < player.items.length; i++) {
if (player.items[i].is(item.path)) {
item = player.items[i];
break;
}
}
var lv = obj.level + 1;
var need_count = obj.grade < 6 ? Math.pow(2, lv) * obj.grade : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12][lv - 1];
var full_count = 0;
if (obj.grade < 6) {
full_count = (Math.pow(2, 12 + 1) - 2) * obj.grade;
if (obj.level > 0) {
full_count -= (Math.pow(2, obj.level + 1) - 2) * obj.grade;
}
} else {
full_count = (1 + 12) * 12 / 2;
if (obj.level > 0) {
full_count -= (1 + obj.level) * obj.level / 2;
}
}
//绿8190 橙5*8190
if (isok) {
let isfull = isok === 'full';
if (isfull) need_count = full_count;
if (item.count < need_count) {
return player.notify("你的" + item.color_name + "数量不够精炼。");
}
item = player.remove_obj(item, need_count);
if (!item) player.notify("你的" + item.color_name + "数量不够精炼。");
player.send_room("$N用内力把" + item.color_name + "炼化,小心翼翼的引入" + obj.color_name + "。");
if (isfull) {
player.send_room("$N的" + obj.color_name + "古井无波,空中却一瞬间电闪雷鸣,似有神兵出世,轰鸣声中你好似听到有阵阵龙吟自" + obj.color_name + "中传出!");
obj.level_up(12);
} else {
if (obj.level < 5) {
player.send_room("$N的" + obj.color_name + "发出一阵耀眼的光芒,看上去似乎变强了!");
} else if (obj.level < 9) {
player.send_room("$N的" + obj.color_name + "发出一阵璀璨的光芒,看上去似乎更加强大了!");
} else if (obj.level < 12) {
player.send_room("$N的" + obj.color_name + "爆出一阵炽热的光芒,周身似乎有雷光环绕,连绵不绝!");
} else {
player.send_room("$N的" + obj.color_name + "古井无波,空中却一瞬间电闪雷鸣,似有神兵出世,轰鸣声中你好似听到有阵阵龙吟自" + obj.color_name + "中传出!");
}
obj.level_up(obj.level + 1);
}
// lv = obj.level + 1;
// need_count = Math.pow(2, lv) * obj.grade;
player.items_changed(obj);
return WORLD.STATS.updateWeapon(player, obj);
}
var str = ['{type:"dialog",dialog:"pack",jldesc:\"',
obj.color_name, "
精炼", query_level_color(lv), " 需要以下物品:
"];
str.push(item.color_name, ' ');
if (item.count < need_count) {
str.push("");
}
str.push(item.count, '/', need_count);
if (item.count < need_count) {
str.push("");
}
str.push("
精炼", query_level_color(12), " 需要以下物品:
");
str.push(item.color_name, ' ');
if (item.count < full_count) {
str.push("");
}
str.push(item.count, '/', full_count);
if (item.count < need_count) {
str.push("");
}
str.push('",id:"');
str.push(obj.id);
str.push('"}');
player.notify(str.join(""));
}
function query_level_color(lv) {
if (!lv) return "";
var jlcolor = ["", "hig", "hig", "hic", "hic", "hiy", "hiy", "HIZ", "HIZ", "hio", "hio", "ord", "ord"];
var cc = jlcolor[lv];
return "<" + cc + ">+" + lv + " " + cc + ">";
}