Commit 852bb57d authored by nanahira's avatar nanahira

added death rule 2

parent 2dbfaeb5
......@@ -209,6 +209,8 @@
"death_remain_final": "若本回合基本分发生变动,在该回合结束时决斗即告结束,生命值多的玩家获得本场决斗的胜利。",
"death_finish_part1": "加时赛决斗结束,恭喜 ",
"death_finish_part2": " 获得本次决斗的胜利。",
"death2_finish_part1": "加时赛开始,恭喜 ",
"death2_finish_part2": " 获得本次比赛的胜利。",
"side_timeout_part1": "你现在有",
"side_timeout_part2": "分钟来更换副卡组。",
"side_overtime": "你因为更换副卡组超时,本次比赛已被判负。",
......
......@@ -1364,10 +1364,10 @@ ygopro.stoc_follow 'GAME_MSG', false, (buffer, info, client, server)->
room.turn = room.turn + 1
if room.death
if room.turn >= room.death
oppo_pos = if room.hostinfo.mode == 2 then 2 else 1
if room.dueling_players[0].lp != room.dueling_players[oppo_pos].lp and room.turn > 1
ygopro.stoc_send_chat_to_room(room, "${death_finish_part1}" + (if room.dueling_players[0].lp > room.dueling_players[oppo_pos].lp then room.dueling_players[0] else room.dueling_players[oppo_pos]).name + "${death_finish_part2}", ygopro.constants.COLORS.BABYBLUE)
ygopro.ctos_send((if room.dueling_players[0].lp > room.dueling_players[oppo_pos].lp then room.dueling_players[oppo_pos] else room.dueling_players[0]).server, 'SURRENDER')
if room.dueling_players[0].lp != room.dueling_players[1].lp and room.turn > 1
win_pos = if room.dueling_players[0].lp > room.dueling_players[1].lp then 0 else 1
ygopro.stoc_send_chat_to_room(room, "${death_finish_part1}" + room.dueling_players[win_pos].name + "${death_finish_part2}", ygopro.constants.COLORS.BABYBLUE)
ygopro.ctos_send(room.dueling_players[1 - win_pos].server, 'SURRENDER')
else
room.death = -1
ygopro.stoc_send_chat_to_room(room, "${death_remain_final}", ygopro.constants.COLORS.BABYBLUE)
......@@ -1391,7 +1391,7 @@ ygopro.stoc_follow 'GAME_MSG', false, (buffer, info, client, server)->
#log.info room.dueling_players, pos
room.scores[room.winner_name] = room.scores[room.winner_name] + 1
if room.death
if settings.modules.http.quick_death_rule
if settings.modules.http.quick_death_rule and settings.modules.http.quick_death_rule != 2
room.death = -1
else
room.death = 5
......@@ -2246,8 +2246,17 @@ if settings.modules.http
ygopro.stoc_send_chat_to_room(room, "${death_start}", ygopro.constants.COLORS.BABYBLUE)
else
if settings.modules.http.quick_death_rule
room.death = -1
ygopro.stoc_send_chat_to_room(room, "${death_start_quick}", ygopro.constants.COLORS.BABYBLUE)
if settings.modules.http.quick_death_rule == 2
if room.scores[room.dueling_players[0].name] == room.scores[room.dueling_players[1].name]
room.death = 5
ygopro.stoc_send_chat_to_room(room, "${death_start_siding}", ygopro.constants.COLORS.BABYBLUE)
else
win_pos = if room.scores[room.dueling_players[0].name] > room.scores[room.dueling_players[1].name] then 0 else 1
ygopro.stoc_send_chat_to_room(room, "${death2_finish_part1}" + room.dueling_players[win_pos].name + "${death2_finish_part2}", ygopro.constants.COLORS.BABYBLUE)
room.dueling_players[1 - win_pos].destroy()
else
room.death = -1
ygopro.stoc_send_chat_to_room(room, "${death_start_quick}", ygopro.constants.COLORS.BABYBLUE)
else
room.death = 5
ygopro.stoc_send_chat_to_room(room, "${death_start_siding}", ygopro.constants.COLORS.BABYBLUE)
......
......@@ -1609,7 +1609,7 @@
}
ygopro.stoc_follow('GAME_MSG', false, function(buffer, info, client, server) {
var card, j, len, line, msg, oppo_pos, playertype, pos, reason, ref, ref1, ref2, room, trigger_location, val;
var card, j, len, line, msg, playertype, pos, reason, ref, ref1, ref2, room, trigger_location, val, win_pos;
room = ROOM_all[client.rid];
if (!room) {
return;
......@@ -1640,10 +1640,10 @@
room.turn = room.turn + 1;
if (room.death) {
if (room.turn >= room.death) {
oppo_pos = room.hostinfo.mode === 2 ? 2 : 1;
if (room.dueling_players[0].lp !== room.dueling_players[oppo_pos].lp && room.turn > 1) {
ygopro.stoc_send_chat_to_room(room, "${death_finish_part1}" + (room.dueling_players[0].lp > room.dueling_players[oppo_pos].lp ? room.dueling_players[0] : room.dueling_players[oppo_pos]).name + "${death_finish_part2}", ygopro.constants.COLORS.BABYBLUE);
ygopro.ctos_send((room.dueling_players[0].lp > room.dueling_players[oppo_pos].lp ? room.dueling_players[oppo_pos] : room.dueling_players[0]).server, 'SURRENDER');
if (room.dueling_players[0].lp !== room.dueling_players[1].lp && room.turn > 1) {
win_pos = room.dueling_players[0].lp > room.dueling_players[1].lp ? 0 : 1;
ygopro.stoc_send_chat_to_room(room, "${death_finish_part1}" + room.dueling_players[win_pos].name + "${death_finish_part2}", ygopro.constants.COLORS.BABYBLUE);
ygopro.ctos_send(room.dueling_players[1 - win_pos].server, 'SURRENDER');
} else {
room.death = -1;
ygopro.stoc_send_chat_to_room(room, "${death_remain_final}", ygopro.constants.COLORS.BABYBLUE);
......@@ -1674,7 +1674,7 @@
room.scores[room.winner_name] = room.scores[room.winner_name] + 1;
}
if (room.death) {
if (settings.modules.http.quick_death_rule) {
if (settings.modules.http.quick_death_rule && settings.modules.http.quick_death_rule !== 2) {
room.death = -1;
} else {
room.death = 5;
......@@ -2649,7 +2649,7 @@
return callback + "( " + text + " );";
};
requestListener = function(request, response) {
var archive_args, archive_name, archive_process, check, death_room_found, duellog, error, filename, getpath, j, k, l, len, len1, len2, len3, m, parseQueryString, pass_validated, player, ref, replay, room, roomsjson, u;
var archive_args, archive_name, archive_process, check, death_room_found, duellog, error, filename, getpath, j, k, l, len, len1, len2, len3, m, parseQueryString, pass_validated, player, ref, replay, room, roomsjson, u, win_pos;
parseQueryString = true;
u = url.parse(request.url, parseQueryString);
pass_validated = u.query.pass === settings.modules.http.password;
......@@ -2864,8 +2864,19 @@
ygopro.stoc_send_chat_to_room(room, "${death_start}", ygopro.constants.COLORS.BABYBLUE);
} else {
if (settings.modules.http.quick_death_rule) {
room.death = -1;
ygopro.stoc_send_chat_to_room(room, "${death_start_quick}", ygopro.constants.COLORS.BABYBLUE);
if (settings.modules.http.quick_death_rule === 2) {
if (room.scores[room.dueling_players[0].name] === room.scores[room.dueling_players[1].name]) {
room.death = 5;
ygopro.stoc_send_chat_to_room(room, "${death_start_siding}", ygopro.constants.COLORS.BABYBLUE);
} else {
win_pos = room.scores[room.dueling_players[0].name] > room.scores[room.dueling_players[1].name] ? 0 : 1;
ygopro.stoc_send_chat_to_room(room, "${death2_finish_part1}" + room.dueling_players[win_pos].name + "${death2_finish_part2}", ygopro.constants.COLORS.BABYBLUE);
room.dueling_players[1 - win_pos].destroy();
}
} else {
room.death = -1;
ygopro.stoc_send_chat_to_room(room, "${death_start_quick}", ygopro.constants.COLORS.BABYBLUE);
}
} else {
room.death = 5;
ygopro.stoc_send_chat_to_room(room, "${death_start_siding}", ygopro.constants.COLORS.BABYBLUE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment