浏览代码

Checkpoint

Lewisaaronwelch 11 月之前
父节点
当前提交
ddfc8423aa

+ 123 - 80
Assets/CardEffect/EX10/Black/EX10_032.cs

@@ -172,7 +172,7 @@ namespace DCGO.CardEffects.EX10
 
             bool CanSelectSource(CardSource source)
             {
-                return source.EqualsTraits("Mineral") || source.EqualsTraits("Rock");
+                return source.HasRockMineralTraits;
             }
 
             bool CanSelectPermanent(Permanent permanent)
@@ -181,101 +181,144 @@ namespace DCGO.CardEffects.EX10
                        (permanent.TopCard.EqualsTraits("Mineral") || permanent.TopCard.EqualsTraits("Rock"));
             }
 
+            bool CanSelectPermamentTrashDigivolution(Permanent permanent)
+            {
+                return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card)
+                    && permanent.DigivolutionCards.Exists(CanSelectSource);
+            }
+
             IEnumerator SharedActivateCoroutine(Hashtable hashtable, ActivateClass activateClass)
             {
-                bool discarded = false;
-                List<CardSource> selectedCards = new List<CardSource>();
-
-                SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-
-                selectCardEffect.SetUp(
-                            canTargetCondition: CanSelectSource,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            canNoSelect: () => true,
-                            selectCardCoroutine: SelectCardCoroutine,
-                            afterSelectCardCoroutine: null,
-                            message: "Select 1 digivolution card to discard.",
-                            maxCount: 1,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            mode: SelectCardEffect.Mode.Custom,
-                            root: SelectCardEffect.Root.Custom,
-                            customRootCardList: card.PermanentOfThisCard().DigivolutionCards,
-                            canLookReverseCard: true,
-                            selectPlayer: card.Owner,
-                            cardEffect: null);
-
-                selectCardEffect.SetUpCustomMessage("Select 1 digivolution card to discard.", "The opponent is selecting 1 digivolution card to discard.");
-
-                yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-
-                IEnumerator SelectCardCoroutine(CardSource cardSource)
+                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermamentTrashDigivolution))
                 {
-                    selectedCards.Add(cardSource);
+                    #region Select Permament to trash Digivoltuion Cards
 
-                    yield return null;
-                }
+                    Permanent selectedPermanment = null;
 
-                if (selectedCards.Count >= 1)
-                {
-                    yield return ContinuousController.instance.StartCoroutine(new ITrashDigivolutionCards(card.PermanentOfThisCard(), selectedCards, activateClass).TrashDigivolutionCards());
+                    int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermamentTrashDigivolution));
+                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
-                    discarded = true;
-                }
+                    selectPermanentEffect.SetUp(
+                        selectPlayer: card.Owner,
+                        canTargetCondition: CanSelectPermamentTrashDigivolution,
+                        canTargetCondition_ByPreSelecetedList: null,
+                        canEndSelectCondition: null,
+                        maxCount: maxCount,
+                        canNoSelect: true,
+                        canEndNotMax: false,
+                        selectPermanentCoroutine: SelectPermanentCoroutine,
+                        afterSelectPermanentCoroutine: null,
+                        mode: SelectPermanentEffect.Mode.Custom,
+                        cardEffect: activateClass);
 
-                if (discarded)
-                {
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanent))
+                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                    {
+                        selectedPermanment = permanent;
+                        yield return null;
+                    }
+
+                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon trash digivolution card", "The opponent is selecting 1 Digimon trash digivolution card");
+                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+
+                    #endregion
+
+                    if (selectedPermanment != null)
                     {
-                        Permanent selectedPermanment = null;
-
-                        #region Select Permanent
-
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanent));
-                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-
-                        selectPermanentEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectPermanent,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
-                            canEndNotMax: false,
-                            selectPermanentCoroutine: SelectPermanentCoroutine,
-                            afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Custom,
-                            cardEffect: activateClass);
-
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        #region Select Digivolution Card to trash
+
+                        CardSource selectedCard = null;
+                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
+
+                        selectCardEffect.SetUp(
+                                    canTargetCondition: CanSelectSource,
+                                    canTargetCondition_ByPreSelecetedList: null,
+                                    canEndSelectCondition: null,
+                                    canNoSelect: () => true,
+                                    selectCardCoroutine: SelectCardCoroutine,
+                                    afterSelectCardCoroutine: null,
+                                    message: "Select 1 digivolution card to discard.",
+                                    maxCount: 1,
+                                    canEndNotMax: false,
+                                    isShowOpponent: true,
+                                    mode: SelectCardEffect.Mode.Custom,
+                                    root: SelectCardEffect.Root.Custom,
+                                    customRootCardList: selectedPermanment.DigivolutionCards,
+                                    canLookReverseCard: true,
+                                    selectPlayer: card.Owner,
+                                    cardEffect: null);
+
+                        IEnumerator SelectCardCoroutine(CardSource cardSource)
                         {
-                            selectedPermanment = permanent;
+                            selectedCard = cardSource;
                             yield return null;
                         }
 
-                        selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to gain <Collision>, <Piercing>, +3K DP", "The opponent is selecting 1 Digimon to gain <Collision>, <Piercing>, +3K DP");
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        selectCardEffect.SetUpCustomMessage("Select 1 digivolution card to discard.", "The opponent is selecting 1 digivolution card to discard.");
+                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
 
                         #endregion
 
-                        if (selectedPermanment != null)
+                        if (selectedCard != null) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.TrashDigivolutionCardsAndProcessAccordingToResult(
+                            targetPermanent: selectedPermanment,
+                            targetDigivolutionCards: new List<CardSource>() { selectedCard },
+                            activateClass: activateClass,
+                            successProcess: SuccessProcess,
+                            failureProcess: null));
+
+                        IEnumerator SuccessProcess(List<CardSource> cardSources)
                         {
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCollision(
-                                targetPermanent: selectedPermanment,
-                                effectDuration: EffectDuration.UntilOpponentTurnEnd,
-                                activateClass: activateClass));
-
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainPierce(
-                                targetPermanent: selectedPermanment,
-                                effectDuration: EffectDuration.UntilOpponentTurnEnd,
-                                activateClass: activateClass));
-
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
-                                targetPermanent: selectedPermanment,
-                                changeValue: 3000,
-                                effectDuration: EffectDuration.UntilOpponentTurnEnd,
-                                activateClass: activateClass));
+                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanent))
+                            {
+                                #region Select Permanent to gain effects
+
+                                Permanent selectedPermanment1 = null;
+
+                                int maxCount1 = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanent));
+                                SelectPermanentEffect selectPermanentEffect1 = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                                selectPermanentEffect1.SetUp(
+                                    selectPlayer: card.Owner,
+                                    canTargetCondition: CanSelectPermanent,
+                                    canTargetCondition_ByPreSelecetedList: null,
+                                    canEndSelectCondition: null,
+                                    maxCount: maxCount1,
+                                    canNoSelect: false,
+                                    canEndNotMax: false,
+                                    selectPermanentCoroutine: SelectPermanentCoroutine,
+                                    afterSelectPermanentCoroutine: null,
+                                    mode: SelectPermanentEffect.Mode.Custom,
+                                    cardEffect: activateClass);
+
+                                IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                                {
+                                    selectedPermanment1 = permanent;
+                                    yield return null;
+                                }
+
+                                selectPermanentEffect1.SetUpCustomMessage("Select 1 Digimon to gain <Collision>, <Piercing>, +3K DP", "The opponent is selecting 1 Digimon to gain <Collision>, <Piercing>, +3K DP");
+                                yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect1.Activate());
+
+                                #endregion
+
+                                if (selectedPermanment1 != null)
+                                {
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCollision(
+                                        targetPermanent: selectedPermanment1,
+                                        effectDuration: EffectDuration.UntilOpponentTurnEnd,
+                                        activateClass: activateClass));
+
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainPierce(
+                                        targetPermanent: selectedPermanment1,
+                                        effectDuration: EffectDuration.UntilOpponentTurnEnd,
+                                        activateClass: activateClass));
+
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
+                                        targetPermanent: selectedPermanment1,
+                                        changeValue: 3000,
+                                        effectDuration: EffectDuration.UntilOpponentTurnEnd,
+                                        activateClass: activateClass));
+                                }
+                            }
                         }
                     }
                 }

+ 148 - 77
Assets/CardEffect/EX10/Purple/EX10_045.cs

@@ -11,6 +11,8 @@ namespace DCGO.CardEffects.EX10
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
+            #region Static Effects
+
             #region Alternate Digivolution Requirement
 
             if (timing == EffectTiming.None)
@@ -26,6 +28,7 @@ namespace DCGO.CardEffects.EX10
             #endregion
 
             #region Digixros
+
             if (timing == EffectTiming.None)
             {
                 AddDigiXrosConditionClass addDigiXrosConditionClass = new AddDigiXrosConditionClass();
@@ -43,7 +46,7 @@ namespace DCGO.CardEffects.EX10
                 {
                     if (cardSource == card)
                     {
-                        DigiXrosConditionElement element = new DigiXrosConditionElement(CanSelectCardCondition, "SkullKnightmon");
+                        DigiXrosConditionElement element = new DigiXrosConditionElement(CanSelectCardCondition, "Damemon");
 
                         bool CanSelectCardCondition(CardSource cardSource)
                         {
@@ -64,7 +67,7 @@ namespace DCGO.CardEffects.EX10
                             return false;
                         }
 
-                        DigiXrosConditionElement element1 = new DigiXrosConditionElement(CanSelectCardCondition1, "DeadlyAxemon");
+                        DigiXrosConditionElement element1 = new DigiXrosConditionElement(CanSelectCardCondition1, "ChuuChuumon");
 
                         bool CanSelectCardCondition1(CardSource cardSource)
                         {
@@ -95,6 +98,27 @@ namespace DCGO.CardEffects.EX10
                     return null;
                 }
             }
+
+            #endregion
+
+            #region Collision
+
+            if (timing == EffectTiming.OnCounterTiming)
+            {
+                cardEffects.Add(CardEffectFactory.CollisionSelfStaticEffect(false, card, null));
+            }
+
+            #endregion
+
+            #region Rush
+
+            if (timing == EffectTiming.None)
+            {
+                cardEffects.Add(CardEffectFactory.RushSelfStaticEffect(isInheritedEffect: false, card: card, condition: null));
+            }
+
+            #endregion
+
             #endregion
 
             #region OP/WD/WA Shared
@@ -112,98 +136,141 @@ namespace DCGO.CardEffects.EX10
             bool CanSelectPermanent(Permanent permanent)
             {
                 return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card) &&
-                       permanent.TopCard.HasBagraArmyTraits;
+                       CanSelectSource(permanent.TopCard);
+            }
+
+            bool CanSelectPermamentTrashDigivolution(Permanent permanent)
+            {
+                return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card)
+                    && permanent.DigivolutionCards.Exists(CanSelectSource);
             }
 
             IEnumerator SharedActivateCoroutine(Hashtable hashtable, ActivateClass activateClass)
             {
-                bool discarded = false;
-                List<CardSource> selectedCards = new List<CardSource>();
-
-                SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-
-                selectCardEffect.SetUp(
-                            canTargetCondition: CanSelectSource,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            canNoSelect: () => true,
-                            selectCardCoroutine: SelectCardCoroutine,
-                            afterSelectCardCoroutine: null,
-                            message: "Select 1 digivolution card to discard.",
-                            maxCount: 1,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            mode: SelectCardEffect.Mode.Custom,
-                            root: SelectCardEffect.Root.Custom,
-                            customRootCardList: card.PermanentOfThisCard().DigivolutionCards,
-                            canLookReverseCard: true,
-                            selectPlayer: card.Owner,
-                            cardEffect: null);
-
-                selectCardEffect.SetUpCustomMessage("Select 1 digivolution card to discard.", "The opponent is selecting 1 digivolution card to discard.");
-
-                yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-
-                IEnumerator SelectCardCoroutine(CardSource cardSource)
+                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermamentTrashDigivolution))
                 {
-                    selectedCards.Add(cardSource);
-
-                    yield return null;
-                }
+                    #region Select Permament to trash Digivoltuion Cards
+
+                    Permanent selectedPermanment = null;
+
+                    int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermamentTrashDigivolution));
+                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                    selectPermanentEffect.SetUp(
+                        selectPlayer: card.Owner,
+                        canTargetCondition: CanSelectPermamentTrashDigivolution,
+                        canTargetCondition_ByPreSelecetedList: null,
+                        canEndSelectCondition: null,
+                        maxCount: maxCount,
+                        canNoSelect: true,
+                        canEndNotMax: false,
+                        selectPermanentCoroutine: SelectPermanentCoroutine,
+                        afterSelectPermanentCoroutine: null,
+                        mode: SelectPermanentEffect.Mode.Custom,
+                        cardEffect: activateClass);
+
+                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                    {
+                        selectedPermanment = permanent;
+                        yield return null;
+                    }
 
-                if (selectedCards.Count >= 1)
-                {
-                    yield return ContinuousController.instance.StartCoroutine(new ITrashDigivolutionCards(card.PermanentOfThisCard(), selectedCards, activateClass).TrashDigivolutionCards());
+                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon trash digivolution card", "The opponent is selecting 1 Digimon trash digivolution card");
+                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                    discarded = true;
-                }
+                    #endregion
 
-                if (discarded)
-                {
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanent))
+                    if (selectedPermanment != null)
                     {
-                        Permanent selectedPermanment = null;
-
-                        #region Select Permanent
-
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanent));
-                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-
-                        selectPermanentEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectPermanent,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
-                            canEndNotMax: false,
-                            selectPermanentCoroutine: SelectPermanentCoroutine,
-                            afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Custom,
-                            cardEffect: activateClass);
-
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        #region Select Digivolution Card to trash
+
+                        CardSource selectedCard = null;
+                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
+
+                        selectCardEffect.SetUp(
+                                    canTargetCondition: CanSelectSource,
+                                    canTargetCondition_ByPreSelecetedList: null,
+                                    canEndSelectCondition: null,
+                                    canNoSelect: () => true,
+                                    selectCardCoroutine: SelectCardCoroutine,
+                                    afterSelectCardCoroutine: null,
+                                    message: "Select 1 digivolution card to discard.",
+                                    maxCount: 1,
+                                    canEndNotMax: false,
+                                    isShowOpponent: true,
+                                    mode: SelectCardEffect.Mode.Custom,
+                                    root: SelectCardEffect.Root.Custom,
+                                    customRootCardList: selectedPermanment.DigivolutionCards,
+                                    canLookReverseCard: true,
+                                    selectPlayer: card.Owner,
+                                    cardEffect: null);
+
+                        IEnumerator SelectCardCoroutine(CardSource cardSource)
                         {
-                            selectedPermanment = permanent;
+                            selectedCard = cardSource;
                             yield return null;
                         }
 
-                        selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to gain <Blocker>, <Retailiation>", "The opponent is selecting 1 Digimon to gain <Blocker>, <Retailiation>");
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        selectCardEffect.SetUpCustomMessage("Select 1 digivolution card to discard.", "The opponent is selecting 1 digivolution card to discard.");
+                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
 
                         #endregion
 
-                        if (selectedPermanment != null)
+                        if (selectedCard != null) yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.TrashDigivolutionCardsAndProcessAccordingToResult(
+                            targetPermanent: selectedPermanment,
+                            targetDigivolutionCards: new List<CardSource>() { selectedCard },
+                            activateClass: activateClass,
+                            successProcess: SuccessProcess,
+                            failureProcess: null));
+
+                        IEnumerator SuccessProcess(List<CardSource> cardSources)
                         {
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainBlocker(
-                                targetPermanent: selectedPermanment,
-                                effectDuration: EffectDuration.UntilOpponentTurnEnd,
-                                activateClass: activateClass));
-
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainRetaliation(
-                                targetPermanent: selectedPermanment,
-                                effectDuration: EffectDuration.UntilOpponentTurnEnd,
-                                activateClass: activateClass));
+                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanent))
+                            {
+                                #region Select Permanent to gain effects
+
+                                Permanent selectedPermanment1 = null;
+
+                                int maxCount1 = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanent));
+                                SelectPermanentEffect selectPermanentEffect1 = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                                selectPermanentEffect1.SetUp(
+                                    selectPlayer: card.Owner,
+                                    canTargetCondition: CanSelectPermanent,
+                                    canTargetCondition_ByPreSelecetedList: null,
+                                    canEndSelectCondition: null,
+                                    maxCount: maxCount1,
+                                    canNoSelect: false,
+                                    canEndNotMax: false,
+                                    selectPermanentCoroutine: SelectPermanentCoroutine,
+                                    afterSelectPermanentCoroutine: null,
+                                    mode: SelectPermanentEffect.Mode.Custom,
+                                    cardEffect: activateClass);
+
+                                IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                                {
+                                    selectedPermanment1 = permanent;
+                                    yield return null;
+                                }
+
+                                selectPermanentEffect1.SetUpCustomMessage("Select 1 Digimon to gain <Blocker> & <Retaliation>", "The opponent is selecting 1 Digimon to gain <Blocker> & <Retaliation>");
+                                yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect1.Activate());
+
+                                #endregion
+
+                                if (selectedPermanment1 != null)
+                                {
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainBlocker(
+                                        targetPermanent: selectedPermanment,
+                                        effectDuration: EffectDuration.UntilOpponentTurnEnd,
+                                        activateClass: activateClass));
+
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainRetaliation(
+                                        targetPermanent: selectedPermanment,
+                                        effectDuration: EffectDuration.UntilOpponentTurnEnd,
+                                        activateClass: activateClass));
+                                }
+                            }
                         }
                     }
                 }
@@ -284,13 +351,16 @@ namespace DCGO.CardEffects.EX10
             #endregion
 
             #region Save
+
             if (timing == EffectTiming.OnDestroyedAnyone)
             {
                 cardEffects.Add(CardEffectFactory.SaveEffect(card: card));
             }
+
             #endregion
 
             #region ESS
+
             if (timing == EffectTiming.OnDigivolutionCardDiscarded)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -321,6 +391,7 @@ namespace DCGO.CardEffects.EX10
                     yield return ContinuousController.instance.StartCoroutine(new DrawClass(card.Owner, 1, activateClass).Draw());
                 }
             }
+
             #endregion
 
             return cardEffects;

+ 4 - 2
Assets/CardEffect/EX10/Purple/EX10_056.cs

@@ -104,7 +104,8 @@ namespace DCGO.CardEffects.EX10
                     int digimon = card.Owner.Enemy.GetBattleAreaDigimons().Count;
                     int tamers = card.Owner.Enemy.GetBattleAreaPermanents().Filter(x => x.IsTamer).Count;
 
-                    return digimon >= 1 && digimon + tamers >= 2;
+                    return digimon >= 1
+                        && (digimon - 1 + tamers) >= 1;
                 }
 
                 bool IsEnemyDigimon(Permanent permanent)
@@ -114,7 +115,8 @@ namespace DCGO.CardEffects.EX10
 
                 bool IsEnemyPermanent(Permanent permanent, Permanent targetPermament)
                 {
-                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleArea(permanent, card)
+                    return (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card)
+                        || CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaTamer(permanent, card))
                         && permanent != targetPermament;
                 }
 

+ 16 - 5
Assets/CardEffect/EX10/Purple/EX10_058.cs

@@ -13,6 +13,7 @@ namespace DCGO.CardEffects.EX10
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
             #region Digixros
+
             if (timing == EffectTiming.None)
             {
                 AddDigiXrosConditionClass addDigiXrosConditionClass = new AddDigiXrosConditionClass();
@@ -61,9 +62,11 @@ namespace DCGO.CardEffects.EX10
                     return null;
                 }
             }
+
             #endregion
 
             #region Shared On Play/When Digivolving
+
             string SharedEffectDiscription(string tag)
             {
                 return $"[{tag}] Until your opponent's turn ends, give 1 of their Digimon or Tamers \"[End of Your Turn] Delete 1 of your Digimon.\"";
@@ -78,10 +81,12 @@ namespace DCGO.CardEffects.EX10
             {
                 bool PermanentCondition(Permanent permanent)
                 {
-                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
+                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card)
+                         || CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaTamer(permanent, card);
                 }
 
                 Permanent selectedPermanent = null;
+
                 #region Select Permanent
 
                 int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(PermanentCondition));
@@ -106,7 +111,7 @@ namespace DCGO.CardEffects.EX10
                     yield return null;
                 }
 
-                selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to gain effect", "The opponent is selecting 1 Digimon to gain effect");
+                selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon/Tamer to gain effect", "The opponent is selecting 1 Digimon/Tamer to gain effect");
                 yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
                 #endregion
@@ -114,7 +119,6 @@ namespace DCGO.CardEffects.EX10
                 AddSkillClass addSkillClass = new AddSkillClass();
                 addSkillClass.SetUpICardEffect("Delete 1 of your Digimon", CanUseCondition1, card);
                 addSkillClass.SetUpAddSkillClass(cardSourceCondition: CardSourceCondition, getEffects: GetEffects);
-
                 card.Owner.UntilOpponentTurnEndEffects.Add((_timing) => addSkillClass);
 
                 bool CanUseCondition1(Hashtable hashtable)
@@ -205,9 +209,11 @@ namespace DCGO.CardEffects.EX10
                     return cardEffects;
                 }
             }
+
             #endregion
 
             #region On Play
+
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -221,9 +227,11 @@ namespace DCGO.CardEffects.EX10
                            CardEffectCommons.CanTriggerOnPlay(hashtable, card);
                 }
             }
+
             #endregion
 
             #region When Digivolving
+
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -237,9 +245,11 @@ namespace DCGO.CardEffects.EX10
                            CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
                 }
             }
+
             #endregion
 
             #region All Turns - OPT
+
             if (timing == EffectTiming.OnEnterFieldAnyone || timing == EffectTiming.OnDestroyedAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -257,7 +267,7 @@ namespace DCGO.CardEffects.EX10
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
-                        if(card.PermanentOfThisCard().DigivolutionCards.Count >= 2)
+                        if (card.PermanentOfThisCard().DigivolutionCards.Count >= 2)
                         {
                             if (timing == EffectTiming.OnEnterFieldAnyone)
                             {
@@ -268,7 +278,7 @@ namespace DCGO.CardEffects.EX10
                                 return CardEffectCommons.CanTriggerOnPermanentDeleted(hashtable, OpponentsDigimon);
                         }
                     }
-                    
+
                     return false;
                 }
 
@@ -383,6 +393,7 @@ namespace DCGO.CardEffects.EX10
                     }
                 }
             }
+
             #endregion
 
             return cardEffects;