From 28b5206aa7c819055c947b21a79f0357c7f91426 Mon Sep 17 00:00:00 2001 From: copcap Date: Mon, 6 May 2024 15:19:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=98=E6=9B=B4=E5=8A=BF?= =?UTF-8?q?=E5=8A=9B=E5=9C=A8=E5=BD=95=E5=83=8F=E5=92=8C=E8=81=94=E6=9C=BA?= =?UTF-8?q?=E9=87=8D=E8=BF=9E=E4=B8=AD=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- noname/game/index.js | 21 ++++++++++++++++++++- noname/library/element/content.js | 1 + noname/library/index.js | 3 ++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/noname/game/index.js b/noname/game/index.js index 56ccc0fce..4ed353e5f 100644 --- a/noname/game/index.js +++ b/noname/game/index.js @@ -2988,6 +2988,11 @@ export class Game { player.node["avatar" + map.name.slice(4)].show(); if (goon) delete lib.character[map.to]; }, + changeGroup: function (player, targetGroup) { + if (!player || !targetGroup) return; + player.group = targetGroup; + player.node.name.dataset.nature = get.groupnature(targetGroup); + }, skill: function (player, content) { if (typeof content == "string") { if (lib.skill[content]) lib.skill[content].video(player); @@ -3313,7 +3318,21 @@ export class Game { }, removeGaintag: function (player, content) { if (player && content) { - if (Array.isArray(content)) player.removeGaintag.apply(player, content); + if (Array.isArray(content)) { + const checkMatch = function (l1, l2) { + for (var i = 0; i < l1.length; i++) { + for (var j = 0; j < l2.length; j++) { + if (l2[j].suit == l1[i][0] && l2[j].number == l1[i][1] && l2[j].name == l1[i][2]) { + l2[j].addGaintag(content[0]); + l2.splice(j--, 1); + break; + } + } + } + }; + // player.removeGaintag.apply(player, content); + checkMatch(content[1], player.getCards("h")); + } else player.removeGaintag(content); } else { console.log(player); diff --git a/noname/library/element/content.js b/noname/library/element/content.js index cdba51a66..a9ce17742 100644 --- a/noname/library/element/content.js +++ b/noname/library/element/content.js @@ -640,6 +640,7 @@ export const Content = { event.originGroup = player.group; if (!event.group) event.group = player.group; var group = event.group; + game.addVideo("changeGroup", player, group); player.getHistory("custom").push(event); if (event.broadcast !== false) { game.broadcast( diff --git a/noname/library/index.js b/noname/library/index.js index 392111ffe..a24653676 100644 --- a/noname/library/index.js +++ b/noname/library/index.js @@ -12812,7 +12812,8 @@ export class Library { } player.playerid = i; player.nickname = info.nickname; - player.changeGroup(info.group, false, "nobroadcast"); + player.group = info.group; + player.node.name.dataset.nature = get.groupnature(info.group); player.identity = info.identity; player.identityShown = info.identityShown; player.hp = info.hp;