mbunch_kascope 1 год назад
Родитель
Сommit
8ded250e17

+ 3 - 2
Assets/CardEffect/BT22/Black/BT22_065.cs

@@ -177,8 +177,9 @@ namespace DCGO.CardEffects.BT22
 
                 bool IsCSOnBoard(Permanent permanent)
                 {
-                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card)
-                        && permanent.TopCard.HasCSTraits;
+                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card) &&
+                           permanent != card.PermanentOfThisCard() &&
+                           permanent.TopCard.HasCSTraits;
                 }
 
                 bool IsCSOnHand(CardSource cardSource, Permanent selectedPermanent)

+ 0 - 1
Assets/CardEffect/BT22/Black/BT22_091.cs

@@ -126,7 +126,6 @@ namespace DCGO.CardEffects.BT22
                 bool CanActivateCondition(Hashtable hashtable)
                 {
                     return CardEffectCommons.IsExistOnBattleArea(card)
-                        && CardEffectCommons.CanActivateSuspendCostEffect(card)
                         && CardEffectCommons.IsOpponentTurn(card)
                         && CardEffectCommons.HasMatchConditionOwnersPermanent(card, IsCSOrUniDigimon)
                         && card.PermanentOfThisCard().TopCard.EqualsCardName("Eater Adam");

+ 2 - 1
Assets/CardEffect/BT22/Black/BT22_101.cs

@@ -48,7 +48,8 @@ namespace DCGO.CardEffects.BT22
                 bool IsValidPermament(Permanent permanent)
                 {
                     return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card) &&
-                           permanent.Level >= 4 && permanent.TopCard.HasCSTraits;
+                           permanent.TopCard.HasLevel && permanent.TopCard.Level >= 4 &&
+                           permanent.TopCard.HasCSTraits;
                 }
 
                 bool isValidCard(CardSource cardSource)

+ 2 - 5
Assets/CardEffect/BT22/Blue/BT22_016.cs

@@ -121,17 +121,14 @@ namespace DCGO.CardEffects.BT22
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash 1 digivolution source", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDescription());
+                activateClass.SetIsLinkedEffect(true);
                 cardEffects.Add(activateClass);
 
                 string EffectDescription() => "[When Linking] Trash any 1 digivolution card of 1 of your opponent's Digimon.";
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return CardEffectCommons.CanTriggerWhenLinking(hashtable, null, card);
-                    }
-                    return false;
+                    return CardEffectCommons.CanTriggerWhenLinking(hashtable, null, card);
                 }
 
                 bool CanSelectCardCondition(CardSource cardSource)

+ 22 - 21
Assets/CardEffect/BT22/Blue/BT22_026.cs

@@ -43,7 +43,6 @@ namespace DCGO.CardEffects.BT22
                 bool CanUseCondition(Hashtable hashtable)
                 {
                     return CardEffectCommons.IsExistOnHand(card)
-                        && CardEffectCommons.HasMatchConditionOwnersHand(card, IsMetalGarurumon)
                         && CardEffectCommons.HasMatchConditionOwnersPermanent(card, IsNokiaShiramine)
                         && CardEffectCommons.HasMatchConditionOwnersPermanent(card, IsGabumon);
                 }
@@ -55,12 +54,13 @@ namespace DCGO.CardEffects.BT22
 
                 bool IsGabumon(Permanent permanent)
                 {
-                    return permanent.IsDigimon && permanent.TopCard.EqualsCardName("Gabumon");
+                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card) && 
+                           permanent.TopCard.EqualsCardName("Gabumon");
                 }
 
                 bool IsMetalGarurumon(CardSource cardSource)
                 {
-                    return CardEffectCommons.IsExistOnHand(cardSource) && cardSource == card;
+                    return cardSource == card;
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
@@ -70,8 +70,6 @@ namespace DCGO.CardEffects.BT22
                         Permanent gabumon = null;
 
                         #region Select Gabumon Permanent
-
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionOwnersPermanentCount(card, IsGabumon));
                         SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                         selectPermanentEffect.SetUp(
@@ -79,8 +77,8 @@ namespace DCGO.CardEffects.BT22
                             canTargetCondition: IsGabumon,
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
+                            maxCount: 1,
+                            canNoSelect: true,
                             canEndNotMax: false,
                             selectPermanentCoroutine: SelectPermanentCoroutine,
                             afterSelectPermanentCoroutine: null,
@@ -234,26 +232,29 @@ namespace DCGO.CardEffects.BT22
                                 mode: SelectPermanentEffect.Mode.Custom,
                                 cardEffect: activateClass);
 
+                            selectPermanentEffect.SetUpCustomMessage("Select 1 [Agumon] to digivolve.", "The opponent is selecting 1 [Agumon] to digivolve.");
+                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+
                             IEnumerator SelectPermanentCoroutine(Permanent permanent)
                             {
                                 agumon = permanent;
                                 yield return null;
                             }
 
-                            selectPermanentEffect.SetUpCustomMessage("Select 1 [Agumon] to digivolve.", "The opponent is selecting 1 [Agumon] to digivolve.");
-                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                            if (agumon != null) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
-                                targetPermanent: agumon,
-                                cardCondition: IsWarGreymon,
-                                payCost: false,
-                                reduceCostTuple: null,
-                                fixedCostTuple: null,
-                                ignoreDigivolutionRequirementFixedCost: -1,
-                                isHand: true,
-                                activateClass: activateClass,
-                                successProcess: null
-                            ));
+                            if (agumon != null)
+                            {
+                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
+                                    targetPermanent: agumon,
+                                    cardCondition: IsWarGreymon,
+                                    payCost: false,
+                                    reduceCostTuple: null,
+                                    fixedCostTuple: null,
+                                    ignoreDigivolutionRequirementFixedCost: -1,
+                                    isHand: true,
+                                    activateClass: activateClass,
+                                    successProcess: null,
+                                    ignoreRequirements: CardEffectCommons.IgnoreRequirement.All));
+                            }
                         }
 
                         #endregion

+ 5 - 4
Assets/CardEffect/BT22/Green/BT22_004.cs

@@ -28,14 +28,15 @@ namespace DCGO.CardEffects.BT22
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.CanTriggerOnAddDigivolutionCard(hashtable, IsThisPermanent, null, IsCsDigimon);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           CardEffectCommons.IsOwnerTurn(card) &&
+                           CardEffectCommons.CanTriggerOnAddDigivolutionCard(hashtable, IsThisPermanent, null, IsCsDigimon);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card)
-                        && CardEffectCommons.IsOwnerTurn(card)
-                        && CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectEvoCondition);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectEvoCondition);
                 }
 
                 bool IsThisPermanent(Permanent permanent)

+ 3 - 20
Assets/CardEffect/BT22/Red/BT22_010.cs

@@ -46,26 +46,9 @@ namespace DCGO.CardEffects.BT22
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    List<SelectionElement<bool>> selectionElements = new List<SelectionElement<bool>>()
-                    {
-                        new SelectionElement<bool>(message: $"Yes", value : true, spriteIndex: 0),
-                        new SelectionElement<bool>(message: $"No", value : false, spriteIndex: 1),
-                    };
-
-                    string selectPlayerMessage = "Pay cost to gain raid & pierce?";
-                    string notSelectPlayerMessage = "The opponent is choosing to pay cost";
-
-                    GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
-                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
-
-                    bool isPayingCost = GManager.instance.userSelectionManager.SelectedBoolValue;
-
-                    if (isPayingCost)
-                    {
-                        yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-2, activateClass));
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainRaid(card.PermanentOfThisCard(), EffectDuration.UntilEachTurnEnd, activateClass));
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainPierce(card.PermanentOfThisCard(), EffectDuration.UntilEachTurnEnd, activateClass));
-                    }
+                    yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-2, activateClass));
+                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainRaid(card.PermanentOfThisCard(), EffectDuration.UntilEachTurnEnd, activateClass));
+                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainPierce(card.PermanentOfThisCard(), EffectDuration.UntilEachTurnEnd, activateClass));
 
                     if (card.PermanentOfThisCard().CanAttack(activateClass))
                     {

+ 37 - 53
Assets/CardEffect/BT22/Red/BT22_011.cs

@@ -39,14 +39,14 @@ namespace DCGO.CardEffects.BT22
             if (timing == EffectTiming.OnDeclaration)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Pay 3, Play 1 level 5 or lower [Flame] digimon from trash. then it may attack", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Pay 3, Play 1 level 5 or lower [Flame]/[CS] digimon from trash. then it may attack", CanUseCondition, card);
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetHashString("BT22_011_Main");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[Main] [Once Per Turn] By paying 3 cost, you may play 1 play cost 5 or lower Digimon card with the [Flame] from your trash without paying the cost. Then, this Digimon may attack.";
+                    return "[Main] [Once Per Turn] By paying 3 cost, you may play 1 play cost 5 or lower Digimon card with the [Flame] or [CS] trait from your trash without paying the cost. Then, this Digimon may attack.";
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -57,66 +57,50 @@ namespace DCGO.CardEffects.BT22
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                     return cardSource.IsDigimon
-                        && cardSource.HasFlameTraits
-                        && cardSource.Level <= 5
+                        && (cardSource.HasFlameTraits || cardSource.HasCSTraits)
+                        && cardSource.HasPlayCost && cardSource.BasePlayCostFromEntity <= 5
                         && CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    List<SelectionElement<bool>> selectionElements = new List<SelectionElement<bool>>()
-                    {
-                        new SelectionElement<bool>(message: $"Yes", value : true, spriteIndex: 0),
-                        new SelectionElement<bool>(message: $"No", value : false, spriteIndex: 1),
-                    };
-
-                    string selectPlayerMessage = "Pay cost to play level 5 or lower digimon?";
-                    string notSelectPlayerMessage = "The opponent is choosing to pay cost";
-
-                    GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
-                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
-                    bool isPayingCost = GManager.instance.userSelectionManager.SelectedBoolValue;
+                    yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-3, activateClass));
 
-                    if (isPayingCost)
+                    if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
                     {
-                        yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-3, activateClass));
-
-                        if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
+                        CardSource selectedCard = null;
+                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionOwnersCardCountInTrash(card, CanSelectCardCondition));
+
+                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
+                        selectCardEffect.SetUp(
+                                    canTargetCondition: CanSelectCardCondition,
+                                    canTargetCondition_ByPreSelecetedList: null,
+                                    canEndSelectCondition: null,
+                                    canNoSelect: () => true,
+                                    selectCardCoroutine: SelectCardCoroutine,
+                                    afterSelectCardCoroutine: null,
+                                    message: "Select 1 digimon card to play.",
+                                    maxCount: maxCount,
+                                    canEndNotMax: false,
+                                    isShowOpponent: true,
+                                    mode: SelectCardEffect.Mode.Custom,
+                                    root: SelectCardEffect.Root.Trash,
+                                    customRootCardList: null,
+                                    canLookReverseCard: true,
+                                    selectPlayer: card.Owner,
+                                    cardEffect: activateClass);
+
+                        IEnumerator SelectCardCoroutine(CardSource cardSource)
                         {
-                            CardSource selectedCard = null;
-                            int maxCount = Math.Min(1, CardEffectCommons.MatchConditionOwnersCardCountInTrash(card, CanSelectCardCondition));
-
-                            SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-                            selectCardEffect.SetUp(
-                                        canTargetCondition: CanSelectCardCondition,
-                                        canTargetCondition_ByPreSelecetedList: null,
-                                        canEndSelectCondition: null,
-                                        canNoSelect: () => true,
-                                        selectCardCoroutine: SelectCardCoroutine,
-                                        afterSelectCardCoroutine: null,
-                                        message: "Select 1 digimon card to play.",
-                                        maxCount: maxCount,
-                                        canEndNotMax: false,
-                                        isShowOpponent: true,
-                                        mode: SelectCardEffect.Mode.Custom,
-                                        root: SelectCardEffect.Root.Trash,
-                                        customRootCardList: null,
-                                        canLookReverseCard: true,
-                                        selectPlayer: card.Owner,
-                                        cardEffect: activateClass);
-
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCard = cardSource;
-                                yield return null;
-                            }
-
-                            selectCardEffect.SetUpCustomMessage("Select 1 digimon card to play.", "The opponent is selecting 1 digimon card to play.");
-                            selectCardEffect.SetUpCustomMessage_ShowCard("Selected Card");
-                            yield return StartCoroutine(selectCardEffect.Activate());
-
-                            if (selectedCard) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: new List<CardSource>() { selectedCard }, activateClass: activateClass, payCost: false, isTapped: false, root: SelectCardEffect.Root.Trash, activateETB: true));
+                            selectedCard = cardSource;
+                            yield return null;
                         }
+
+                        selectCardEffect.SetUpCustomMessage("Select 1 digimon card to play.", "The opponent is selecting 1 digimon card to play.");
+                        selectCardEffect.SetUpCustomMessage_ShowCard("Selected Card");
+                        yield return StartCoroutine(selectCardEffect.Activate());
+
+                        if (selectedCard) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: new List<CardSource>() { selectedCard }, activateClass: activateClass, payCost: false, isTapped: false, root: SelectCardEffect.Root.Trash, activateETB: true));
                     }
 
                     if (card.PermanentOfThisCard().CanAttack(activateClass))

+ 2 - 2
Assets/CardEffect/BT22/Red/BT22_013.cs

@@ -108,8 +108,8 @@ namespace DCGO.CardEffects.BT22
                             cardCondition: CanSelectHandCardCondition,
                             payCost: true,
                             reduceCostTuple: null,
-                            fixedCostTuple:(fixedCost: 6, fixedCostCardCondition: null),
-                            ignoreDigivolutionRequirementFixedCost: 0,
+                            fixedCostTuple:null,
+                            ignoreDigivolutionRequirementFixedCost: 6,
                             isHand: true,
                             activateClass: activateClass,
                             successProcess: null,

+ 75 - 3
Assets/CardEffect/BT22/White/BT22_081.cs

@@ -93,7 +93,7 @@ namespace DCGO.CardEffects.BT22
                             cardEffect: activateClass);
 
                         selectPermanentEffect.SetUpCustomMessage(
-                          "Select 1 Digimon that will get unable to unsuspend.",
+                          "Select 1 Digimon that will get unable to suspend.",
                           "The opponent is selecting 1 Digimon that will get unable to unsuspend.");
 
                         yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
@@ -103,7 +103,43 @@ namespace DCGO.CardEffects.BT22
                             selectedPermanent = permanent;
                             yield return null;
                         }
-                        if (selectedPermanent != null) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCantUnsuspendUntilOpponentTurnEnd(targetPermanent: selectedPermanent, activateClass: activateClass));
+
+                        if (selectedPermanent != null)
+                        {
+                            CanNotSuspendClass canNotSuspendClass = new CanNotSuspendClass();
+                            canNotSuspendClass.SetUpICardEffect("Can't Suspend", CanUseCanNotSuspendCondition, card);
+                            canNotSuspendClass.SetUpCanNotSuspendClass(PermanentCondition: PermanentCanNotSuspendCondition);
+                            selectedPermanent.UntilOwnerTurnEndEffects.Add(_ => canNotSuspendClass);
+
+                            if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
+                            {
+                                yield return ContinuousController.instance.StartCoroutine(GManager.instance
+                                    .GetComponent<Effects>().CreateDebuffEffect(selectedPermanent));
+                            }
+
+                            bool CanUseCanNotSuspendCondition(Hashtable hashtableCanNotSuspend)
+                            {
+                                if (selectedPermanent.TopCard != null)
+                                {
+                                    if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
+                                    {
+                                        return true;
+                                    }
+                                }
+
+                                return false;
+                            }
+
+                            bool PermanentCanNotSuspendCondition(Permanent permanentCanNotSuspend)
+                            {
+                                if (permanentCanNotSuspend == selectedPermanent)
+                                {
+                                    return true;
+                                }
+
+                                return false;
+                            }
+                        }
                     }
                     if (card.PermanentOfThisCard().DigivolutionCards.Count == 0)
                     {
@@ -265,7 +301,43 @@ namespace DCGO.CardEffects.BT22
                             selectedPermanent = permanent;
                             yield return null;
                         }
-                        if (selectedPermanent != null) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCantUnsuspendUntilOpponentTurnEnd(targetPermanent: selectedPermanent, activateClass: activateClass));
+
+                        if (selectedPermanent != null)
+                        {
+                            CanNotSuspendClass canNotSuspendClass = new CanNotSuspendClass();
+                            canNotSuspendClass.SetUpICardEffect("Can't Suspend", CanUseCanNotSuspendCondition, card);
+                            canNotSuspendClass.SetUpCanNotSuspendClass(PermanentCondition: PermanentCanNotSuspendCondition);
+                            selectedPermanent.UntilOwnerTurnEndEffects.Add(_ => canNotSuspendClass);
+
+                            if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
+                            {
+                                yield return ContinuousController.instance.StartCoroutine(GManager.instance
+                                    .GetComponent<Effects>().CreateDebuffEffect(selectedPermanent));
+                            }
+
+                            bool CanUseCanNotSuspendCondition(Hashtable hashtableCanNotSuspend)
+                            {
+                                if (selectedPermanent.TopCard != null)
+                                {
+                                    if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
+                                    {
+                                        return true;
+                                    }
+                                }
+
+                                return false;
+                            }
+
+                            bool PermanentCanNotSuspendCondition(Permanent permanentCanNotSuspend)
+                            {
+                                if (permanentCanNotSuspend == selectedPermanent)
+                                {
+                                    return true;
+                                }
+
+                                return false;
+                            }
+                        }
                     }
                     if (card.PermanentOfThisCard().DigivolutionCards.Count == 0)
                     {

+ 5 - 8
Assets/CardEffect/BT22/White/BT22_082.cs

@@ -66,7 +66,7 @@ namespace DCGO.CardEffects.BT22
                 bool CanSelectOpponentsDigimonCondition(Permanent permanent)
                 {
                     return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card)
-                        && permanent.TopCard.HasPlayCost && permanent.TopCard.BasePlayCostFromEntity <= 7;
+                        && permanent.TopCard.HasPlayCost && permanent.TopCard.GetCostItself <= 7;
                 }
 
                 bool IsArataSanada(CardSource cardSource)
@@ -78,8 +78,6 @@ namespace DCGO.CardEffects.BT22
                 {
                     if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, CanSelectOpponentsDigimonCondition))
                     {
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentsDigimonCondition));
-
                         SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                         selectPermanentEffect.SetUp(
@@ -87,7 +85,7 @@ namespace DCGO.CardEffects.BT22
                             canTargetCondition: CanSelectOpponentsDigimonCondition,
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
-                            maxCount: maxCount,
+                            maxCount: 1,
                             canNoSelect: false,
                             canEndNotMax: false,
                             selectPermanentCoroutine: null,
@@ -101,6 +99,7 @@ namespace DCGO.CardEffects.BT22
 
                         yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
                     }
+
                     if (card.PermanentOfThisCard().DigivolutionCards.Count == 0)
                     {
                         bool canSelectHand = CardEffectCommons.HasMatchConditionOwnersHand(card, IsArataSanada);
@@ -221,7 +220,7 @@ namespace DCGO.CardEffects.BT22
                 bool CanSelectOpponentsDigimonCondition(Permanent permanent)
                 {
                     return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card)
-                        && permanent.TopCard.HasPlayCost && permanent.TopCard.BasePlayCostFromEntity <= 7;
+                        && permanent.TopCard.HasPlayCost && permanent.TopCard.GetCostItself <= 7;
                 }
 
                 bool IsArataSanada(CardSource cardSource)
@@ -233,8 +232,6 @@ namespace DCGO.CardEffects.BT22
                 {
                     if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, CanSelectOpponentsDigimonCondition))
                     {
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentsDigimonCondition));
-
                         SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                         selectPermanentEffect.SetUp(
@@ -242,7 +239,7 @@ namespace DCGO.CardEffects.BT22
                             canTargetCondition: CanSelectOpponentsDigimonCondition,
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
-                            maxCount: maxCount,
+                            maxCount: 1,
                             canNoSelect: false,
                             canEndNotMax: false,
                             selectPermanentCoroutine: null,