this.inherits(ROOM);
this.name = "擂台"
this.desc = "你正站在一个白玉汉石砌成方圆数十丈的大擂台上面,擂台下面的观众声嘶力竭的呐喊助威,加油!加油!加油!加油!加油!加油!";
this.exits = { "down": "yz/leitai/ltx" };
this.max_item_count = 1;
this.no_save = true;
this.add_action("fight", null, function (me) { return me.notify("你正在比试。") });
this.add_action("kill", null, function (me) { return me.notify("你正在比试。") });
this.add_action("dazuo", null, function (me) { return me.notify("你正在比试。") });
this.add_action("liaoshang", null, function (me) { return me.notify("你正在比试。") });
this.add_action("relive", null, function (me) { return me.notify("你正在比试。") });
this.start_time = 0;
this.on_enter = function (me) {
if (!me.is_player) return;
me.die = challenge_over;
this.start_time = Date.now();
me.call_interval(x => {
me.send_message("\n挑战还有" + (10 - x) + "秒钟正式开始!", true);
},
1000,
10,
function () {
npc.do_kill(me);
}
);
}
this.on_heart_beat = function (dt) {
if (this.start_time) {
if (dt - this.start_time >= 300000) {
this.start_time = 0;
if (!this.items.length) {
return;
}
if (this.items.length == 1) {
var obj = this.items[0];
if (obj.is_player) {
obj.moveto(obj.query_temp("enter_room"), null, obj.name + "走了进来。", "endfight");
obj.notify("你挑战失败。");
} else {
this.items.length = 0;
obj.environment = null;
}
return;
}
var player = null;
for (var i = 0; i < this.items.length; i++) {
if (this.items[i].is_player) {
player = this.items[i];
} else {
this.items[i].environment = null;
}
}
if (player) {
player.moveto(player.query_temp("enter_room"), null, player.name + "走了进来。", "endfight");
player.notify("你挑战超时,自动离开擂台。");
}
this.items.length = 0;
}
}
}
function challenge_over(killer) {
if (this.environment.items.length != 2) {
return this.send("比武出现问题,请练习管理解决。");;
}
var p1 = this.environment.items[0];
var p2 = this.environment.items[1];
if (!p1.is_player||!p2.is_player) {
return this.send("比武出现问题,请练习管理解决。");;
}
this.die = USER.prototype.die;
killer.die = USER.prototype.die;
this.send_room("比武结束," + killer.name + "获得胜利,5秒钟后将离开擂台。");
killer.send("恭喜你获得胜利,积分+1,目前积分");
this.call_out(move_out, 5000);
}
function move_out() {
}
this.on_leave = function (me, dir) {
return me.notify_fail("你比试完才可以下擂台。");
}