From e33c68c14777d13ee3d2a13a55f15e33d636a8dc Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Thu, 29 Feb 2024 22:28:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E6=89=80=E6=9C=89=E7=9A=84=5Fstatus.e?= =?UTF-8?q?vent.next.remove(GameEvent)=E6=B7=BB=E5=8A=A0GameEvent.resolve(?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- noname/library/element/player.js | 44 ++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/noname/library/element/player.js b/noname/library/element/player.js index 553bfd1b8..ce6f0c822 100644 --- a/noname/library/element/player.js +++ b/noname/library/element/player.js @@ -728,7 +728,10 @@ export class Player extends HTMLDivElement { virtualCard.init(['', '', card, info && info.cardnature]); } else if (get.itemtype(card) == 'card') executeDelayCardEffect.card = card; - else _status.event.next.remove(executeDelayCardEffect); + else { + _status.event.next.remove(executeDelayCardEffect); + executeDelayCardEffect.resolve(); + } executeDelayCardEffect.judge = judge; executeDelayCardEffect.judge2 = judge2; executeDelayCardEffect.setContent('executeDelayCardEffect'); @@ -759,7 +762,10 @@ export class Player extends HTMLDivElement { const isArray = Array.isArray(cards); if (cards && !isArray) gift.cards = [cards]; else if (isArray && cards.length) gift.cards = cards; - else _status.event.next.remove(gift); + else { + _status.event.next.remove(gift); + gift.resolve(); + } gift.deniedGifts = []; gift.setContent('gift'); gift._args = Array.from(arguments); @@ -825,7 +831,10 @@ export class Player extends HTMLDivElement { const isArray = Array.isArray(cards); if (cards && !isArray) recast.cards = [cards]; else if (isArray && cards.length) recast.cards = cards; - else _status.event.next.remove(recast); + else { + _status.event.next.remove(recast); + recast.resolve(); + } if (typeof recastingLose != 'function') { if (recastingLose === null) console.trace(`recast的recastingLose参数不应传入null,可以用void 0或undefined占位`); recastingLose = (player, cards) => player.loseToDiscardpile(cards).log = false; @@ -1073,6 +1082,7 @@ export class Player extends HTMLDivElement { if (!next.source) next.source = _status.event.player; if (!next.slots.length) { _status.event.next.remove(next); + next.resolve(); } next.setContent('disableEquip'); return next; @@ -1110,6 +1120,7 @@ export class Player extends HTMLDivElement { if (!next.source) next.source = _status.event.player; if (!next.slots.length) { _status.event.next.remove(next); + next.resolve(); } next.setContent('enableEquip'); return next; @@ -1147,6 +1158,7 @@ export class Player extends HTMLDivElement { if (!next.source) next.source = _status.event.player; if (!next.slots.length) { _status.event.next.remove(next); + next.resolve(); } next.setContent('expandEquip'); return next; @@ -4766,7 +4778,10 @@ export class Player extends HTMLDivElement { } if (get.itemtype(cards) == 'card') next.cards = [cards]; else if (get.itemtype(cards) == 'cards') next.cards = cards.slice(0); - else _status.event.next.remove(next); + else { + _status.event.next.remove(next); + next.resolve(); + } next.setContent('showCards'); next._args = Array.from(arguments); return next; @@ -5123,7 +5138,10 @@ export class Player extends HTMLDivElement { } } if (next.num == undefined) next.num = 1; - if (next.num <= 0) _status.event.next.remove(next); + if (next.num <= 0) { + _status.event.next.remove(next); + next.resolve(); + } next.setContent('draw'); if (lib.config.mode == 'stone' && _status.mode == 'deck' && next.drawDeck == undefined && !next.player.isMin() && next.num > 1) { @@ -5207,7 +5225,10 @@ export class Player extends HTMLDivElement { next.notBySelf = true; } } - if (next.cards == undefined) _status.event.next.remove(next); + if (next.cards == undefined) { + _status.event.next.remove(next); + next.resolve(); + } next.setContent('discard'); return next; } @@ -5241,7 +5262,10 @@ export class Player extends HTMLDivElement { next.blank = true; } } - if (next.cards == undefined) _status.event.next.remove(next); + if (next.cards == undefined) { + _status.event.next.remove(next); + next.resolve(); + } next.setContent('loseToDiscardpile'); return next; } @@ -5621,6 +5645,7 @@ export class Player extends HTMLDivElement { } if (!next.cards || !next.cards.length) { _status.event.next.remove(next); + next.resolve(); } else { if (next.position == undefined) next.position = ui.discardPile; @@ -5738,7 +5763,10 @@ export class Player extends HTMLDivElement { if (next.cards == undefined && !nocard) next.cards = event.cards; if (next.source == undefined && !nosource) next.source = event.customSource || event.player; if (next.num == undefined) next.num = (event.baseDamage || 1) + (event.extraDamage || 0); - if (next.num <= 0) _status.event.next.remove(next); + if (next.num <= 0) { + _status.event.next.remove(next); + next.resolve(); + } next.setContent('recover'); return next; }