From 721a833763caab3b8842614743b4af4d454d4e9b Mon Sep 17 00:00:00 2001 From: Wind2009-Louse Date: Fri, 26 Jul 2024 10:11:14 +0800 Subject: [PATCH] Fix (#199) --- Game/AI/DefaultExecutor.cs | 2 +- Game/GameAI.cs | 2 +- Game/GameBehavior.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Game/AI/DefaultExecutor.cs b/Game/AI/DefaultExecutor.cs index 0828614f..e6f221f8 100644 --- a/Game/AI/DefaultExecutor.cs +++ b/Game/AI/DefaultExecutor.cs @@ -1579,7 +1579,7 @@ protected bool DefaultCheckWhetherCardIsNegated(ClientCard card) if (originId == 0) originId = card.Data.Id; return crossoutDesignatorIdList.Contains(originId) || (calledbytheGraveIdCountMap.ContainsKey(originId) && calledbytheGraveIdCountMap[originId] > 0) - || card.IsDisabled(); + || (card.IsDisabled() && ((int)card.Location & (int)CardLocation.Onfield) > 0); } protected bool DefaultCheckWhetherCardIdIsNegated(int cardId) diff --git a/Game/GameAI.cs b/Game/GameAI.cs index 4eda9711..44e3c4e6 100644 --- a/Game/GameAI.cs +++ b/Game/GameAI.cs @@ -1162,6 +1162,7 @@ public BattlePhaseAction ToMainPhase2() private bool ShouldExecute(CardExecutor exec, ClientCard card, ExecutorType type, int desc = -1, int timing = -1) { + Executor.SetCard(type, card, desc, timing); if (card.Id != 0 && type == ExecutorType.Activate) { if (_activatedCards.ContainsKey(card.Id) && _activatedCards[card.Id] >= 9) @@ -1169,7 +1170,6 @@ private bool ShouldExecute(CardExecutor exec, ClientCard card, ExecutorType type if (!Executor.OnPreActivate(card)) return false; } - Executor.SetCard(type, card, desc, timing); bool result = card != null && exec.Type == type && (exec.CardId == -1 || exec.CardId == card.Id) && (exec.Func == null || exec.Func()); diff --git a/Game/GameBehavior.cs b/Game/GameBehavior.cs index 3c7b2e60..c0bdc892 100644 --- a/Game/GameBehavior.cs +++ b/Game/GameBehavior.cs @@ -1024,7 +1024,7 @@ private void InternalOnSelectCard(BinaryReader packet, Func, i card.Controller = player; } if (card == null) continue; - if (card.Id == 0) + if (card.Id == 0 || card.Location == CardLocation.Deck) card.SetId(id); cards.Add(card); }