Commit 464164f0 authored by nanahira's avatar nanahira

customize punishing quit before match

parent 72665f32
......@@ -146,6 +146,7 @@
"check_permit": "https://api.mycard.moe/ygopro/match/permit",
"post_score": false,
"get_score": false,
"punish_quit_before_match": false,
"init_post": {
"enabled": false,
"url": "https://api.mycard.moe/ygopro/match/clear",
......
......@@ -1346,10 +1346,13 @@ class Room
else
#log.info(client.name, @started, @disconnector, @random_type, @players.length)
if @arena and !@started and @disconnector != 'server' and !@arena_score_handled
for player in @players when player.pos != 7
@scores[player.name_vpass] = 0
if @players.length == 2 and !client.arena_quit_free
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
@scores[player.name_vpass] = 0
@scores[client.name_vpass] = -9
else
for player in @players when player.pos != 7
@scores[player.name_vpass] = -5
@arena_score_handled = true
index = _.indexOf(@players, client)
@players.splice(index, 1) unless index == -1
......@@ -3314,15 +3317,16 @@ if settings.modules.mycard.enabled
CLIENT_kick(room.waiting_for_player)
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)
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]
if player and player.join_time and !player.arena_quit_free
waited_time = moment() - player.join_time
if waited_time >= 30000
ygopro.stoc_send_chat(player, "${arena_wait_timeout}", ygopro.constants.COLORS.BABYBLUE)
player.arena_quit_free = true
else if waited_time >= 5000 and waited_time < 6000
ygopro.stoc_send_chat(player, "${arena_wait_hint}", ygopro.constants.COLORS.BABYBLUE)
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
player = room.get_playing_player()[0]
if player and player.join_time and !player.arena_quit_free
waited_time = moment() - player.join_time
if waited_time >= 30000
ygopro.stoc_send_chat(player, "${arena_wait_timeout}", ygopro.constants.COLORS.BABYBLUE)
player.arena_quit_free = true
else if waited_time >= 5000 and waited_time < 6000
ygopro.stoc_send_chat(player, "${arena_wait_hint}", ygopro.constants.COLORS.BABYBLUE)
return
, 1000
......
......@@ -1733,7 +1733,7 @@
};
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) {
return;
}
......@@ -1746,15 +1746,23 @@
client.server.destroy();
} else {
if (this.arena && !this.started && this.disconnector !== 'server' && !this.arena_score_handled) {
ref2 = this.players;
for (m = 0, len2 = ref2.length; m < len2; m++) {
player = ref2[m];
if (player.pos !== 7) {
this.scores[player.name_vpass] = 0;
if (settings.modules.arena_mode.punish_quit_before_match && this.players.length === 2 && !client.arena_quit_free) {
ref2 = this.players;
for (m = 0, len2 = ref2.length; m < len2; m++) {
player = ref2[m];
if (player.pos !== 7) {
this.scores[player.name_vpass] = 0;
}
}
}
if (this.players.length === 2 && !client.arena_quit_free) {
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;
}
......@@ -4254,19 +4262,21 @@
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);
}
}
for (n = 0, len3 = ROOM_all.length; n < len3; n++) {
room = ROOM_all[n];
if (!(room && room.arena && !room.started && room.get_playing_player().length < 2)) {
continue;
}
player = room.get_playing_player()[0];
if (player && player.join_time && !player.arena_quit_free) {
waited_time = moment() - player.join_time;
if (waited_time >= 30000) {
ygopro.stoc_send_chat(player, "${arena_wait_timeout}", ygopro.constants.COLORS.BABYBLUE);
player.arena_quit_free = true;
} else if (waited_time >= 5000 && waited_time < 6000) {
ygopro.stoc_send_chat(player, "${arena_wait_hint}", ygopro.constants.COLORS.BABYBLUE);
if (settings.modules.arena_mode.punish_quit_before_match) {
for (n = 0, len3 = ROOM_all.length; n < len3; n++) {
room = ROOM_all[n];
if (!(room && room.arena && !room.started && room.get_playing_player().length < 2)) {
continue;
}
player = room.get_playing_player()[0];
if (player && player.join_time && !player.arena_quit_free) {
waited_time = moment() - player.join_time;
if (waited_time >= 30000) {
ygopro.stoc_send_chat(player, "${arena_wait_timeout}", ygopro.constants.COLORS.BABYBLUE);
player.arena_quit_free = true;
} else if (waited_time >= 5000 && waited_time < 6000) {
ygopro.stoc_send_chat(player, "${arena_wait_hint}", 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