mbunch_kascope пре 2 година
родитељ
комит
49a2943a8f

+ 1 - 1
Assets/CardEffect/BT17/Black/Tsumemon_BT17_005.cs

@@ -31,7 +31,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if(CardEffectCommons.CanActivateOnDeletionInherited(hashtable, card))
                     {
-                        return card.ContainsTraits("Unidentified");
+                        return card.PermanentOfThisCard().TopCard.ContainsTraits("Unidentified");
                     }
 
                     return false;

+ 1 - 1
Assets/CardEffect/BT17/Blue/CerberusmonWerewolfMode_BT17_025.cs

@@ -311,7 +311,7 @@ namespace DCGO.CardEffects.BT17
                 string EffectDescription()
                 {
                     return
-                        "[All Turns] When an effect plays or digivolves an opponent's Digimon, if you have a Tamer, this Digimon may digivolve into [Imperialdramon: Fighter Mode] in your hand without paying the cost.";
+                        "[All Turns] [Once Per Turn] When an effect plays one of your Digimon, return 1 of your opponent's level 3 Digimon to the hand.";
                 }
 
                 bool IsOwnDigimon(Permanent permanent)

+ 2 - 3
Assets/CardEffect/BT17/Blue/Lobomon_BT17_022.cs

@@ -22,8 +22,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool PermanentCondition(Permanent targetPermanent)
                 {
-                    return targetPermanent.TopCard.EqualsCardName("Koji  Minamoto") ||
-                           targetPermanent.TopCard.EqualsCardName("KojiMinamoto");
+                    return targetPermanent.TopCard.EqualsCardName("Koji Minamoto");
                 }
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(
@@ -199,7 +198,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (card.Owner.HandCards.Count <= 7)
                         {

+ 4 - 16
Assets/CardEffect/BT17/Green/Argomon_BT17_004.cs

@@ -14,31 +14,19 @@ namespace DCGO.CardEffects.BT17
             {
                 bool CanUseCondition()
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.IsOpponentTurn(card))
                         {
-                            return true;
+                            if (card.PermanentOfThisCard().TopCard.CardNames.Contains("Argomon"))
+                                return true;
                         }
                     }
 
                     return false;
                 }
 
-                bool PermanentCondition(Permanent permanent)
-                {
-                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
-                    {
-                        if (permanent.TopCard.CardNames.Contains("Argomon"))
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
-                }
-
-                cardEffects.Add(CardEffectFactory.BlockerStaticEffect(permanentCondition: PermanentCondition, isInheritedEffect: true, card: card, condition: CanUseCondition));
+                cardEffects.Add(CardEffectFactory.BlockerSelfStaticEffect(isInheritedEffect: true, card: card, condition: CanUseCondition));
             }
             #endregion
 

+ 2 - 6
Assets/CardEffect/BT17/Green/Argomon_BT17_042.cs

@@ -22,7 +22,7 @@ namespace DCGO.CardEffects.BT17
             #endregion
 
             #region On Play
-            if (timing == EffectTiming.None)
+            if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Reveal 3", CanUseCondition, card);
@@ -119,11 +119,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if(CardEffectCommons.IsExistOnTrash(card))
-                    {
-                        return true;
-                    }
-                    return false;
+                    return CardEffectCommons.CanActivateOnDeletionInherited(hashtable, card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)

+ 2 - 2
Assets/CardEffect/EX6/Green/Argomon_BT17_045.cs → Assets/CardEffect/BT17/Green/Argomon_BT17_045.cs

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections.Generic;
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT17
 {
     public class Argomon_BT17_045 : CEntity_Effect
     {
@@ -25,7 +25,7 @@ namespace DCGO.CardEffects
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Play 1 Tamer", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 

+ 0 - 0
Assets/CardEffect/EX6/Green/Argomon_BT17_045.cs.meta → Assets/CardEffect/BT17/Green/Argomon_BT17_045.cs.meta


+ 2 - 7
Assets/CardEffect/BT17/Green/Gargomon_BT17_046.cs

@@ -26,7 +26,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (source.EqualsCardName("Terriermon"))
                     {
-                        if (source.CanPlayCardTargetFrame(card.PermanentOfThisCard().PermanentFrame, false, activateClass, SelectCardEffect.Root.Trash))
+                        if (CardEffectCommons.CanPlayAsNewPermanent(source, false, activateClass, SelectCardEffect.Root.Trash))
                         {
                             return true;
                         }
@@ -36,12 +36,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.CanTriggerOnDeletion(hashtable, card))
-                    {
-                        return true;
-                    }
-
-                    return false;
+                    return CardEffectCommons.CanTriggerOnDeletion(hashtable, card);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)

+ 3 - 2
Assets/CardEffect/BT17/Green/Morphomon_BT17_044.cs

@@ -45,7 +45,6 @@ namespace DCGO.CardEffects.BT17
             #endregion
 
 
-            //Incomplete
             #region Your Turn - Once Per Turn - Inherit
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
@@ -53,6 +52,7 @@ namespace DCGO.CardEffects.BT17
                 activateClass.SetUpICardEffect("Digivolve for reduced cost", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
                 activateClass.SetHashString("DigivolveEosmonBT17_044");
+                activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -66,7 +66,8 @@ namespace DCGO.CardEffects.BT17
                     {
                         if (permanent.TopCard.CardNames.Contains("Eosmon"))
                         {
-                            return true;
+                            if (permanent != card.PermanentOfThisCard())
+                                return true;
                         }
                     }
                     return false;

+ 2 - 2
Assets/CardEffect/BT17/Green/Parrotmon_BT17_047.cs

@@ -13,7 +13,7 @@ namespace DCGO.CardEffects.BT17
             #region On Play/When Digivolving Shared
             bool IsOpponentsDigimon(Permanent permanent)
             {
-                return permanent.IsDigimon;
+                return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
             }
             #endregion
 
@@ -175,7 +175,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleArea(card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)

+ 3 - 2
Assets/CardEffect/BT17/Purple/Bowmon_BT17_006.cs

@@ -15,7 +15,7 @@ namespace DCGO.CardEffects.BT17
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Digivolve into SoC trash card", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false,
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true,
                     EffectDescription());
                 activateClass.SetIsInheritedEffect(true);
                 activateClass.SetHashString("DigivolveTrash_BT17_006");
@@ -35,7 +35,8 @@ namespace DCGO.CardEffects.BT17
                                hashtable: hashtable,
                                permanentCondition: permanent => permanent == card.PermanentOfThisCard(),
                                cardEffectCondition: cardEffect => cardEffect.EffectSourceCard != null,
-                               cardCondition: cardSource => cardSource.IsTamer);
+                               cardCondition: cardSource => cardSource.IsTamer) &&
+                           CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectSoCCardCondition);
                 }
 
                 bool CanSelectSoCCardCondition(CardSource cardSource)

+ 1 - 0
Assets/CardEffect/BT17/Red/GallantmonCrimsonModeAce_BT17_018.cs

@@ -297,6 +297,7 @@ namespace DCGO.CardEffects.BT17
                 activateClass.SetUpICardEffect($"Trash {Count()} cards from the top of your opponent's security stack", CanUseCondition,
                     card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDescription());
+                activateClass.SetHashString("WhenAttack_BT17_018");
                 cardEffects.Add(activateClass);
 
                 string EffectDescription()

+ 1 - 1
Assets/CardEffect/BT17/Red/Gallantmon_BT17_016.cs

@@ -126,7 +126,7 @@ namespace DCGO.CardEffects.BT17
                 string EffectDescription()
                 {
                     return
-                        "[When Digivolving] Delete 1 of your opponent's Digimon with 8000 DP or less. If this effect didn't delete, this Digimon gets +3000 DP and gains [Blocker] until the end of your opponent's turn.";
+                        "[When Attacking] Delete 1 of your opponent's Digimon with 8000 DP or less. If this effect didn't delete, this Digimon gets +3000 DP and gains [Blocker] until the end of your opponent's turn.";
                 }
 
                 bool CanSelectOpponentPermanentCondition(Permanent permanent)

+ 2 - 1
Assets/CardEffect/BT17/Red/Growlmon_BT17_010.cs

@@ -139,7 +139,8 @@ namespace DCGO.CardEffects.BT17
                         {
                             if (cardEffect.EffectSourceCard.Owner == card.Owner)
                             {
-                                maxDP += 2000;
+                                if (cardEffect.EffectSourceCard.PermanentOfThisCard() == card.PermanentOfThisCard())
+                                    maxDP += 2000;
                             }
                         }
                     }

+ 2 - 1
Assets/CardEffect/BT17/Red/Guilmon_BT17_008.cs

@@ -169,7 +169,8 @@ namespace DCGO.CardEffects.BT17
                         {
                             if (cardEffect.EffectSourceCard.Owner == card.Owner)
                             {
-                                maxDP += 2000;
+                                if(cardEffect.EffectSourceCard.PermanentOfThisCard() == card.PermanentOfThisCard()) 
+                                    maxDP += 2000;
                             }
                         }
                     }

+ 12 - 34
Assets/CardEffect/BT17/Yellow/Kazuchimon_BT17_040.cs

@@ -126,31 +126,23 @@ namespace DCGO.CardEffects.BT17
             }
             #endregion
 
-            #region End of Attack
-            if (timing == EffectTiming.OnEndAttack)
+            #region End of Your Turn
+            if (timing == EffectTiming.OnEndTurn)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Give -7000 DP and/or delete 1 of your opponent's unsuspended Digimon.", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Give -6000 DP and/or Recovery +1. Then 1 of your Digimon may attack", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
+                activateClass.SetHashString("EndofTurn_BT17_040");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[End of Attack] [Once per turn] If you have 3 or more security cards, 1 of your opponent's Digimon gets -6000 DP for the turn. If you have 3 or fewer security cards, Recovery +1. Then, 1 of your Digimon may attack an opponent's Digimon.";
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOnEndAttack(hashtable, card);
+                    return "[End of Your Turn] [Once Per Turn] If you have 3 or more security cards, 1 of your opponent's Digimon gets -6000 DP for the turn. If you have 3 or fewer security cards, <Recovery +1 (Deck)>. Then, 1 of your Digimon may attack an opponent's Digimon.";
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 {
-                    if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
-                    {
-                        return true;
-                    }
-                    return false;
+                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
                 }
 
                 bool CanSelectPermanentCondition1(Permanent permanent)
@@ -169,28 +161,14 @@ namespace DCGO.CardEffects.BT17
                     return false;
                 }
 
-                bool CanActivateCondition(Hashtable hashtable)
+                bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (card.Owner.SecurityCards.Count <= 3)
-                        {
-                            if (card.Owner.CanAddSecurity(activateClass))
-                            {
-                                return true;
-                            }
-                        }
-
-                        if (card.Owner.SecurityCards.Count >= 3)
-                        {
-                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                            {
-                                return true;
-                            }
-                        }
-                    }
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                }
 
-                    return false;
+                bool CanActivateCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)

+ 73 - 84
Assets/CardEffect/BT17/Yellow/Sakuyamon_BT17_038.cs

@@ -11,6 +11,23 @@ namespace DCGO.CardEffects.BT17
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
+            #region Alternate Digivolution
+
+            if (timing == EffectTiming.None)
+            {
+                // Alternate Digivolution
+                bool PermanentCondition(Permanent targetPermanent)
+                {
+                    return targetPermanent.TopCard.EqualsCardName("Sakuyamon: Maid Mode");
+                }
+
+                cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(
+                    permanentCondition: PermanentCondition, digivolutionCost: 1, ignoreDigivolutionRequirement: true,
+                    card: card, condition: null));
+            }
+
+            #endregion
+
             #region Barrier
             if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
             {
@@ -22,30 +39,36 @@ namespace DCGO.CardEffects.BT17
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("DP -6000", CanUseCondition, card);
+                activateClass.SetUpICardEffect("DP -6000, then use 1 [Plug - In] Option", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[When Digivolving] 1 of your opponent's Digimon gets -6000 DP for the turn.";
+                    return "[When Digivolving] 1 of your opponent's Digimon gets -6000 DP for the turn. Then, you may use 1 Option card with [Plug-In] in its name or 1 yellow Option card with a cost of 5 or less from your hand without paying the cost.";
                 }
 
-                bool CanSelectPermanentCondition(Permanent permanent)
+                bool OptionCondition(CardSource cardSource)
                 {
-                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
-                }
+                    if (cardSource.IsOption)
+                    {
+                        if (cardSource.ContainsCardName("Plug-In") || cardSource.CardColors.Contains(CardColor.Yellow))
+                        {
+                            if (cardSource.GetCostItself <= 5)
+                            {
+                                return true;
+                            }
+                        }
+                    }
 
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
+                    return false;
                 }
 
-                bool CanActivateCondition(Hashtable hashtable)  
+                bool CanSelectCardCondition(CardSource cardSource)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (OptionCondition(cardSource))
                     {
-                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                        if (!cardSource.CanNotPlayThisOption)
                         {
                             return true;
                         }
@@ -54,6 +77,21 @@ namespace DCGO.CardEffects.BT17
                     return false;
                 }
 
+                bool CanSelectPermanentCondition(Permanent permanent)
+                {
+                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
+                }
+
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
+                }
+
+                bool CanActivateCondition(Hashtable hashtable)  
+                {
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                }
+
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 {
                     if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
@@ -84,70 +122,7 @@ namespace DCGO.CardEffects.BT17
                             yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: permanent, changeValue: -6000, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
                         }
                     }
-                }
-            }
 
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 [Plug-In] or Yellow Option", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[When Digivolving] Then, you may use 1 Option card with [Plug-In] in its name in its name or 1 yellow Option card with a cost of 5 or less from your hand without paying the cost.";
-                }
-
-                bool OptionCondition(CardSource cardSource)
-                {
-                    if (cardSource.IsOption)
-                    {
-                        if (cardSource.ContainsCardName("Plug-In") || cardSource.CardColors.Contains(CardColor.Yellow))
-                        {
-                            if(cardSource.GetCostItself <= 5)
-                            {
-                                return true;
-                            }                         
-                        }
-                    }
-
-                    return false;
-                }
-
-                bool CanSelectCardCondition(CardSource cardSource)
-                {
-                    if (OptionCondition(cardSource))
-                    {
-                        if (!cardSource.CanNotPlayThisOption)
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (card.Owner.HandCards.Count >= 1)
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {
                     if (card.Owner.HandCards.Count(CanSelectCardCondition) >= 1)
                     {
                         List<CardSource> selectedCards = new List<CardSource>();
@@ -195,6 +170,7 @@ namespace DCGO.CardEffects.BT17
                     }
                 }
             }
+
             #endregion
 
             #region Your Turn
@@ -202,6 +178,8 @@ namespace DCGO.CardEffects.BT17
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("When you use an option, this Digimon can't be returned to hand or deck by effect.", CanUseCondition1, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
+                activateClass.SetHashString("AllTurns_Bt17_038");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -255,16 +233,27 @@ namespace DCGO.CardEffects.BT17
                     return false;
                 }
 
-                string effectName = "Can't return to hand by opponent's effects";
-
-                cardEffects.Add(CardEffectFactory.CannotReturnToHandStaticEffect(
-                    permanentCondition: PermanentCondition,
-                    cardEffectCondition: CardEffectCondition,
-                    isInheritedEffect: false,
-                    card: card,
-                    condition: CanUseCondition2,
-                    effectName: effectName
-                ));
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
+                {
+                    cardEffects.Add(CardEffectFactory.CannotReturnToDeckStaticEffect(
+                        permanentCondition: PermanentCondition,
+                        cardEffectCondition: CardEffectCondition,
+                        isInheritedEffect: false,
+                        card: card,
+                        condition: CanUseCondition2,
+                        effectName: "Can't return to deck by opponent's effects"));
+
+                    cardEffects.Add(CardEffectFactory.CannotReturnToHandStaticEffect(
+                        permanentCondition: PermanentCondition,
+                        cardEffectCondition: CardEffectCondition,
+                        isInheritedEffect: false,
+                        card: card,
+                        condition: CanUseCondition2,
+                        effectName: "Can't return to hand by opponent's effects"));
+
+                    yield return null;
+                }
+                
             }          
             #endregion
 

+ 80 - 158
Assets/CardEffect/BT17/Yellow/ShineGreymonBurstMode_BT17_041.cs

@@ -34,7 +34,7 @@ namespace DCGO.CardEffects.BT17
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 Tamer from hand", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Play 1 Tamer from hand, for each Tamer give and DP -5000", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
 
@@ -56,6 +56,11 @@ namespace DCGO.CardEffects.BT17
                     return false;
                 }
 
+                bool CanSelectPermanentCondition(Permanent permanent)
+                {
+                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
+                }
+
                 bool CanUseCondition(Hashtable hashtable)
                 {
                     return CardEffectCommons.CanTriggerOnPlay(hashtable, card);
@@ -63,15 +68,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (card.Owner.HandCards.Count >= 1)
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
@@ -112,80 +109,44 @@ namespace DCGO.CardEffects.BT17
 
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: selectedCards, activateClass: activateClass, payCost: false, isTapped: false, root: SelectCardEffect.Root.Hand, activateETB: true));
                     }
-                }
-            }
-
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("For each Tamer give and DP -5000", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[On Play] You may play 1 Tamer card from your hand without paying the cost. Then, for the turn, 1 of your opponent's Digimon gets -5000 DP for each of your Tamers.";
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, (permanent) => permanent.IsTamer))
-                        {
-                            return true;
-                        }
-                    }
 
-                    return false;
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {
-                    int count = card.Owner.GetBattleAreaPermanents().Count((permanent) => permanent.IsTamer);
-
-                    if (count >= 1)
+                    if (CardEffectCommons.HasMatchConditionOpponentsPermanent(card, CanSelectPermanentCondition))
                     {
-                        int minusDP = 5000 * count;
+                        int count = card.Owner.GetBattleAreaPermanents().Count((permanent) => permanent.IsTamer);
 
-                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                        if (count >= 1)
                         {
-                            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: false,
-                                canEndNotMax: false,
-                                selectPermanentCoroutine: SelectPermanentCoroutine,
-                                afterSelectPermanentCoroutine: null,
-                                mode: SelectPermanentEffect.Mode.Custom,
-                                cardEffect: activateClass);
-
-                            selectPermanentEffect.SetUpCustomMessage(
-                                $"Select 1 Digimon that will get DP -{minusDP}.",
-                                $"The opponent is selecting 1 Digimon that will get DP -{minusDP}.");
-
-                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                            IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                            int minusDP = 5000 * count;
+
+                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                             {
-                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: permanent, changeValue: -minusDP, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
+                                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: false,
+                                    canEndNotMax: false,
+                                    selectPermanentCoroutine: SelectPermanentCoroutine,
+                                    afterSelectPermanentCoroutine: null,
+                                    mode: SelectPermanentEffect.Mode.Custom,
+                                    cardEffect: activateClass);
+
+                                selectPermanentEffect.SetUpCustomMessage(
+                                    $"Select 1 Digimon that will get DP -{minusDP}.",
+                                    $"The opponent is selecting 1 Digimon that will get DP -{minusDP}.");
+
+                                yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+
+                                IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                                {
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: permanent, changeValue: -minusDP, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
+                                }
                             }
                         }
                     }
@@ -197,7 +158,7 @@ namespace DCGO.CardEffects.BT17
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 Tamer from hand", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Play 1 Tamer from hand, for each Tamer give and DP -5000", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
 
@@ -219,6 +180,11 @@ namespace DCGO.CardEffects.BT17
                     return false;
                 }
 
+                bool CanSelectPermanentCondition(Permanent permanent)
+                {
+                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
+                }
+
                 bool CanUseCondition(Hashtable hashtable)
                 {
                     return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
@@ -226,15 +192,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (card.Owner.HandCards.Count >= 1)
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
@@ -275,80 +233,44 @@ namespace DCGO.CardEffects.BT17
 
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: selectedCards, activateClass: activateClass, payCost: false, isTapped: false, root: SelectCardEffect.Root.Hand, activateETB: true));
                     }
-                }
-            }
-
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("For each Tamer give and DP -5000", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[When Digivolving] You may play 1 Tamer card from your hand without paying the cost. Then, for the turn, 1 of your opponent's Digimon gets -5000 DP for each of your Tamers.";
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, (permanent) => permanent.IsTamer))
-                        {
-                            return true;
-                        }
-                    }
 
-                    return false;
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {
-                    int count = card.Owner.GetBattleAreaPermanents().Count((permanent) => permanent.IsTamer);
-
-                    if (count >= 1)
+                    if (CardEffectCommons.HasMatchConditionOpponentsPermanent(card, CanSelectPermanentCondition))
                     {
-                        int minusDP = 5000 * count;
+                        int count = card.Owner.GetBattleAreaPermanents().Count((permanent) => permanent.IsTamer);
 
-                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                        if (count >= 1)
                         {
-                            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: false,
-                                canEndNotMax: false,
-                                selectPermanentCoroutine: SelectPermanentCoroutine,
-                                afterSelectPermanentCoroutine: null,
-                                mode: SelectPermanentEffect.Mode.Custom,
-                                cardEffect: activateClass);
-
-                            selectPermanentEffect.SetUpCustomMessage(
-                                $"Select 1 Digimon that will get DP -{minusDP}.",
-                                $"The opponent is selecting 1 Digimon that will get DP -{minusDP}.");
-
-                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                            IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                            int minusDP = 5000 * count;
+
+                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                             {
-                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: permanent, changeValue: -minusDP, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
+                                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: false,
+                                    canEndNotMax: false,
+                                    selectPermanentCoroutine: SelectPermanentCoroutine,
+                                    afterSelectPermanentCoroutine: null,
+                                    mode: SelectPermanentEffect.Mode.Custom,
+                                    cardEffect: activateClass);
+
+                                selectPermanentEffect.SetUpCustomMessage(
+                                    $"Select 1 Digimon that will get DP -{minusDP}.",
+                                    $"The opponent is selecting 1 Digimon that will get DP -{minusDP}.");
+
+                                yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+
+                                IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                                {
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: permanent, changeValue: -minusDP, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
+                                }
                             }
                         }
                     }

+ 5 - 3
Assets/CardEffect/BT17/Yellow/Taomon_BT17_035.cs

@@ -184,7 +184,7 @@ namespace DCGO.CardEffects.BT17
                             CardEffectCommons.PlayOptionCards(
                                 cardSources: selectedCards,
                                 activateClass: activateClass,
-                                payCost: false,
+                                payCost: true,
                                 root: SelectCardEffect.Root.Hand
                             )
                         );
@@ -201,8 +201,9 @@ namespace DCGO.CardEffects.BT17
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Play 1 [Plug-In] Option", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
                 activateClass.SetIsInheritedEffect(true);
+                activateClass.SetHashString("ESS_BT17_035");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -365,11 +366,12 @@ namespace DCGO.CardEffects.BT17
                                 CardEffectCommons.PlayOptionCards(
                                     cardSources: selectedCards,
                                     activateClass: activateClass,
-                                    payCost: false,
+                                    payCost: true,
                                     root: SelectCardEffect.Root.Hand
                                 )
                             );
                         }
+
                         #region release effect
                         card.Owner.UntilCalculateFixedCostEffect.Remove(getCardEffect);
                         #endregion