Commit 464164f0 authored by nanahira's avatar nanahira

customize punishing quit before match

parent 72665f32
...@@ -146,6 +146,7 @@ ...@@ -146,6 +146,7 @@
"check_permit": "https://api.mycard.moe/ygopro/match/permit", "check_permit": "https://api.mycard.moe/ygopro/match/permit",
"post_score": false, "post_score": false,
"get_score": false, "get_score": false,
"punish_quit_before_match": false,
"init_post": { "init_post": {
"enabled": false, "enabled": false,
"url": "https://api.mycard.moe/ygopro/match/clear", "url": "https://api.mycard.moe/ygopro/match/clear",
......
...@@ -1346,10 +1346,13 @@ class Room ...@@ -1346,10 +1346,13 @@ class Room
else else
#log.info(client.name, @started, @disconnector, @random_type, @players.length) #log.info(client.name, @started, @disconnector, @random_type, @players.length)
if @arena and !@started and @disconnector != 'server' and !@arena_score_handled if @arena and !@started and @disconnector != 'server' and !@arena_score_handled
if settings.modules.arena_mode.punish_quit_before_match and @players.length == 2 and !client.arena_quit_free
for player in @players when player.pos != 7 for player in @players when player.pos != 7
@scores[player.name_vpass] = 0 @scores[player.name_vpass] = 0
if @players.length == 2 and !client.arena_quit_free
@scores[client.name_vpass] = -9 @scores[client.name_vpass] = -9
else
for player in @players when player.pos != 7
@scores[player.name_vpass] = -5
@arena_score_handled = true @arena_score_handled = true
index = _.indexOf(@players, client) index = _.indexOf(@players, client)
@players.splice(index, 1) unless index == -1 @players.splice(index, 1) unless index == -1
...@@ -3314,6 +3317,7 @@ if settings.modules.mycard.enabled ...@@ -3314,6 +3317,7 @@ if settings.modules.mycard.enabled
CLIENT_kick(room.waiting_for_player) CLIENT_kick(room.waiting_for_player)
else if time_passed >= (settings.modules.random_duel.hang_timeout - 20) and not (time_passed % 10) else if time_passed >= (settings.modules.random_duel.hang_timeout - 20) and not (time_passed % 10)
ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} ${afk_warn_part1}#{settings.modules.random_duel.hang_timeout - time_passed}${afk_warn_part2}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} ${afk_warn_part1}#{settings.modules.random_duel.hang_timeout - time_passed}${afk_warn_part2}", ygopro.constants.COLORS.RED)
if settings.modules.arena_mode.punish_quit_before_match
for room in ROOM_all when room and room.arena and !room.started and room.get_playing_player().length < 2 for room in ROOM_all when room and room.arena and !room.started and room.get_playing_player().length < 2
player = room.get_playing_player()[0] player = room.get_playing_player()[0]
if player and player.join_time and !player.arena_quit_free if player and player.join_time and !player.arena_quit_free
......
...@@ -1733,7 +1733,7 @@ ...@@ -1733,7 +1733,7 @@
}; };
Room.prototype.disconnect = function(client, error) { Room.prototype.disconnect = function(client, error) {
var index, left_name, len2, m, player, ref2; var index, left_name, len2, len3, m, n, player, ref2, ref3;
if (client.had_new_reconnection) { if (client.had_new_reconnection) {
return; return;
} }
...@@ -1746,6 +1746,7 @@ ...@@ -1746,6 +1746,7 @@
client.server.destroy(); client.server.destroy();
} else { } else {
if (this.arena && !this.started && this.disconnector !== 'server' && !this.arena_score_handled) { if (this.arena && !this.started && this.disconnector !== 'server' && !this.arena_score_handled) {
if (settings.modules.arena_mode.punish_quit_before_match && this.players.length === 2 && !client.arena_quit_free) {
ref2 = this.players; ref2 = this.players;
for (m = 0, len2 = ref2.length; m < len2; m++) { for (m = 0, len2 = ref2.length; m < len2; m++) {
player = ref2[m]; player = ref2[m];
...@@ -1753,8 +1754,15 @@ ...@@ -1753,8 +1754,15 @@
this.scores[player.name_vpass] = 0; this.scores[player.name_vpass] = 0;
} }
} }
if (this.players.length === 2 && !client.arena_quit_free) {
this.scores[client.name_vpass] = -9; this.scores[client.name_vpass] = -9;
} else {
ref3 = this.players;
for (n = 0, len3 = ref3.length; n < len3; n++) {
player = ref3[n];
if (player.pos !== 7) {
this.scores[player.name_vpass] = -5;
}
}
} }
this.arena_score_handled = true; this.arena_score_handled = true;
} }
...@@ -4254,6 +4262,7 @@ ...@@ -4254,6 +4262,7 @@
ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " ${afk_warn_part1}" + (settings.modules.random_duel.hang_timeout - time_passed) + "${afk_warn_part2}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " ${afk_warn_part1}" + (settings.modules.random_duel.hang_timeout - time_passed) + "${afk_warn_part2}", ygopro.constants.COLORS.RED);
} }
} }
if (settings.modules.arena_mode.punish_quit_before_match) {
for (n = 0, len3 = ROOM_all.length; n < len3; n++) { for (n = 0, len3 = ROOM_all.length; n < len3; n++) {
room = ROOM_all[n]; room = ROOM_all[n];
if (!(room && room.arena && !room.started && room.get_playing_player().length < 2)) { if (!(room && room.arena && !room.started && room.get_playing_player().length < 2)) {
...@@ -4270,6 +4279,7 @@ ...@@ -4270,6 +4279,7 @@
} }
} }
} }
}
}, 1000); }, 1000);
} }
......
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