73 lines
2.7 KiB
JavaScript
73 lines
2.7 KiB
JavaScript
this.inherits(COMMAND);
|
|
this.command = "enable";
|
|
this.regex = /^(\w+?)\s+(.+?)$/;
|
|
this.allow_fight = false;
|
|
this.enter = function (me, base, skill, no_sent) {
|
|
if (!me.skills) return me.notify("你还不会任何技能。");
|
|
var baseskill = me.skills[base];
|
|
if (!baseskill) return me.notify("你还不会这个基本技能。");
|
|
var baseskill_base = SKILL.get(base);
|
|
if (!baseskill_base || baseskill_base.type !== SKILL_TYPES.BASE) {
|
|
return me.notify("没有这个基本技能。");
|
|
}
|
|
var old_skill;
|
|
if (baseskill.enable_skill) {
|
|
old_skill = me.skills[baseskill.enable_skill];
|
|
if (!old_skill) return me.notify("技能错误,装备失败。");
|
|
old_skill[base] = false;
|
|
old_skill = SKILL.get(baseskill.enable_skill);
|
|
if (old_skill) {
|
|
old_skill.disenable(me, base, me.query_skill(baseskill.enable_skill));
|
|
//me.notify('{type:"dialog",dialog:"skills",id:"' + base + '",enable:false}');
|
|
}
|
|
baseskill.enable_skill = null;
|
|
|
|
} else {
|
|
if (skill == "none") return;
|
|
}
|
|
if (WEAPON_SKILLS[base]) {
|
|
|
|
me.remove_status("weapon", true);
|
|
} else {
|
|
me.remove_status(base, true);
|
|
}
|
|
if (skill && skill !== "none") {
|
|
var sp_skill = me.skills[skill];
|
|
var sp_skill_base = SKILL.get(skill);
|
|
if (!sp_skill) {
|
|
me.remove_status(base, true);
|
|
me.init_skill();
|
|
me.recount();
|
|
return me.notify("你不会这个技能。");
|
|
}
|
|
|
|
if (!sp_skill_base || sp_skill_base.enable(me, base, me.query_skill(skill)) !== true)
|
|
return false;
|
|
baseskill.enable_skill = skill;
|
|
sp_skill[base] = true;
|
|
me.notify("你决定使用" + sp_skill_base.query_color_name(me) + "做为" + baseskill_base.color_name + "的特殊技能。");
|
|
if (me.is_player)
|
|
me.notify('{type:"dialog",dialog:"skills",id:"' + base + '",enable:"' + skill + '"}');
|
|
else
|
|
me.notify('{type:"dialog",dialog:"skills","from":"' + me.id + '",id:"' + base + '",enable:"' + skill + '"}');
|
|
} else {
|
|
baseskill.enable_skill = null;
|
|
me.notify("你决定取消使用" + old_skill.query_color_name(me) + "做为" + baseskill_base.color_name + "的特殊技能。");
|
|
if (me.is_player)
|
|
me.notify('{type:"dialog",dialog:"skills",id:"' + base + '",enable:false}');
|
|
else
|
|
me.notify('{type:"dialog",dialog:"skills","from":"' + me.id + '",id:"' + base + '",enable:false}');
|
|
}
|
|
if (!no_sent) {
|
|
me.init_skill();
|
|
me.recount();
|
|
me.notify_hp();
|
|
}
|
|
|
|
}
|
|
|
|
const WEAPON_SKILLS = {
|
|
"sword": 4,
|
|
"blade": 5,
|
|
"staff": 7, "club": 8, "whip": 9
|
|
}; |