Browse Source

bug fixes for EX7

mbunch_kascope 1 year ago
parent
commit
2218455f4f

+ 8 - 2
Assets/CardEffect/EX7/Blue/Bulucomon_EX7_016.cs

@@ -12,6 +12,7 @@ namespace DCGO.CardEffects.EX7
         {
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
 
+            #region On Play
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
@@ -84,18 +85,21 @@ namespace DCGO.CardEffects.EX7
                     ));
                     ));
                 }
                 }
             }
             }
+            #endregion
 
 
+            #region When Attacking - ESS
             if (timing == EffectTiming.OnAllyAttack)
             if (timing == EffectTiming.OnAllyAttack)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash digivolution cards", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Trash digivolution cards", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetIsInheritedEffect(true);
                 activateClass.SetIsInheritedEffect(true);
+                activateClass.SetHashString("WhenAttacking_EX7-016");
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
                 {
                 {
-                    return "[When Attacking] Trash 1 digivolution card at the top of 1 of your opponent's Digimon.";
+                    return "[When Attacking] [Once Per Turn] Trash the top digivolution card of 1 of your opponent's Digimon.";
                 }
                 }
                 
                 
                 bool CanSelectDigimonCondition(Permanent permanent)
                 bool CanSelectDigimonCondition(Permanent permanent)
@@ -159,6 +163,8 @@ namespace DCGO.CardEffects.EX7
                     }
                     }
                 }
                 }
             }
             }
+            #endregion
+
             return cardEffects;
             return cardEffects;
         }
         }
     }
     }

+ 2 - 1
Assets/CardEffect/EX7/Blue/CrysPaledramon_EX7_021.cs

@@ -93,7 +93,8 @@ namespace DCGO.CardEffects.EX7
                         {
                         {
                             if (!CardEffectCommons.HasMatchConditionOpponentsPermanent(card, (permanent) => permanent.IsDigimon && !permanent.HasNoDigivolutionCards))
                             if (!CardEffectCommons.HasMatchConditionOpponentsPermanent(card, (permanent) => permanent.IsDigimon && !permanent.HasNoDigivolutionCards))
                             {
                             {
-                                return true;
+                                if(card.PermanentOfThisCard().TopCard.EqualsTraits("Ice-Snow"))
+                                    return true;
                             }
                             }
                         }
                         }
                     }
                     }

+ 1 - 19
Assets/CardEffect/EX7/Blue/Hexeblaumon_EX7_023.cs

@@ -51,26 +51,8 @@ namespace DCGO.CardEffects.EX7
                     return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
                     return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
                 }
                 }
                 
                 
-
                 bool CanSelectCardCondition(CardSource cardSource)
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                 {
-                    if (cardSource.Owner.Enemy && cardSource.IsDigimon)
-                    {
-                        return true;
-                    }
-
-                    return false;
-                }
-                
-                bool CanBounceTamerCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                    {
-                        int count = CardEffectCommons.MatchConditionOpponentsPermanentCount(card, (permanent) => permanent.IsDigimon && permanent.HasNoDigivolutionCards);
-
-                        if (count >= 1)
-                            return false;
-                    }
                     return true;
                     return true;
                 }
                 }
 
 
@@ -96,7 +78,7 @@ namespace DCGO.CardEffects.EX7
                         ));
                         ));
                     }
                     }
 
 
-                    if (CanBounceTamerCondition(hashtable))
+                    if (!CardEffectCommons.HasMatchConditionOpponentsPermanent(card, (permanent) => permanent.IsDigimon && !permanent.HasNoDigivolutionCards))
                     {
                     {
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectTamerCondition))
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectTamerCondition))
                         {
                         {

+ 4 - 1
Assets/CardEffect/EX7/Blue/Otamamon_EX7_015.cs

@@ -15,7 +15,10 @@ namespace DCGO.CardEffects.EX7
             {
             {
                 bool PermanentCondition(Permanent targetPermanent)
                 bool PermanentCondition(Permanent targetPermanent)
                 {
                 {
-                    return targetPermanent.TopCard.CardTraits.Contains("NSp");
+                    if(targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.IsLevel2)
+                        return targetPermanent.TopCard.CardTraits.Contains("NSp");
+
+                    return false;
                 }
                 }
 
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(

+ 10 - 32
Assets/CardEffect/EX7/Blue/Paledramon_EX7_020.cs

@@ -32,7 +32,7 @@ namespace DCGO.CardEffects.EX7
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                        return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
+                        return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
 
 
                     return false;
                     return false;
                 }
                 }
@@ -67,32 +67,10 @@ namespace DCGO.CardEffects.EX7
 
 
                     IEnumerator SelectPermanentCoroutine(Permanent permanent)
                     IEnumerator SelectPermanentCoroutine(Permanent permanent)
                     {
                     {
-                        Permanent selectedPermanent = permanent;
-
-                        int maxCount = Math.Min(2, permanent.DigivolutionCards.Count);
-
-                        SelectCountEffect selectCountEffect = GManager.instance.GetComponent<SelectCountEffect>();
-
-                        selectCountEffect.SetUp(
-                            SelectPlayer: card.Owner,
-                            targetPermanent: permanent,
-                            MaxCount: maxCount,
-                            CanNoSelect: false,
-                            Message: "How many digivolution cards will you trash?",
-                            Message_Enemy: "The opponent is choosing how many digivolution cards to trash.",
-                            SelectCountCoroutine: SelectCountCoroutine);
-
-                        yield return ContinuousController.instance.StartCoroutine(selectCountEffect.Activate());
-
-                        IEnumerator SelectCountCoroutine(int count)
-                        {
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.TrashDigivolutionCardsFromTopOrBottom(targetPermanent: selectedPermanent, trashCount: count, isFromTop: false, activateClass: activateClass));
-                        }
+                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.TrashDigivolutionCardsFromTopOrBottom(targetPermanent: permanent, trashCount: 2, isFromTop: false, activateClass: activateClass));
                     }
                     }
 
 
-                    if (CardEffectCommons.HasMatchConditionOpponentsPermanent(card,
-                        (permanent) => permanent.IsDigimon && permanent.HasNoDigivolutionCards) ||
-                        card.Owner.Enemy.GetBattleAreaDigimons().Count == 0)
+                    if (!CardEffectCommons.HasMatchConditionOpponentsPermanent(card,(permanent) => permanent.IsDigimon && !permanent.HasNoDigivolutionCards))
                     {
                     {
                         Permanent selectedPermanent = card.PermanentOfThisCard();
                         Permanent selectedPermanent = card.PermanentOfThisCard();
 
 
@@ -123,24 +101,24 @@ namespace DCGO.CardEffects.EX7
                     return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
                     return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
                 }
                 }
 
 
-                bool CanActivateCondition(Hashtable hashtable)
+                bool CanUseCondition(Hashtable hashtable)
                 {
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                     {
-                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectDigimonCondition))
-                        {
-                            return true;
-                        }
+                        return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
                     }
                     }
 
 
                     return false;
                     return false;
                 }
                 }
 
 
-                bool CanUseCondition(Hashtable hashtable)
+                bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                     {
-                        return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
+                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectDigimonCondition))
+                        {
+                            return true;
+                        }
                     }
                     }
 
 
                     return false;
                     return false;

+ 2 - 2
Assets/CardEffect/EX7/Blue/SnowAgumon_EX7_017.cs

@@ -22,13 +22,13 @@ namespace DCGO.CardEffects.EX7
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash digivolution cards", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Trash digivolution cards", CanUseCondition, card);
                 activateClass.SetHashString("TashCard_EX7_017");
                 activateClass.SetHashString("TashCard_EX7_017");
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetIsInheritedEffect(true);
                 activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
                 {
                 {
-                    return "[When Attacking] Trash 1 digivolution card at the top of 1 of your opponent's Digimon.";
+                    return "[When Attacking] [Once Per Turn] Trash the top digivolution card of 1 of your opponent's Digimon.";
                 }
                 }
                 
                 
                 bool CanSelectDigimonCondition(Permanent permanent)
                 bool CanSelectDigimonCondition(Permanent permanent)

+ 2 - 2
Assets/CardEffect/EX7/Blue/Sorcermon_EX7_019.cs

@@ -48,7 +48,7 @@ namespace DCGO.CardEffects.EX7
                 {
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                     {
-                        if (CardEffectCommons.HasMatchConditionOpponentsPermanent(card,(permanent) => permanent.IsDigimon && permanent.HasNoDigivolutionCards))
+                        if (!CardEffectCommons.HasMatchConditionOpponentsPermanent(card,(permanent) => permanent.IsDigimon && !permanent.HasNoDigivolutionCards))
                         {
                         {
                             return true;
                             return true;
                         }
                         }
@@ -91,7 +91,7 @@ namespace DCGO.CardEffects.EX7
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash digivolution cards", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Trash digivolution cards", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetIsInheritedEffect(true);
                 activateClass.SetIsInheritedEffect(true);
                 activateClass.SetHashString("Unsuspend_EX7_019");
                 activateClass.SetHashString("Unsuspend_EX7_019");
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);

+ 4 - 4
Assets/CardEffect/EX7/Purple/BeelStarmonXAntibody_EX7_073.cs

@@ -63,7 +63,7 @@ namespace DCGO.CardEffects.EX7
                 {
                 {
                     if (cardSource.IsOption)
                     if (cardSource.IsOption)
                     {
                     {
-                        if (cardSource.CardTraits.Contains("Three Musketeers") || cardSource.CardTraits.Contains("ThreeMusketeers"))
+                        if (cardSource.EqualsTraits("Three Musketeers"))
                         {
                         {
                             if (cardSource.HasUseCost)
                             if (cardSource.HasUseCost)
                             {
                             {
@@ -135,7 +135,7 @@ namespace DCGO.CardEffects.EX7
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash 2 cards to delete 1 Digimon and trash an opponent's security card", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Trash 2 cards to delete 1 Digimon and trash an opponent's security card", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
@@ -145,7 +145,7 @@ namespace DCGO.CardEffects.EX7
 
 
                 bool CanSelectCardCondition(CardSource cardSource)
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                 {
-                    if (cardSource.CardTraits.Contains("Three Musketeers") || cardSource.CardTraits.Contains("ThreeMusketeers"))
+                    if (cardSource.EqualsTraits("Three Musketeers"))
                     {
                     {
                         if (!cardSource.CanNotTrashFromDigivolutionCards(activateClass))
                         if (!cardSource.CanNotTrashFromDigivolutionCards(activateClass))
                         {
                         {
@@ -294,7 +294,7 @@ namespace DCGO.CardEffects.EX7
 
 
                 bool CanSelectCardCondition(CardSource cardSource)
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                 {
-                    if (cardSource.CardTraits.Contains("Three Musketeers") || cardSource.CardTraits.Contains("ThreeMusketeers"))
+                    if (cardSource.EqualsTraits("Three Musketeers"))
                     {
                     {
                         if (!cardSource.CanNotTrashFromDigivolutionCards(activateClass))
                         if (!cardSource.CanNotTrashFromDigivolutionCards(activateClass))
                         {
                         {

+ 9 - 15
Assets/CardEffect/EX7/Purple/LadyDevimonXAntibody_EX7_058.cs

@@ -33,7 +33,7 @@ namespace DCGO.CardEffects.EX7
 
 
                 string EffectDiscription()
                 string EffectDiscription()
                 {
                 {
-                    return "[On Play] 1 of your opponent's Digimon gains \" Delete this Digimon.\" until the end of their turn. Then, if this Digimon has [LadyDevimon]/[X Antibody] in its digivolution cards, you may play 1 [Volée & Zerdrücken] Token (Digimon/Lv.4/Purple/5000 DP/<Blocker>/<Retaliation>).";
+                    return "[On Play] 1 of your opponent's Digimon gains \"[End of Attack] Delete this Digimon.\" until the end of their turn. Then, if this Digimon has [LadyDevimon]/[X Antibody] in its digivolution cards, you may play 1 [Volée & Zerdrücken] Token (Digimon/Lv.4/Purple/5000 DP/<Blocker>/<Retaliation>).";
                 }
                 }
 
 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -121,21 +121,18 @@ namespace DCGO.CardEffects.EX7
 
 
                                 string EffectDiscription1()
                                 string EffectDiscription1()
                                 {
                                 {
-                                    return "[End of Attack] Delete this Digimon.";
+                                    return "[End of Your Turn] Delete this Digimon.";
                                 }
                                 }
 
 
                                 bool CanUseCondition1(Hashtable hashtable1)
                                 bool CanUseCondition1(Hashtable hashtable1)
                                 {
                                 {
                                     if (CardEffectCommons.IsPermanentExistsOnBattleArea(selectedPermanent))
                                     if (CardEffectCommons.IsPermanentExistsOnBattleArea(selectedPermanent))
                                     {
                                     {
-                                        if (CardEffectCommons.CanTriggerOnAttack(hashtable, selectedPermanent.TopCard))
+                                        if (selectedPermanent.TopCard.Owner.GetBattleAreaDigimons().Contains(selectedPermanent))
                                         {
                                         {
-                                            if (selectedPermanent.TopCard.Owner.GetBattleAreaDigimons().Contains(selectedPermanent))
+                                            if (GManager.instance.turnStateMachine.gameContext.TurnPlayer == selectedPermanent.TopCard.Owner)
                                             {
                                             {
-                                                if (GManager.instance.turnStateMachine.gameContext.TurnPlayer == selectedPermanent.TopCard.Owner)
-                                                {
-                                                    return true;
-                                                }
+                                                return true;
                                             }
                                             }
                                         }
                                         }
                                     }
                                     }
@@ -285,21 +282,18 @@ namespace DCGO.CardEffects.EX7
 
 
                                 string EffectDiscription1()
                                 string EffectDiscription1()
                                 {
                                 {
-                                    return "[End of Attack] Delete this Digimon.";
+                                    return "[End of Your Turn] Delete this Digimon.";
                                 }
                                 }
 
 
                                 bool CanUseCondition1(Hashtable hashtable1)
                                 bool CanUseCondition1(Hashtable hashtable1)
                                 {
                                 {
                                     if (CardEffectCommons.IsPermanentExistsOnBattleArea(selectedPermanent))
                                     if (CardEffectCommons.IsPermanentExistsOnBattleArea(selectedPermanent))
                                     {
                                     {
-                                        if (CardEffectCommons.CanTriggerOnAttack(hashtable, selectedPermanent.TopCard))
+                                        if (selectedPermanent.TopCard.Owner.GetBattleAreaDigimons().Contains(selectedPermanent))
                                         {
                                         {
-                                            if (selectedPermanent.TopCard.Owner.GetBattleAreaDigimons().Contains(selectedPermanent))
+                                            if (GManager.instance.turnStateMachine.gameContext.TurnPlayer == selectedPermanent.TopCard.Owner)
                                             {
                                             {
-                                                if (GManager.instance.turnStateMachine.gameContext.TurnPlayer == selectedPermanent.TopCard.Owner)
-                                                {
-                                                    return true;
-                                                }
+                                                return true;
                                             }
                                             }
                                         }
                                         }
                                     }
                                     }

+ 3 - 13
Assets/CardEffect/EX7/Purple/SeventhFascination_EX7_072.cs

@@ -89,7 +89,7 @@ namespace DCGO.CardEffects.EX7
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("All Opponents Digimon gain \"Delete 1 of your Digimon\"", CanUseCondition, card);
                 activateClass.SetUpICardEffect("All Opponents Digimon gain \"Delete 1 of your Digimon\"", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
@@ -102,16 +102,6 @@ namespace DCGO.CardEffects.EX7
                     return CardEffectCommons.CanTriggerOptionMainEffect(hashtable, card);
                     return CardEffectCommons.CanTriggerOptionMainEffect(hashtable, card);
                 }
                 }
 
 
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-
-                    return false;
-                }
-
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 {
                 {
                     bool PermanentCondition(Permanent permanent)
                     bool PermanentCondition(Permanent permanent)
@@ -185,9 +175,9 @@ namespace DCGO.CardEffects.EX7
 
 
                             bool CanUseCondition2(Hashtable hashtable)
                             bool CanUseCondition2(Hashtable hashtable)
                             {
                             {
-                                if (CardSourceCondition(cardSource))
+                                if (CardEffectCommons.IsOwnerTurn(cardSource))
                                 {
                                 {
-                                   return true;                                    
+                                   return CardSourceCondition(cardSource);                                    
                                 }
                                 }
 
 
                                 return false;
                                 return false;

+ 71 - 18
Assets/CardEffect/EX7/Purple/Yuuki_EX7_065.cs

@@ -1,3 +1,4 @@
+using System;
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
@@ -78,16 +79,32 @@ namespace DCGO.CardEffects.EX7
                     return "[Main] If you have 4 or fewer cards in your hand, by suspending this Tamer, 1 of your Digimon may digivolve into a Digimon card with the [Dark Dragon]/[Evil Dragon] trait in the trash.";
                     return "[Main] If you have 4 or fewer cards in your hand, by suspending this Tamer, 1 of your Digimon may digivolve into a Digimon card with the [Dark Dragon]/[Evil Dragon] trait in the trash.";
                 }
                 }
 
 
+                bool CanSelectPermanentCondition(Permanent permanent)
+                {
+                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
+                    {
+                        foreach (CardSource cardSource in card.Owner.TrashCards)
+                        {
+                            if (CanSelectCardCondition(cardSource))
+                            {
+                                if (cardSource.CanPlayCardTargetFrame(permanent.PermanentFrame, true, activateClass))
+                                {
+                                    return true;
+                                }
+                            }
+                        }
+                    }
+
+                    return false;
+                }
+
                 bool CanSelectCardCondition(CardSource cardSource)
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                 {
                     if (cardSource.IsDigimon)
                     if (cardSource.IsDigimon)
                     {
                     {
                         if (cardSource.ContainsTraits("Dark Dragon") || cardSource.ContainsTraits("Evil Dragon"))
                         if (cardSource.ContainsTraits("Dark Dragon") || cardSource.ContainsTraits("Evil Dragon"))
                         {
                         {
-                            if (cardSource.CanPlayCardTargetFrame(card.PermanentOfThisCard().PermanentFrame, true, activateClass))
-                            {
-                                return true;
-                            }
+                            return true;
                         }
                         }
                     }
                     }
 
 
@@ -100,11 +117,14 @@ namespace DCGO.CardEffects.EX7
                     {
                     {
                         if (card.Owner.HandCards.Count <= 4)
                         if (card.Owner.HandCards.Count <= 4)
                         {
                         {
-                            if (card.Owner.TrashCards.Count >= 1)
+                            if (CardEffectCommons.CanDeclareOptionDelayEffect(card))
                             {
                             {
-                                if (CardEffectCommons.CanActivateSuspendCostEffect(card))
+                                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                                 {
                                 {
-                                    return true;
+                                    if (CardEffectCommons.CanActivateSuspendCostEffect(card))
+                                    {
+                                        return true;
+                                    }
                                 }
                                 }
                             }
                             }
                         }
                         }
@@ -117,18 +137,51 @@ namespace DCGO.CardEffects.EX7
                 {
                 {
                     yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(new List<Permanent>() { card.PermanentOfThisCard() }, CardEffectCommons.CardEffectHashtable(activateClass)).Tap());
                     yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(new List<Permanent>() { card.PermanentOfThisCard() }, CardEffectCommons.CardEffectHashtable(activateClass)).Tap());
 
 
-                    if(CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
+                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                     {
                     {
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
-                           targetPermanent: card.PermanentOfThisCard(),
-                           cardCondition: CanSelectCardCondition,
-                           payCost: true,
-                           reduceCostTuple: null,
-                           fixedCostTuple: null,
-                           ignoreDigivolutionRequirementFixedCost: -1,
-                           isHand: false,
-                           activateClass: activateClass,
-                           successProcess: null));
+                        Permanent selectedPermanent = null;
+
+                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition));
+
+                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                        selectPermanentEffect.SetUp(
+                            selectPlayer: card.Owner,
+                            canTargetCondition: CanSelectPermanentCondition,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canEndSelectCondition: null,
+                            maxCount: maxCount,
+                            canNoSelect: true,
+                            canEndNotMax: false,
+                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            afterSelectPermanentCoroutine: null,
+                            mode: SelectPermanentEffect.Mode.Custom,
+                            cardEffect: activateClass);
+
+                        selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to digivolve.", "The opponent is selecting 1 Digimon to digivolve.");
+
+                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+
+                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        {
+                            selectedPermanent = permanent;
+
+                            yield return null;
+                        }
+
+                        if (selectedPermanent != null)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
+                                targetPermanent: selectedPermanent,
+                                cardCondition: CanSelectCardCondition,
+                                payCost: true,
+                                reduceCostTuple: null,
+                                fixedCostTuple: null,
+                                ignoreDigivolutionRequirementFixedCost: -1,
+                                isHand: false,
+                                activateClass: activateClass,
+                                successProcess: null));
+                        }
                     }
                     }
                 }
                 }
             }
             }