فهرست منبع

Fixes for ImperialdramonBT20

Pedro Paulo de Almeida Marinho 1 سال پیش
والد
کامیت
0fbc642306

+ 3 - 3
Assets/CardEffect/BT20/Purple/BT20_065.cs

@@ -15,7 +15,7 @@ namespace DCGO.CardEffects.BT20
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Give effects to your opponent's Digimon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -98,8 +98,8 @@ namespace DCGO.CardEffects.BT20
                                     cardEffect: activateClass);
 
                                 selectPermanentEffect.SetUpCustomMessage(
-                                    "Select 1 Digimon that will get [On Deletion] Lose 1 Memory.",
-                                    "The opponent is selecting 1 Digimon that will get [On Deletion] Lose 1 Memory.");
+                                    "Select 1 Digimon that will gain effect.",
+                                    "The opponent is selecting 1 Digimon that will gain effect.");
 
                                 yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 

+ 8 - 22
Assets/CardEffect/BT20/Purple/BT20_066.cs

@@ -18,7 +18,7 @@ namespace DCGO.CardEffects.BT20
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Delete digimon and digivolve into ImperialDramon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -68,20 +68,12 @@ namespace DCGO.CardEffects.BT20
                         if (cardSource.Owner == card.Owner)
                         {
                             if(cardSource.CardTraits.Contains("Free") || cardSource.ContainsCardName("Imperialdramon"))
-                            {        
-                                                
+                            {                                                        
                                 if (cardSource.CanPlayJogress(true))
-                                {
-                                    if (isExistOnField(card))
-                                    {
-                                        if (cardSource.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
-                                        {
-                                            return true;
-                                        }
-                                    }
+                                {   
+                                    return true;                                                                        
                                 }
-                            }
-                        
+                            }                        
                         }
                     }
                     }
@@ -251,7 +243,7 @@ namespace DCGO.CardEffects.BT20
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Delete digimon and digivolve into ImperialDramon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -304,14 +296,8 @@ namespace DCGO.CardEffects.BT20
                             {        
                                                 
                                 if (cardSource.CanPlayJogress(true))
-                                {
-                                    if (isExistOnField(card))
-                                    {
-                                        if (cardSource.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
-                                        {
-                                            return true;
-                                        }
-                                    }
+                                {       
+                                    return true;
                                 }
                             }
                         

+ 3 - 3
Assets/CardEffect/BT20/Purple/BT20_074.cs

@@ -158,17 +158,17 @@ namespace DCGO.CardEffects
             }
             #endregion
 
-            #region When Digievolving
+            #region When Digivolving
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Return a card, DNA Digivolve into Imperialdramon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[On Play] [When Digivolving] You may return 1 Digimon card with [Imperialdramon] in its name or the [Free] trait from your trash to the hand. [All Turns] When any of your [Dinobeemon]/[Paildramon] would be returned to hands or decks, 2 of your Digimon may DNA digivolve into [Imperialdramon: Dragon Mode] in the hand.";
+                    return "[When Digivolving] You may return 1 Digimon card with [Imperialdramon] in its name or the [Free] trait from your trash to the hand.";
                 }
 
                 bool CanSelectCardCondition(CardSource cardSource){

+ 0 - 183
Assets/CardEffect/BT20/Purple/Wormmon BT20_065.cs

@@ -1,183 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace DCGO.CardEffects
-{
-    public class WormmonBT20_065 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-
-            #region On Play
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Give effects to your opponent's Digimon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[On Play] By trashing 1 card in your hand, give 1 of your opponent's Digimon '[On Deletion] Lose 1 memory.' until the end of their turn.";
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                        return CardEffectCommons.CanTriggerOnPlay(hashtable, card);
-
-                    return false;
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
-             }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    if (card.Owner.HandCards.Count >= 1){
-                        bool discarded = false;
-
-                        int discardCount = 1;
-
-                        SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
-
-                        selectHandEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: cardSource => true,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: discardCount,
-                            canNoSelect: true,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            selectCardCoroutine: null,
-                            afterSelectCardCoroutine: AfterSelectCardCoroutine,
-                            mode: SelectHandEffect.Mode.Discard,
-                            cardEffect: activateClass);
-
-                        yield return StartCoroutine(selectHandEffect.Activate());
-                        IEnumerator AfterSelectCardCoroutine(List<CardSource> cardSources)
-                        {
-                            if (cardSources.Count == 1)
-                            {
-                                discarded = true;
-
-                                yield return null;
-                            }
-                        }
-                        if (discarded)
-                        {
-                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                            {
-                                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 [On Deletion] Lose 1 Memory.",
-                                    "The opponent is selecting 1 Digimon that will get [On Deletion] Lose 1 Memory.");
-
-                                yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                                IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                                {
-                                    if (permanent != null)
-                                    {
-                                        yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateDebuffEffect(permanent));
-
-                                        ActivateClass activateClass1 = new ActivateClass();
-                                        activateClass1.SetUpICardEffect("Lose 1 Memory.", GivenEffectCanUseCondition,permanent.TopCard);
-                                        activateClass1.SetUpActivateClass(GivenEffectCanActivateCondition,GivenEffectActivateCoroutine,-1,false, GivenEffectDescription());
-                                        activateClass1.SetEffectSourcePermanent(permanent);
-                                        permanent.UntilOwnerTurnEndEffects.Add(GetCardEffect);
-
-                                        if (!permanent.TopCard.CanNotBeAffected(activateClass))
-                                        {
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateDebuffEffect(permanent));
-                                        }
-
-                                        string GivenEffectDescription()
-                                        {
-                                            return "[On Deletion] Lose 1 Memory.";
-                                        }
-
-                                        bool GivenEffectCanUseCondition(Hashtable hashtable)
-                                        {
-                                            return CardEffectCommons.CanTriggerOnDeletion(hashtable, permanent.TopCard);
-                                        }
-
-                                        bool GivenEffectCanActivateCondition(Hashtable hashtable1)
-                                        {
-                                            if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
-                                            {
-                                                if (!permanent.TopCard.CanNotBeAffected(activateClass))
-                                                {
-                                                    return true;
-                                                }
-                                            }
-
-                                            return false;
-                                        }
-                                        
-                                        IEnumerator GivenEffectActivateCoroutine(Hashtable _hashtable)
-                                        {
-                                            yield return ContinuousController.instance.StartCoroutine(permanent.TopCard.Owner.AddMemory(-1, activateClass));
-
-                                            
-                                        }
-
-                                        ICardEffect GetCardEffect(EffectTiming _timing)
-                                        {
-                                            if (_timing == EffectTiming.OnDestroyedAnyone)
-                                            {
-                                                return activateClass1;
-                                            }
-
-                                            return null;
-                                        }
-
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    
-                    
-
-                }
-            }
-            #endregion
-
-            if (timing == EffectTiming.OnDestroyedAnyone)
-            {
-            cardEffects.Add(CardEffectFactory.RetaliationSelfEffect(isInheritedEffect: true, card: card, condition: null));
-            }
-
-            return cardEffects;
-        }
-    }
-}

+ 0 - 11
Assets/CardEffect/BT20/Purple/Wormmon BT20_065.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4d423b00334085a4e88a514a792a860a
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 5 - 22
Assets/CardEffect/BT20/Red/BT20_001.cs

@@ -10,25 +10,10 @@ namespace DCGO.CardEffects.BT20
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
             if (timing == EffectTiming.None)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("+2000 DP", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
+            {                
+                bool CanActivateCondition()
                 {
-                    return "[Your Turn] This Digimon with 4 or more digivolution cards gets +2000 DP.";
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                        if (CardEffectCommons.IsExistOnBattleArea(card))
+                        if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (card.Owner.LibraryCards.Count >= 1)
                         {
@@ -41,11 +26,9 @@ namespace DCGO.CardEffects.BT20
                     return false;
                 }
 
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: card.PermanentOfThisCard(), changeValue: 2000, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
+                cardEffects.Add(CardEffectFactory.ChangeSelfDPStaticEffect(changeValue: 2000, isInheritedEffect: true, card: card, condition: CanActivateCondition));
 
-                }
+                
             }
 
             return cardEffects;

+ 28 - 50
Assets/CardEffect/BT20/Red/BT20_009.cs

@@ -24,18 +24,24 @@ namespace DCGO.CardEffects.BT20
 
                 
 
-                bool isPurpleDigimon(Permanent permanent)
+                bool PermanentCondition(Permanent permanent)
                 {                 
-                    return permanent.TopCard.CardColors.Contains(CardColor.Purple);                    
-                }
-
-                bool isOwnerDigimon(CardSource cardSource)
-                {                          
-                    return (cardSource.Owner == card.Owner && cardSource.IsDigimon && cardSource.CanPlayCardTargetFrame(card.PermanentOfThisCard().PermanentFrame, false, activateClass));
+                    if(permanent != card.PermanentOfThisCard())
+                    {
+                        if(permanent.TopCard.CardColors.Contains(CardColor.Purple))
+                        {
+                            if(permanent.IsDigimon)
+                            {
+                                if(CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent,card))
+                                {
+                                    return true;
+                                }
+                            }
+                        }                    
+                    }
+                    return false;
                 }
-
                 
-
                 bool canEvolveIntoFree(CardSource cardSource){
                     if (cardSource.CardTraits.Contains("Free")){
                         return true;
@@ -45,19 +51,23 @@ namespace DCGO.CardEffects.BT20
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if(CardEffectCommons.HasMatchConditionOwnersHand(card, isOwnerDigimon))
-                    {
-                        if (CardEffectCommons.CanTriggerOnPermanentPlay(hashtable, isPurpleDigimon))
+                    if(CardEffectCommons.IsExistOnBattleAreaDigimon(card))
+                    {                    
+                        if (CardEffectCommons.CanTriggerOnPermanentPlay(hashtable, PermanentCondition))
                         {
                             return true;
                         }
-                    }
+                    }                    
                     return false;
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return true;
+                    if(CardEffectCommons.IsExistOnBattleAreaDigimon(card))
+                    {
+                        return true;
+                    }
+                    return false;
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -85,41 +95,9 @@ namespace DCGO.CardEffects.BT20
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                     if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                    {
-                        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 that will digivolve.", "The opponent is selecting 1 Digimon that will 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,
+                                targetPermanent: card.PermanentOfThisCard(),
                                 cardCondition: canEvolveIntoFree,
                                 payCost: true,
                                 reduceCostTuple: (reduceCost: 1, reduceCostCardCondition: null),
@@ -127,8 +105,8 @@ namespace DCGO.CardEffects.BT20
                                 ignoreDigivolutionRequirementFixedCost: -1,
                                 isHand: true,
                                 activateClass: activateClass,
-                                successProcess: null));
-                        }
+                                successProcess: null)
+                                );
                     }
                 }
             }

+ 6 - 8
Assets/CardEffect/BT20/Red/BT20_011.cs

@@ -23,7 +23,7 @@ namespace DCGO.CardEffects.BT20
 
                 string EffectDiscription()
                 {
-                    return "[On Play] [When Digivolving] Delete 1 of your opponent's Digimon with 3000 DP or less. Then, if it's your turn, 2 of your Digimon may DNA digivolve into a Digimon card with [Imperialdramon] in its name or the [Free] trait in the hand.";
+                    return "[When Digivolving] Delete 1 of your opponent's Digimon with 3000 DP or less. Then, if it's your turn, 2 of your Digimon may DNA digivolve into a Digimon card with [Imperialdramon] in its name or the [Free] trait in the hand.";
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -111,8 +111,7 @@ namespace DCGO.CardEffects.BT20
                     }
 
                      
-                    if (CardEffectCommons.IsOwnerTurn(card))                
-                    {
+                    
                     if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
                     {
                         if (card.Owner.HandCards.Count >= 1)
@@ -234,7 +233,7 @@ namespace DCGO.CardEffects.BT20
                             }
                         }
                     }
-                }
+                
             
                 }
             }
@@ -250,7 +249,7 @@ namespace DCGO.CardEffects.BT20
 
                 string EffectDiscription()
                 {
-                    return "[On Play] [When Digivolving] Delete 1 of your opponent's Digimon with 3000 DP or less. Then, if it's your turn, 2 of your Digimon may DNA digivolve into a Digimon card with [Imperialdramon] in its name or the [Free] trait in the hand.";
+                    return "[When Digivolving] Delete 1 of your opponent's Digimon with 3000 DP or less. Then, if it's your turn, 2 of your Digimon may DNA digivolve into a Digimon card with [Imperialdramon] in its name or the [Free] trait in the hand.";
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -338,8 +337,7 @@ namespace DCGO.CardEffects.BT20
                     }
 
                      
-                    if (CardEffectCommons.IsOwnerTurn(card))                
-                    {
+                    
                     if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
                     {
                         if (card.Owner.HandCards.Count >= 1)
@@ -461,7 +459,7 @@ namespace DCGO.CardEffects.BT20
                             }
                         }
                     }
-                }
+                
             
                 }
             }

+ 29 - 83
Assets/CardEffect/BT20/Red/BT20_016.cs

@@ -103,12 +103,12 @@ namespace DCGO.CardEffects.BT20
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("1 Digimon gains Piercing and 4000DP, then this digimon may attack", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[When Digivolving] For the turn, 1 of your Digimon gains <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would) and gets +4000 DP. Then, this Digimon may attack. [All Turns] When any of your [Paildramon]/[Dinobeemon] would be deleted, 2 of your Digimon may DNA digivolve into [Imperialdramon: Dragon Mode] in the hand.";
+                    return "[When Digivolving] For the turn, 1 of your Digimon gains <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would) and gets +4000 DP. Then, this Digimon may attack.";
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -123,7 +123,7 @@ namespace DCGO.CardEffects.BT20
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable,card);
+                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable,card);
                 }
 
             IEnumerator ActivateCoroutine(Hashtable _hashtable)
@@ -167,48 +167,21 @@ namespace DCGO.CardEffects.BT20
 
                     }
                 }
-            }
-            ActivateClass activateAttackClass = new ActivateClass();
-                activateAttackClass.SetUpICardEffect("This Digimon may attack", CanUseConditionA, card);
-                activateAttackClass.SetUpActivateClass(CanActivateConditionA, ActivateCoroutineA, 1, true, EffectDiscriptionA());
-                cardEffects.Add(activateAttackClass);
-
-                string EffectDiscriptionA()
-                {
-                    return "This Digimon may attack";
-                }
-
-                bool CanUseConditionA(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                
+                if (card.PermanentOfThisCard().CanAttack(activateClass))
                     {
-                        if (CardEffectCommons.IsOwnerTurn(card))
-                        {
-                            return true;
-                        }
-                    }
+                        SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
 
-                    return false;
-                }
-
-                bool CanActivateConditionA(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
-                           card.PermanentOfThisCard().CanAttack(activateAttackClass);
-                }
+                        selectAttackEffect.SetUp(
+                            attacker: card.PermanentOfThisCard(),
+                            canAttackPlayerCondition: () => true,
+                            defenderCondition: _ => true,
+                            cardEffect: activateClass);
 
-                IEnumerator ActivateCoroutineA(Hashtable hashtable)
-                {
-                    SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
-
-                    selectAttackEffect.SetUp(
-                        attacker: card.PermanentOfThisCard(),
-                        canAttackPlayerCondition: () => true,
-                        defenderCondition: (permanent) => false,
-                        cardEffect: activateAttackClass);
-
-                    yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
-                }
+                        yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
+                    }
+            }
+            
             #endregion
             
             #region On Play
@@ -216,12 +189,12 @@ namespace DCGO.CardEffects.BT20
             {
                 ActivateClass activateClass1 = new ActivateClass();
                 activateClass1.SetUpICardEffect("Piercing and Digivolve into Imperialdramon Dragon Mode", CanUseCondition1, card);
-                activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, true, EffectDiscription1());
+                activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, false, EffectDiscription1());
                 cardEffects.Add(activateClass1);
 
                 string EffectDiscription1()
                 {
-                    return "[On Play]For the turn, 1 of your Digimon gains <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would) and gets +4000 DP. Then, this Digimon may attack. [All Turns] When any of your [Paildramon]/[Dinobeemon] would be deleted, 2 of your Digimon may DNA digivolve into [Imperialdramon: Dragon Mode] in the hand.";
+                    return "[On Play]For the turn, 1 of your Digimon gains <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would) and gets +4000 DP. Then, this Digimon may attack.";
                 }
 
                 bool CanSelectPermanentCondition1(Permanent permanent)
@@ -272,6 +245,7 @@ namespace DCGO.CardEffects.BT20
                             targetPermanent: permanent,
                             effectDuration: EffectDuration.UntilEachTurnEnd,
                             activateClass: activateClass));
+                            
                             yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
                                 targetPermanent: permanent,
                                 changeValue: 4000,
@@ -281,53 +255,25 @@ namespace DCGO.CardEffects.BT20
 
                     }
                 }
-            }
-            ActivateClass activateAttackClass1 = new ActivateClass();
-                activateAttackClass1.SetUpICardEffect("This Digimon may attack", CanUseConditionA1, card);
-                activateAttackClass1.SetUpActivateClass(CanActivateConditionA1, ActivateCoroutineA1, 1, true, EffectDiscriptionA1());
-                cardEffects.Add(activateAttackClass1);
-
-                string EffectDiscriptionA1()
+                if (card.PermanentOfThisCard().CanAttack(activateClass))
                 {
-                    return "This Digimon may attack";
-                }
+                        SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
 
-                bool CanUseConditionA1(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (CardEffectCommons.IsOwnerTurn(card))
-                        {
-                            return true;
-                        }
-                    }
+                        selectAttackEffect.SetUp(
+                            attacker: card.PermanentOfThisCard(),
+                            canAttackPlayerCondition: () => true,
+                            defenderCondition: _ => true,
+                            cardEffect: activateClass1);
 
-                    return false;
-                }
-
-                bool CanActivateConditionA1(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
-                           card.PermanentOfThisCard().CanAttack(activateAttackClass1);
-                }
-
-                IEnumerator ActivateCoroutineA1(Hashtable hashtable)
-                {
-                    SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
-
-                    selectAttackEffect.SetUp(
-                        attacker: card.PermanentOfThisCard(),
-                        canAttackPlayerCondition: () => true,
-                        defenderCondition: (permanent) => false,
-                        cardEffect: activateAttackClass1);
-
-                    yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
+                        yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
                 }
+            }
+           
             }            
             #endregion
 
              #region All Turns
-            if(timing == EffectTiming.None){
+            if(timing == EffectTiming.WhenPermanentWouldBeDeleted){
                 ActivateClass activateClass1 = new ActivateClass();
                 activateClass1.SetUpICardEffect("If would be deleted, DNA Digivolve", CanUseCondition1, card);
                 activateClass1.SetUpActivateClass(CanActivateCondition2, ActivateCoroutine1, -1, true, EffectDiscription1());

+ 15 - 11
Assets/CardEffect/BT20/Red/BT20_020.cs

@@ -26,16 +26,20 @@ namespace DCGO.CardEffects.BT20
             }
             #endregion
 
-            if(timing == EffectTiming.OnDetermineDoSecurityCheck)
-            {
-                cardEffects.Add(CardEffectFactory.PierceSelfEffect(isInheritedEffect: false, card: card, condition: null));
-            }
+            #region Pierce
+                if(timing == EffectTiming.OnDetermineDoSecurityCheck)
+                {
+                    cardEffects.Add(CardEffectFactory.PierceSelfEffect(isInheritedEffect: false, card: card, condition: null));
+                }
+            #endregion
 
-            if(timing == EffectTiming.OnAllyAttack)
-            {
-                cardEffects.Add(CardEffectFactory.RaidSelfEffect(isInheritedEffect: false, card: card, condition: null));
+            #region
+                if(timing == EffectTiming.OnAllyAttack)
+                {
+                    cardEffects.Add(CardEffectFactory.RaidSelfEffect(isInheritedEffect: false, card: card, condition: null));
 
-            }
+                }
+            #endregion
 
             #region When Digievolving
             if (timing == EffectTiming.OnEnterFieldAnyone)
@@ -74,7 +78,7 @@ namespace DCGO.CardEffects.BT20
 
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Gains raid, piercing, trash security stack", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 bool CardEffectCondition(ICardEffect cardEffect)
@@ -84,7 +88,7 @@ namespace DCGO.CardEffects.BT20
                 
                 string EffectDiscription()
                 {
-                    return "<Raid> (When this Digimon attacks, you may switch the target of attack to 1 of your opponent's unsuspended Digimon with the highest DP). <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would). [When Digivolving] Your opponent can't play Digimon or Tamers by effects until the end of their turn. Then, if [Imperialdramon: Dragon Mode] is in this Digimon's digivolution cards, trash your opponent's top security card. [All Turns] [Once Per Turn] When your opponent's security stack is removed from, delete 1 of their Digimon with as much or less DP as this Digimon.";
+                    return "[When Digivolving] Your opponent can't play Digimon or Tamers by effects until the end of their turn. Then, if [Imperialdramon: Dragon Mode] is in this Digimon's digivolution cards, trash your opponent's top security card.";
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -123,7 +127,7 @@ namespace DCGO.CardEffects.BT20
 
 
             #region All Turns
-            if(timing == EffectTiming.None)
+            if(timing == EffectTiming.OnLoseSecurity)
             {
                 ActivateClass activateClass1 = new ActivateClass();
                 activateClass1.SetUpICardEffect("Delete 1 Digimon with as much or less DP as this Digimon", CanUseCondition1, card);

+ 0 - 0
Assets/CardEffect/BT20/Red/ImperialdramonAce_BT20_076.cs → Assets/CardEffect/BT20/Red/BT20_076.cs


+ 0 - 0
Assets/CardEffect/BT20/Red/ImperialdramonAce_BT20_076.cs.meta → Assets/CardEffect/BT20/Red/BT20_076.meta


+ 2 - 3
Assets/CardEffect/BT20/Red/BT20_094.cs

@@ -30,7 +30,7 @@ namespace DCGO.CardEffects.BT20
                 bool isFreeTrait(CardSource cardSource)
                 {
                     if (cardSource.IsDigimon)
-                        return cardSource.ContainsTraits("Free");
+                        return cardSource.ContainsTraits("Free") && CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false,cardEffect: activateClass);
 
                     return false;
                 }
@@ -224,8 +224,7 @@ namespace DCGO.CardEffects.BT20
                     {
                         if (cardSource.ContainsCardName("Imperialdramon: Dragon Mode"))
                         {
-                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false,
-                                    cardEffect: activateClass))
+                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false,cardEffect: activateClass))
                             {
                                 return true;
                             }

+ 0 - 54
Assets/CardEffect/BT20/Red/DemiVeemon_BT20_001.cs

@@ -1,54 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-
-namespace DCGO.CardEffects
-{
-    public class BT20_001 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-
-            if (timing == EffectTiming.None)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("+2000 DP", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[Your Turn] This Digimon with 4 or more digivolution cards gets +2000 DP.";
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                        if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (card.Owner.LibraryCards.Count >= 1)
-                        {
-                            if (card.PermanentOfThisCard().DigivolutionCards.Count >= 4)
-                            {
-                                return true;
-                            }
-                        }
-                    }
-                    return false;
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: card.PermanentOfThisCard(), changeValue: 2000, effectDuration: EffectDuration.UntilEachTurnEnd, activateClass: activateClass));
-
-                }
-            }
-
-            return cardEffects;
-        }
-    }
-}

+ 0 - 11
Assets/CardEffect/BT20/Red/DemiVeemon_BT20_001.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3f0cea7bbb7197b4197891c8c4604535
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 524
Assets/CardEffect/BT20/Red/EmperorDragonOfCalamity_BT20_094.cs

@@ -1,524 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-using Photon.Pun;
-
-
-namespace DCGO.CardEffects
-{
-    public class BT20_094 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-
-            #region Main
-            if (timing == EffectTiming.OptionSkill)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 [Free] trait Digimon card from your trash with the play cost reduced by 5.", CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[Main] You may play 1 [Free] trait Digimon card from your trash with the play cost reduced by 5. Then, place this card in the battle area.";
-                }
-
-                bool isFreeTrait(CardSource cardSource)
-                {
-                    if (cardSource.IsDigimon)
-                        return cardSource.ContainsTraits("Free");
-
-                    return false;
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOptionMainEffect(hashtable, card);
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    if(CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, isFreeTrait))
-                    {
-                        #region reduce play cost
-                        ChangeCostClass changeCostClass = new ChangeCostClass();
-                        changeCostClass.SetUpICardEffect($"Play Cost -5", CanUseCondition1, card);
-                        changeCostClass.SetUpChangeCostClass(changeCostFunc: ChangeCost, cardSourceCondition: CardSourceCondition, rootCondition: RootCondition, isUpDown: isUpDown, isCheckAvailability: () => false, isChangePayingCost: () => true);
-                        Func<EffectTiming, ICardEffect> getCardEffect = GetCardEffect;
-                        card.Owner.UntilCalculateFixedCostEffect.Add(getCardEffect);
-
-                        ICardEffect GetCardEffect(EffectTiming _timing)
-                        {
-                            if (_timing == EffectTiming.None)
-                            {
-                                return changeCostClass;
-                            }
-
-                            return null;
-                        }
-
-                        bool CanUseCondition1(Hashtable hashtable)
-                        {
-                            return true;
-                        }
-
-                        int ChangeCost(CardSource cardSource, int Cost, SelectCardEffect.Root root, List<Permanent> targetPermanents)
-                        {
-                            if (CardSourceCondition(cardSource))
-                            {
-                                if (RootCondition(root))
-                                {
-                                    if (PermanentsCondition(targetPermanents))
-                                    {
-                                        Cost -= 5;
-                                    }
-                                }
-                            }
-
-                            return Cost;
-                        }
-
-                        bool PermanentsCondition(List<Permanent> targetPermanents)
-                        {
-                            if (targetPermanents == null)
-                            {
-                                return true;
-                            }
-
-                            else
-                            {
-                                if (targetPermanents.Count((targetPermanent) => targetPermanent != null) == 0)
-                                {
-                                    return true;
-                                }
-                            }
-
-                            return false;
-                        }
-
-                        bool CardSourceCondition(CardSource cardSource)
-                        {
-                            if (cardSource.HasPlayCost)
-                            {
-                                if (cardSource.IsDigimon)
-                                    return cardSource.ContainsTraits("Free");
-                            }
-
-                            return false;
-                        }
-
-                        bool RootCondition(SelectCardEffect.Root root)
-                        {
-                            return true;
-                        }
-
-                        bool isUpDown()
-                        {
-                            return true;
-                        }
-                        #endregion
-
-                        List<CardSource> selectedCards = new List<CardSource>();
-
-                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-
-                        selectCardEffect.SetUp(
-                            canTargetCondition: isFreeTrait,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            canNoSelect: () => true,
-                            selectCardCoroutine: null,
-                            afterSelectCardCoroutine: SelectCardCoroutine,
-                            message: "Select 1 [Free] trait Digimon card to play.",
-                            maxCount: 1,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            mode: SelectCardEffect.Mode.Custom,
-                            root: SelectCardEffect.Root.Trash,
-                            customRootCardList: null,
-                            canLookReverseCard: true,
-                            selectPlayer: card.Owner,
-                            cardEffect: activateClass);
-
-                        selectCardEffect.SetUpCustomMessage(
-                "Select 1 [Free] trait Digimon card to play.",
-                "The opponent is selecting 1 [Free] trait Digimon card to play.");
-                        selectCardEffect.SetUpCustomMessage_ShowCard("Play Card");
-
-                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-
-                        IEnumerator SelectCardCoroutine(List<CardSource> sources)
-                        {
-                            selectedCards = sources;
-                            yield return null;
-                        }
-
-                        #region Place As Source
-                        if (selectedCards.Count > 0)
-                        {
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(
-                                    cardSources: selectedCards,
-                                    activateClass: activateClass,
-                                    payCost: true,
-                                    isTapped: false,
-                                    root: SelectCardEffect.Root.Trash,
-                                    activateETB: true));
-                        }
-                        #endregion
-
-                        #region Remove Cost effect after use
-                        card.Owner.UntilCalculateFixedCostEffect.Remove(getCardEffect);
-                        #endregion
-                    }
-
-                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlaceDelayOptionCards(card: card, cardEffect: activateClass));
-                }
-            }
-            #endregion
-
-            #region Delay Effect
-            
-            if (timing == EffectTiming.WhenRemoveField)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect(
-                    "Play 1 card with the [Legend-Arms] trait from the removed Digimon's digivolution cards without paying the cost",
-                    CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
-                activateClass.SetHashString("PlayDigivolutionCard_EX6_065");
-                cardEffects.Add(activateClass);
-                
-                string EffectDescription()
-                {
-                    return
-                        "You may play 1 [Imperialdramon: Dragon Mode] from any of your [Imperialdramon: Fighter Mode]'s digivolution cards without paying the cost.";
-                        
-                }
-                
-                bool IsOwnerPermanentCondition(Permanent permanent)
-                {
-                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
-                    {
-                        if (permanent.DigivolutionCards.Count(isImperialDramonFighterMode) >= 1)
-                        {
-                            return true;
-                        }
-                    }
-                    
-                    return false;
-                }
-                
-                bool IsOwnerPermanentToBeDeletedCondition(Permanent permanent)
-                {
-                    if (IsOwnerPermanentCondition(permanent))
-                    {
-                        if (permanent.willBeRemoveField)
-                        {
-                            return true;
-                        }
-                    }
-                    
-                    return false;
-                }
-                
-                bool isImperialDramonFighterMode(CardSource cardSource)
-                {
-                    if (cardSource.IsDigimon)
-                    {
-                        if (cardSource.ContainsCardName("Imperialdramon: Dragon Mode"))
-                        {
-                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false,
-                                    cardEffect: activateClass))
-                            {
-                                return true;
-                            }
-                        }
-                    }
-                    
-                    return false;
-                }
-                
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.CanDeclareOptionDelayEffect(card))
-                    {
-                        if (CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, IsOwnerPermanentCondition))
-                        {
-                            if (!CardEffectCommons.IsByEffect(hashtable,
-                                    cardEffect => CardEffectCommons.IsOwnerEffect(cardEffect, card)))
-                            {
-                                return true;
-                            }
-                        }
-                    }
-                    
-                    return false;
-                }
-                
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    yield return ContinuousController.instance.StartCoroutine(
-                        CardEffectCommons.DeletePeremanentAndProcessAccordingToResult(
-                            targetPermanents: new List<Permanent>() { card.PermanentOfThisCard() },
-                            activateClass: activateClass, successProcess: permanents => SuccessProcess(),
-                            failureProcess: null));
-                }
-                
-                IEnumerator SuccessProcess()
-                {
-                    if (CardEffectCommons.HasMatchConditionPermanent(IsOwnerPermanentToBeDeletedCondition))
-                    {
-                        int maxCount = Math.Min(1,
-                            CardEffectCommons.MatchConditionPermanentCount(IsOwnerPermanentToBeDeletedCondition));
-                        
-                        SelectPermanentEffect selectPermanentEffect =
-                            GManager.instance.GetComponent<SelectPermanentEffect>();
-                        
-                        selectPermanentEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: IsOwnerPermanentToBeDeletedCondition,
-                            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 which has digivolution cards.",
-                            "The opponent is selecting 1 Digimon which has digivolution cards.");
-                        
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-                        
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                        {
-                            Permanent selectedPermanent = permanent;
-                            
-                            if (selectedPermanent != null)
-                            {
-                                if (selectedPermanent.DigivolutionCards.Count(isImperialDramonFighterMode) >= 1)
-                                {
-                                    maxCount = Math.Min(1,
-                                        selectedPermanent.DigivolutionCards.Count(isImperialDramonFighterMode));
-                                    
-                                    List<CardSource> selectedCards = new List<CardSource>();
-                                    
-                                    SelectCardEffect selectCardEffect =
-                                        GManager.instance.GetComponent<SelectCardEffect>();
-                                    
-                                    selectCardEffect.SetUp(
-                                        canTargetCondition: isImperialDramonFighterMode,
-                                        canTargetCondition_ByPreSelecetedList: null,
-                                        canEndSelectCondition: null,
-                                        canNoSelect: () => true,
-                                        selectCardCoroutine: SelectCardCoroutine,
-                                        afterSelectCardCoroutine: null,
-                                        message: "Select 1 digivolution card to play.",
-                                        maxCount: maxCount,
-                                        canEndNotMax: false,
-                                        isShowOpponent: true,
-                                        mode: SelectCardEffect.Mode.Custom,
-                                        root: SelectCardEffect.Root.Custom,
-                                        customRootCardList: selectedPermanent.DigivolutionCards,
-                                        canLookReverseCard: true,
-                                        selectPlayer: card.Owner,
-                                        cardEffect: activateClass);
-                                    
-                                    selectCardEffect.SetUpCustomMessage(
-                                        "Select 1 digivolution card to play.",
-                                        "The opponent is selecting 1 digivolution card to play.");
-                                    selectCardEffect.SetUpCustomMessage_ShowCard("Played Card");
-                                    
-                                    yield return StartCoroutine(selectCardEffect.Activate());
-                                    
-                                    IEnumerator SelectCardCoroutine(CardSource cardSource)
-                                    {
-                                        selectedCards.Add(cardSource);
-                                        
-                                        yield return null;
-                                    }
-                                    
-                                    yield return ContinuousController.instance.StartCoroutine(
-                                        CardEffectCommons.PlayPermanentCards(
-                                            cardSources: selectedCards,
-                                            activateClass: activateClass,
-                                            payCost: false,
-                                            isTapped: false,
-                                            root: SelectCardEffect.Root.DigivolutionCards,
-                                            activateETB: true));
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            
-            #endregion
-
-            #region SecurityEffect
-            if (timing == EffectTiming.SecuritySkill)
-            {
-            ActivateClass activateClass = new ActivateClass();
-            activateClass.SetUpICardEffect($"Play 1 Digimon with [Free] in its traits from hand or trash", CanUseCondition, card);
-            activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDiscription());
-            activateClass.SetIsSecurityEffect(true);
-            cardEffects.Add(activateClass);
-
-            string EffectDiscription()
-            {
-                return "[Security] You may play 1 level 3 Digimon card with [Free] in its traits from your hand or trash without paying its memory cost.";
-            }
-
-            bool CanSelectCardCondition(CardSource cardSource)
-            {
-                if (cardSource != null)
-                {
-                    if (cardSource.IsDigimon)
-                    {
-                        if (cardSource.Owner == card.Owner)
-                        {
-                            if (cardSource.CardTraits.Contains("Free"))
-                            {
-                                if (cardSource.Level == 3)
-                                {
-                                    if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
-                                    {
-                                        if (cardSource.HasLevel)
-                                        {
-                                            return true;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-
-                return false;
-            }
-
-            bool CanUseCondition(Hashtable hashtable)
-            {
-                return CardEffectCommons.CanTriggerSecurityEffect(hashtable, card);
-            }
-
-            IEnumerator ActivateCoroutine(Hashtable _hashtable)
-            {
-                bool canSelectHand = card.Owner.HandCards.Count(CanSelectCardCondition) >= 1;
-                bool canSelectTrash = CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition);
-
-                if (canSelectHand || canSelectTrash)
-                {
-                    if (canSelectHand && canSelectTrash)
-                    {
-                        List<SelectionElement<bool>> selectionElements = new List<SelectionElement<bool>>()
-                        {
-                            new SelectionElement<bool>(message: $"From hand", value : true, spriteIndex: 0),
-                            new SelectionElement<bool>(message: $"From trash", value : false, spriteIndex: 1),
-                        };
-
-                        string selectPlayerMessage = "From which area do you play a card?";
-                        string notSelectPlayerMessage = "The opponent is choosing from which area to play a card.";
-
-                        GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
-                    }
-
-                    else
-                    {
-                        GManager.instance.userSelectionManager.SetBool(canSelectHand);
-                    }
-
-                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
-
-                    bool fromHand = GManager.instance.userSelectionManager.SelectedBoolValue;
-
-                    List<CardSource> selectedCards = new List<CardSource>();
-
-                    IEnumerator SelectCardCoroutine(CardSource cardSource)
-                    {
-                        selectedCards.Add(cardSource);
-
-                        yield return null;
-                    }
-
-                    if (fromHand)
-                    {
-                        int maxCount = 1;
-
-                        SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
-
-                        selectHandEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectCardCondition,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: true,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            selectCardCoroutine: SelectCardCoroutine,
-                            afterSelectCardCoroutine: null,
-                            mode: SelectHandEffect.Mode.Custom,
-                            cardEffect: activateClass);
-
-                        selectHandEffect.SetUpCustomMessage("Select 1 card to play.", "The opponent is selecting 1 card to play.");
-                        selectHandEffect.SetUpCustomMessage_ShowCard("Played Card");
-
-                        yield return StartCoroutine(selectHandEffect.Activate());
-                    }
-
-                    else
-                    {
-                        int maxCount = 1;
-
-                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-
-                        selectCardEffect.SetUp(
-                            canTargetCondition: CanSelectCardCondition,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            canNoSelect: () => true,
-                            selectCardCoroutine: SelectCardCoroutine,
-                            afterSelectCardCoroutine: null,
-                            message: "Select 1 card to play.",
-                            maxCount: maxCount,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            mode: SelectCardEffect.Mode.Custom,
-                            root: SelectCardEffect.Root.Trash,
-                            customRootCardList: null,
-                            canLookReverseCard: true,
-                            selectPlayer: card.Owner,
-                            cardEffect: activateClass);
-
-                        selectCardEffect.SetUpCustomMessage("Select 1 card to play.", "The opponent is selecting 1 card to play.");
-                        selectCardEffect.SetUpCustomMessage_ShowCard("Played Card");
-
-                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-                    }
-
-                    SelectCardEffect.Root root = SelectCardEffect.Root.Hand;
-
-                    if (!fromHand)
-                    {
-                        root = SelectCardEffect.Root.Trash;
-                    }
-
-                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: selectedCards, activateClass: activateClass, payCost: false, isTapped: false, root: root, activateETB: true));
-                }
-            }
-            }
-            #endregion
-            
-
-            return cardEffects;
-        }
-    }
-}

+ 0 - 503
Assets/CardEffect/BT20/Red/ExVeemon_BT20_011.cs

@@ -1,503 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.Linq;
-using Photon;
-using System;
-using Photon.Pun;
-namespace DCGO.CardEffects
-{
-    public class BT20_011 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-
-            #region On Play
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Delete digimon with 3000DP or less, and digivolve into ImperialDramon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[On Play] [When Digivolving] Delete 1 of your opponent's Digimon with 3000 DP or less. Then, if it's your turn, 2 of your Digimon may DNA digivolve into a Digimon card with [Imperialdramon] in its name or the [Free] trait in the hand.";
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
-                    {
-                        if (permanent.DP <= card.Owner.MaxDP_DeleteEffect(3000, activateClass))
-                        {
-                            return true;
-                        }
-                    }                
-                    return false;
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);                    
-                }
-
-                
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                if (CardEffectCommons.IsExistOnBattleArea(card))
-                {
-                    return true;
-                }
-                return false;
-                }
-                
-                bool CanSelectCardCondition(CardSource cardSource)
-                {
-                    if (cardSource != null)
-                    {
-                    if (cardSource.IsDigimon)
-                    {
-                        if (cardSource.Owner == card.Owner)
-                        {
-                            if(cardSource.CardTraits.Contains("Free") || cardSource.ContainsCardName("Imperialdramon"))
-                            {        
-                                                
-                                if (cardSource.CanPlayJogress(true))
-                                {
-                                    if (isExistOnField(card))
-                                    {
-                                        if (cardSource.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
-                                        {
-                                            return true;
-                                        }
-                                    }
-                                }
-                            }
-                        
-                        }
-                    }
-                    }
-
-                    return false;                
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                    {                   
-                        
-
-                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-                        int maxCount = card.Owner.Enemy.GetBattleAreaDigimons().Count;
-
-                        selectPermanentEffect.SetUp(
-                            
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectPermanentCondition,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
-                            canEndNotMax: false,
-                            selectPermanentCoroutine: null,
-                            afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Destroy,
-                            cardEffect: activateClass);
-
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-                    
-                    }
-
-                     IEnumerator ActivateCoroutine(Hashtable _hashtable)
-            {
-                    if (isExistOnField(card) && CardEffectCommons.IsOwnerTurn(card))                
-                    {
-                    if (card.Owner.GetBattleAreaDigimons().Contains(card.PermanentOfThisCard()))
-                    {
-                        if (card.Owner.HandCards.Count >= 1)
-                        {
-                            List<CardSource> selectedCards = new List<CardSource>();
-
-                            int maxCount = 1;
-
-                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
-
-                            selectHandEffect.SetUp(
-                                selectPlayer: card.Owner,
-                                canTargetCondition: CanSelectCardCondition,
-                                canTargetCondition_ByPreSelecetedList: null,
-                                canEndSelectCondition: null,
-                                maxCount: maxCount,
-                                canNoSelect: true,
-                                canEndNotMax: false,
-                                isShowOpponent: true,
-                                selectCardCoroutine: SelectCardCoroutine,
-                                afterSelectCardCoroutine: null,
-                                mode: SelectHandEffect.Mode.Custom,
-                                cardEffect: activateClass);
-
-                            selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
-                            selectHandEffect.SetNotShowCard();
-
-                            yield return StartCoroutine(selectHandEffect.Activate());
-
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
-
-                                yield return null;
-                            }
-
-                            if (selectedCards.Count >= 1)
-                            {
-                                foreach (CardSource selectedCard in selectedCards)
-                                {
-                                    if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
-                                    {
-                                         JogressEvoRootsFrameIDs = new int[0];
-
-                                        yield return GManager.instance.photonWaitController.StartWait("ExVeemonBT20_011");
-
-                                        if (card.Owner.isYou || GManager.instance.IsAI)
-                                        {
-                                            GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
-                                                (card: selectedCard,
-                                                isLocal: true,
-                                                isPayCost: true,
-                                                canNoSelect: true,
-                                                endSelectCoroutine_SelectDigivolutionRoots: EndSelectCoroutine_SelectDigivolutionRoots,
-                                                noSelectCoroutine: null);
-
-                                            GManager.instance.selectJogressEffect.SetUpCustomPermanentConditions(new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() });
-
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
-
-                                            IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
-                                            {
-                                                permanents = permanents.Distinct().ToList();
-
-                                                if (permanents.Count == 2)
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[2];
-
-                                                    for (int i = 0; i < permanents.Count; i++)
-                                                    {
-                                                        if (i < JogressEvoRootsFrameIDs.Length)
-                                                        {
-                                                            JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
-                                                        }
-                                                    }
-                                                }
-
-                                                if (!permanents.Contains(card.PermanentOfThisCard()))
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[0];
-                                                }
-
-                                                yield return null;
-                                            }
-
-                                            photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
-                                        }
-
-                                        else
-                                        {
-                                            GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                        }
-
-                                        yield return new WaitWhile(() => !endSelect);
-                                        endSelect = false;
-
-                                        GManager.instance.commandText.CloseCommandText();
-                                        yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
-
-                                        if (JogressEvoRootsFrameIDs.Length == 2)
-                                        {
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(new List<CardSource>() { selectedCard }, "Played Card", true, true));
-
-                                            PlayCardClass playCard = new PlayCardClass(
-                                                cardSources: new List<CardSource>() { selectedCard },
-                                                hashtable: CardEffectCommons.CardEffectHashtable(activateClass),
-                                                payCost: true,
-                                                targetPermanent: null,
-                                                isTapped: false,
-                                                root: SelectCardEffect.Root.Hand,
-                                                activateETB: true);
-
-                                            playCard.SetJogress(JogressEvoRootsFrameIDs);
-
-                                            yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-                }
-            }
-            #endregion
-
-            #region When Digivolving
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Delete digimon and digivolve into ImperialDramon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[On Play][When Digivolving] Delete 1 of your opponent's level 3 Digimon. Then, if it's your turn, 2 of your Digimon may DNA digivolve into a Digimon card with [Imperialdramon] in its name or the [Free] trait in the hand.";
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
-                    {
-                        if (permanent.DP <= card.Owner.MaxDP_DeleteEffect(3000, activateClass))
-                        {
-                            return true;
-                        }
-                    }                
-                    return false;
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);                    
-                }
-
-                
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                if (CardEffectCommons.IsExistOnBattleArea(card))
-                {
-                    return true;
-                }
-                return false;
-                }
-                
-                bool CanSelectCardCondition(CardSource cardSource)
-                {
-                    if (cardSource != null)
-                    {
-                    if (cardSource.IsDigimon)
-                    {
-                        if (cardSource.Owner == card.Owner)
-                        {
-                            if(cardSource.CardTraits.Contains("Free") || cardSource.ContainsCardName("Imperialdramon"))
-                            {        
-                                                
-                                if (cardSource.CanPlayJogress(true))
-                                {
-                                    if (isExistOnField(card))
-                                    {
-                                        if (cardSource.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
-                                        {
-                                            return true;
-                                        }
-                                    }
-                                }
-                            }
-                        
-                        }
-                    }
-                    }
-
-                    return false;                
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                    {                   
-                        
-
-                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-                        int maxCount = card.Owner.Enemy.GetBattleAreaDigimons().Count;
-
-                        selectPermanentEffect.SetUp(
-                            
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectPermanentCondition,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
-                            canEndNotMax: false,
-                            selectPermanentCoroutine: null,
-                            afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Destroy,
-                            cardEffect: activateClass);
-
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-                    
-                    }
-
-                     IEnumerator ActivateCoroutine(Hashtable _hashtable)
-            {
-                if (isExistOnField(card) && CardEffectCommons.IsOwnerTurn(card))
-                {
-                    if (card.Owner.GetBattleAreaDigimons().Contains(card.PermanentOfThisCard()))
-                    {
-                        if (card.Owner.HandCards.Count >= 1)
-                        {
-                            List<CardSource> selectedCards = new List<CardSource>();
-
-                            int maxCount = 1;
-
-                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
-
-                            selectHandEffect.SetUp(
-                                selectPlayer: card.Owner,
-                                canTargetCondition: CanSelectCardCondition,
-                                canTargetCondition_ByPreSelecetedList: null,
-                                canEndSelectCondition: null,
-                                maxCount: maxCount,
-                                canNoSelect: true,
-                                canEndNotMax: false,
-                                isShowOpponent: true,
-                                selectCardCoroutine: SelectCardCoroutine,
-                                afterSelectCardCoroutine: null,
-                                mode: SelectHandEffect.Mode.Custom,
-                                cardEffect: activateClass);
-
-                            selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
-                            selectHandEffect.SetNotShowCard();
-
-                            yield return StartCoroutine(selectHandEffect.Activate());
-
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
-
-                                yield return null;
-                            }
-
-                            if (selectedCards.Count >= 1)
-                            {
-                                foreach (CardSource selectedCard in selectedCards)
-                                {
-                                    if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
-                                    {
-                                         JogressEvoRootsFrameIDs = new int[0];
-
-                                        yield return GManager.instance.photonWaitController.StartWait("ExVeemonBT20_011");
-
-                                        if (card.Owner.isYou || GManager.instance.IsAI)
-                                        {
-                                            GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
-                                                (card: selectedCard,
-                                                isLocal: true,
-                                                isPayCost: true,
-                                                canNoSelect: true,
-                                                endSelectCoroutine_SelectDigivolutionRoots: EndSelectCoroutine_SelectDigivolutionRoots,
-                                                noSelectCoroutine: null);
-
-                                            GManager.instance.selectJogressEffect.SetUpCustomPermanentConditions(new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() });
-
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
-
-                                            IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
-                                            {
-                                                permanents = permanents.Distinct().ToList();
-
-                                                if (permanents.Count == 2)
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[2];
-
-                                                    for (int i = 0; i < permanents.Count; i++)
-                                                    {
-                                                        if (i < JogressEvoRootsFrameIDs.Length)
-                                                        {
-                                                            JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
-                                                        }
-                                                    }
-                                                }
-
-                                                if (!permanents.Contains(card.PermanentOfThisCard()))
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[0];
-                                                }
-
-                                                yield return null;
-                                            }
-
-                                            photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
-                                        }
-
-                                        else
-                                        {
-                                            GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                        }
-
-                                        yield return new WaitWhile(() => !endSelect);
-                                        endSelect = false;
-
-                                        GManager.instance.commandText.CloseCommandText();
-                                        yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
-
-                                        if (JogressEvoRootsFrameIDs.Length == 2)
-                                        {
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(new List<CardSource>() { selectedCard }, "Played Card", true, true));
-
-                                            PlayCardClass playCard = new PlayCardClass(
-                                                cardSources: new List<CardSource>() { selectedCard },
-                                                hashtable: CardEffectCommons.CardEffectHashtable(activateClass),
-                                                payCost: true,
-                                                targetPermanent: null,
-                                                isTapped: false,
-                                                root: SelectCardEffect.Root.Hand,
-                                                activateETB: true);
-
-                                            playCard.SetJogress(JogressEvoRootsFrameIDs);
-
-                                            yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-                }
-            }
-            #endregion
-            
-
-            #region Inherited Effect
-            if (timing == EffectTiming.None)
-            {
-                bool InheritedEffectCondition()
-                {
-                    return CardEffectCommons.IsOwnerTurn(card);
-                }
-
-                cardEffects.Add(CardEffectFactory.ChangeSelfDPStaticEffect(
-                    changeValue: 2000,
-                    isInheritedEffect: true,
-                    card: card,
-                    condition: InheritedEffectCondition));
-            }
-            #endregion
-            return cardEffects;
-
-        }
-
-
-        bool endSelect = false;
-        int[] JogressEvoRootsFrameIDs = new int[0];
-
-        [PunRPC]
-        public void SetJogressEvoRootsFrameIDs(int[] JogressEvoRootsFrameIDs)
-        {
-        this.JogressEvoRootsFrameIDs = JogressEvoRootsFrameIDs;
-        endSelect = true;
-        }
-    }
-}

+ 0 - 201
Assets/CardEffect/BT20/Red/ImperialdramonFighterMode_BT20_020.cs

@@ -1,201 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.Linq;
-using Photon;
-using System;
-using Photon.Pun;
-
-namespace DCGO.CardEffects
-{
-    public class BT20_020 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-
-            #region Alt Effect
-            if (timing == EffectTiming.None)
-            {
-            bool PermanentCondition(Permanent targetPermanent)
-            {
-                return targetPermanent.TopCard.ContainsCardName("Imperialdramon: Dragon Mode");
-            }
-
-            cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 2, ignoreDigivolutionRequirement: false, card: card, condition: null));
-            }
-            #endregion
-
-            if(timing == EffectTiming.None)
-            {
-                cardEffects.Add(CardEffectFactory.PierceSelfEffect(isInheritedEffect: false, card: card, condition: null));
-                cardEffects.Add(CardEffectFactory.RaidSelfEffect(isInheritedEffect: false, card: card, condition: null));
-            }
-
-            #region When Digievolving
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-
-                
-
-                CanNotPutFieldClass canNotPutFieldClass = new CanNotPutFieldClass();
-                canNotPutFieldClass.SetUpICardEffect("Can't play Digimon or Tamers by effect", CanUseCondition1, card);
-                canNotPutFieldClass.SetUpCanNotPutFieldClass(cardCondition: CardCondition, cardEffectCondition: CardEffectCondition);
-                card.Owner.Enemy.UntilOwnerTurnEndEffects.Add((_timing) => canNotPutFieldClass);
-
-                ContinuousController.instance.PlaySE(GManager.instance.GetComponent<Effects>().DebuffSE);
-
-                bool CanUseCondition1(Hashtable hashtable)
-                {
-                    return true;
-                }
-
-                bool CardCondition(CardSource cardSource)
-                {
-                    if (cardSource.Owner == card.Owner.Enemy)
-                    {
-                        if (cardSource.IsDigimon || cardSource.IsTamer)
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
-                }
-
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Gains raid, piercing, trash security stack", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                bool CardEffectCondition(ICardEffect cardEffect)
-                {
-                    return cardEffect != null;
-                }
-                
-                string EffectDiscription()
-                {
-                    return "<Raid> (When this Digimon attacks, you may switch the target of attack to 1 of your opponent's unsuspended Digimon with the highest DP). <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would). [When Digivolving] Your opponent can't play Digimon or Tamers by effects until the end of their turn. Then, if [Imperialdramon: Dragon Mode] is in this Digimon's digivolution cards, trash your opponent's top security card. [All Turns] [Once Per Turn] When your opponent's security stack is removed from, delete 1 of their Digimon with as much or less DP as this Digimon.";
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (CardEffectCommons.IsOwnerTurn(card))                                                    
-                            {
-                                return true;
-                            }
-                        return false;                        
-                    }                
-                    return false;          
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {
-                    if(card.PermanentOfThisCard().DigivolutionCards.Count((cardSource) => cardSource.CardNames.Contains("Imperialdramon: Imperialdramon: Dragon Mode")) >= 1)
-                    {
-                        yield return ContinuousController.instance.StartCoroutine(new IDestroySecurity(
-                                player: card.Owner.Enemy,
-                                destroySecurityCount: 1,
-                                cardEffect: activateClass,
-                                fromTop: true).DestroySecurity());
-                    }
-                }
-            }
-            #endregion
-
-
-            #region All Turns
-            if(timing == EffectTiming.None)
-            {
-                ActivateClass activateClass1 = new ActivateClass();
-                activateClass1.SetUpICardEffect("Delete 1 Digimon with as much or less DP as this Digimon", CanUseCondition1, card);
-                activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, 1, true, EffectDiscription1());
-                cardEffects.Add(activateClass1);
-
-                string EffectDiscription1()
-                {
-                    return "[All Turns] [Once Per Turn] When your opponent's security stack is removed from, delete 1 of their Digimon with as much or less DP as this Digimon.";
-                }
-                bool CanUseCondition1(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (CardEffectCommons.IsOwnerTurn(card))
-                        {
-                            if (CardEffectCommons.CanTriggerWhenLoseSecurity(hashtable, player => player == card.Owner.Enemy))
-                            {
-                                return true;
-                            }
-                        }
-                    }
-
-                    return false;
-                }
-                bool CanActivateCondition1(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-                    return false;
-                }
-                
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
-                    {
-                        if (CardEffectCommons.IsExistOnBattleArea(card))
-                        {
-                            if (card.PermanentOfThisCard().HasDP)
-                            {
-                                if (permanent.TopCard.HasDP)
-                                {
-                                    if (permanent.DP <= card.PermanentOfThisCard().DP)
-                                    {
-                                        return true;
-                                    }
-                                }
-                            }
-                        }
-                    }
-
-                    return false;
-                }
-
-                IEnumerator ActivateCoroutine1(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                        {
-                            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: null,
-                                afterSelectPermanentCoroutine: null,
-                                mode: SelectPermanentEffect.Mode.Destroy,
-                                cardEffect: activateClass1);
-
-                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-                        }
-                }
-            }
-            #endregion
-            return cardEffects;
-        }
-    }
-}

+ 0 - 473
Assets/CardEffect/BT20/Red/Paildramon_BT_20_016.cs

@@ -1,473 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.Linq;
-using Photon;
-using System;
-using Photon.Pun;
-
-namespace DCGO.CardEffects
-{
-    public class BT20_016 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-            #region DNA Digivolve
-            if (timing == EffectTiming.None)
-            {
-            AddJogressConditionClass addJogressConditionClass = new AddJogressConditionClass();
-            addJogressConditionClass.SetUpICardEffect($"DNA Digivolution", CanUseCondition, card);
-            addJogressConditionClass.SetUpAddJogressConditionClass(getJogressCondition: GetJogress);
-            addJogressConditionClass.SetNotShowUI(true);
-            cardEffects.Add(addJogressConditionClass);
-
-            bool CanUseCondition(Hashtable hashtable)
-            {
-                return true;
-            }
-
-
-
-            JogressCondition GetJogress(CardSource cardSource)
-            {
-                if (cardSource == card)
-                {
-                    bool PermanentCondition1(Permanent permanent)
-                    {
-                        if (permanent != null)
-                        {
-                            if (permanent.TopCard != null)
-                            {
-                                if (permanent.TopCard.Owner == card.Owner)
-                                {
-                                    if (permanent.IsDigimon)
-                                    {
-                                        if (permanent.TopCard.Owner.GetBattleAreaPermanents().Contains(permanent))
-                                        {
-                                            if (permanent.TopCard.CardColors.Contains(CardColor.Purple))
-                                            {
-                                                if (permanent.Levels_ForJogress(card).Contains(4))
-                                                {
-                                                    return true;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-
-                        return false;
-                    }
-
-                    bool PermanentCondition2(Permanent permanent)
-                    {
-                        if (permanent != null)
-                        {
-                            if (permanent.TopCard != null)
-                            {
-                                if (permanent.TopCard.Owner == card.Owner)
-                                {
-                                    if (permanent.IsDigimon)
-                                    {
-                                        if (permanent.TopCard.Owner.GetBattleAreaPermanents().Contains(permanent))
-                                        {
-                                            if (permanent.TopCard.CardColors.Contains(CardColor.Red))
-                                            {
-                                                if (permanent.Levels_ForJogress(card).Contains(4))
-                                                {
-                                                    return true;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-
-                        return false;
-                    }
-
-                    JogressConditionElement[] elements = new JogressConditionElement[]
-                    {
-                        new JogressConditionElement(PermanentCondition1, "a level 4 red Digimon"),
-
-                        new JogressConditionElement(PermanentCondition2, "a level 4 purple Digimon"),
-                    };
-
-                    JogressCondition jogressCondition = new JogressCondition(elements, 0);
-
-                    return jogressCondition;
-                }
-
-                return null;
-            }
-            }
-            
-            
-            #endregion
-
-
-            #region On Digivolving
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Piercing and Digivolve into Imperialdramon Dragon Mode", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[On Play] [When Digivolving] For the turn, 1 of your Digimon gains <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would) and gets +4000 DP. Then, this Digimon may attack. [All Turns] When any of your [Paildramon]/[Dinobeemon] would be deleted, 2 of your Digimon may DNA digivolve into [Imperialdramon: Dragon Mode] in the hand.";
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card);
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleArea(card);
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable,card);
-                }
-
-            IEnumerator ActivateCoroutine(Hashtable _hashtable)
-            {
-                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                {
-                    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 gain Pierce and 4000DP.",
-                        "The opponent is selecting 1 Digimon that will gain Pierce and 4000DP.");
-
-                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                    {
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainPierce(
-                            targetPermanent: permanent,
-                            effectDuration: EffectDuration.UntilEachTurnEnd,
-                            activateClass: activateClass));
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
-                                targetPermanent: permanent,
-                                changeValue: 4000,
-                                effectDuration: EffectDuration.UntilEachTurnEnd, 
-                                activateClass: activateClass));
-
-                    }
-                    cardEffects.Add(CardEffectFactory.BlitzSelfEffect(isInheritedEffect: false, card: card, condition: null, isWhenDigivolving: true));
-
-                }
-            }
-            #endregion
-            
-            #region On Play
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass1 = new ActivateClass();
-                activateClass1.SetUpICardEffect("Piercing and Digivolve into Imperialdramon Dragon Mode", CanUseCondition1, card);
-                activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, true, EffectDiscription1());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription1()
-                {
-                    return "[On Play] [When Digivolving] For the turn, 1 of your Digimon gains <Piercing> (When this Digimon attacks and deletes an opponent's Digimon and survives the battle, it performs any security checks it normally would) and gets +4000 DP. Then, this Digimon may attack. [All Turns] When any of your [Paildramon]/[Dinobeemon] would be deleted, 2 of your Digimon may DNA digivolve into [Imperialdramon: Dragon Mode] in the hand.";
-                }
-
-                bool CanSelectPermanentCondition1(Permanent permanent)
-                {
-                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card);
-                }
-
-                bool CanActivateCondition1(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleArea(card);
-                }
-
-                bool CanUseCondition1(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerOptionMainEffect(hashtable, card);
-                }
-
-            IEnumerator ActivateCoroutine1(Hashtable _hashtable)
-            {
-                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition1))
-                {
-                    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 gain Pierce and 4000DP.",
-                        "The opponent is selecting 1 Digimon that will gain Pierce and 4000DP.");
-
-                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                    {
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainPierce(
-                            targetPermanent: permanent,
-                            effectDuration: EffectDuration.UntilEachTurnEnd,
-                            activateClass: activateClass));
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
-                                targetPermanent: permanent,
-                                changeValue: 4000,
-                                effectDuration: EffectDuration.UntilEachTurnEnd, 
-                                activateClass: activateClass));
-                                
-
-                    }
-                    cardEffects.Add(CardEffectFactory.BlitzSelfEffect(isInheritedEffect: false, card: card, condition: null, isWhenDigivolving: true));
-                }
-            }
-            }            
-            #endregion
-
-             #region All Turns
-            if(timing == EffectTiming.None){
-                ActivateClass activateClass1 = new ActivateClass();
-                activateClass1.SetUpICardEffect("If would be deleted, DNA Digivolve", CanUseCondition1, card);
-                activateClass1.SetUpActivateClass(CanActivateCondition2, ActivateCoroutine1, -1, true, EffectDiscription1());
-                activateClass1.SetIsInheritedEffect(true);
-                activateClass1.SetHashString("Dna Digivolve into Imperialdramon Dragon Mode");
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription1(){
-                    return "[All Turns] When any of your [Paildramon]/[Dinobeemon] would be deleted, 2 of your Digimon may DNA digivolve into [Imperialdramon: Dragon Mode] in the hand.";
-                }
-
-                bool isPaildramonOrDinoBeemon(Permanent permanent){
-                    if (permanent.TopCard.Owner == card.Owner)
-                    {
-                        if(permanent.TopCard.EqualsCardName("Dinobeemon") || permanent.TopCard.EqualsCardName("Paildramon"))
-                        {
-                            return true;
-                        }
-                        return false;
-                    }
-                    return false;
-                }
-
-                
-                bool CanActivateCondition2(Hashtable hashtable)
-                {
-                    return CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, isPaildramonOrDinoBeemon);
-                }
-
-                bool CanSelectDNACardCondition(CardSource cardSource)
-                {
-                    if (cardSource.IsDigimon)
-                    {
-                        if (cardSource.CanPlayJogress(true))
-                        {
-                            if (cardSource.CardNames.Contains("Imperialdramon: Dragon Mode"))
-                            {
-                                return true;
-                            }
-                        }
-                    }
-
-                    return false;
-                }
-                bool CanUseCondition1(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
-                }
-
-                bool CanActivateCondition1(Hashtable hashtable)
-                {
-                    if (!CardEffectCommons.IsOwnerTurn(card))
-                        return false;
-
-                    if (card.Owner.GetBattleAreaDigimons().Count < 2)
-                        return false;
-
-                    if (card.Owner.HandCards.Count(CanSelectDNACardCondition) < 1)
-                        return false;
-
-                    return true;
-                }
-
-                IEnumerator ActivateCoroutine1(Hashtable hashtable)
-                {
-                    
-                    List<CardSource> selectedCards = new List<CardSource>();
-
-                    int maxCount = 1;
-
-                    SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
-
-                    selectHandEffect.SetUp(
-                        selectPlayer: card.Owner,
-                        canTargetCondition: CanSelectDNACardCondition,
-                        canTargetCondition_ByPreSelecetedList: null,
-                        canEndSelectCondition: null,
-                        maxCount: maxCount,
-                        canNoSelect: true,
-                        canEndNotMax: false,
-                        isShowOpponent: true,
-                        selectCardCoroutine: SelectCardCoroutine,
-                        afterSelectCardCoroutine: null,
-                        mode: SelectHandEffect.Mode.Custom,
-                        cardEffect: activateClass);
-
-                    selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
-                    selectHandEffect.SetNotShowCard();
-
-                    yield return StartCoroutine(selectHandEffect.Activate());
-
-                    IEnumerator SelectCardCoroutine(CardSource cardSource)
-                    {
-                        selectedCards.Add(cardSource);
-
-                        yield return null;
-                    }
-
-                    if (selectedCards.Count >= 1)
-                    {
-                        foreach (CardSource selectedCard in selectedCards)
-                        {
-                            if (selectedCard.CanPlayJogress(true))
-                            {
-                                _jogressEvoRootsFrameIDs = new int[0];
-
-                                yield return GManager.instance.photonWaitController.StartWait("Paildramon_BT_016");
-
-                                if (card.Owner.isYou || GManager.instance.IsAI)
-                                {
-                                    GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
-                                                                (card: selectedCard,
-                                                                isLocal: true,
-                                                                isPayCost: true,
-                                                                canNoSelect: true,
-                                                                endSelectCoroutine_SelectDigivolutionRoots: EndSelectCoroutine_SelectDigivolutionRoots,
-                                                                noSelectCoroutine: null);
-
-                                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
-
-                                    IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
-                                    {
-                                        if (permanents.Count == 2)
-                                        {
-                                            _jogressEvoRootsFrameIDs = permanents.Distinct().ToArray().Map(permanent => permanent.PermanentFrame.FrameID);
-                                        }
-
-                                        yield return null;
-                                    }
-
-                                    photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, _jogressEvoRootsFrameIDs);
-                                }
-
-                                else
-                                {
-                                    GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                }
-
-                                yield return new WaitWhile(() => !_endSelect);
-                                _endSelect = false;
-
-                                GManager.instance.commandText.CloseCommandText();
-                                yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
-
-                                if (_jogressEvoRootsFrameIDs.Length == 2)
-                                {
-                                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(new List<CardSource>() { selectedCard }, "Played Card", true, true));
-
-                                    PlayCardClass playCard = new PlayCardClass(
-                                        cardSources: new List<CardSource>() { selectedCard },
-                                        hashtable: CardEffectCommons.CardEffectHashtable(activateClass),
-                                        payCost: true,
-                                        targetPermanent: null,
-                                        isTapped: false,
-                                        root: SelectCardEffect.Root.Hand,
-                                        activateETB: true);
-
-                                    playCard.SetJogress(_jogressEvoRootsFrameIDs);
-
-                                    yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
-                                }
-                            }
-                        }
-                    }
-                }
-
-                
-                
-                    
-                
-
-
-            }
-            #endregion
-
-            
-            #region InheritedEffect
-            if (timing == EffectTiming.None)
-            {
-                bool Condition()
-                {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        if (CardEffectCommons.IsOwnerTurn(card))
-                        {                       
-                            return true;                        
-                        }
-                    }   
-                    return false;
-                }
-                cardEffects.Add(CardEffectFactory.ChangeSelfSAttackStaticEffect(changeValue: 1, isInheritedEffect: true, card: card, condition: Condition));
-            } 
-            #endregion
-            
-            }
-            return cardEffects;
-        }
-        
-    private bool _endSelect = false;
-    private int[] _jogressEvoRootsFrameIDs = new int[0];
-
-    [PunRPC]
-    public void SetJogressEvoRootsFrameIDs(int[] JogressEvoRootsFrameIDs)
-    {
-        this._jogressEvoRootsFrameIDs = JogressEvoRootsFrameIDs;
-        _endSelect = true;
-    }
-    }
-}
-
-

+ 0 - 127
Assets/CardEffect/BT20/Red/VeemonBT_BT20_009.cs

@@ -1,127 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-
-namespace DCGO.CardEffects
-{
-    public class BT20_003 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-            #region On Your Turn
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Digivolve into [Free] digimon", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
-                cardEffects.Add(activateClass);
-
-                string EffectDiscription()
-                {
-                    return "[Your Turn] When any of your purple Digimon are played, this Digimon may digivolve into a Digimon card with the [Free] trait in the hand with the digivolution cost reduced by 1.";
-                }
-
-                bool CardCondition(CardSource cardSource){
-                    bool matchColorRequirement = cardSource.CardColors.Every(cardColor =>
-                    cardSource.Owner.GetFieldPermanents().Some(permanent =>
-                        !permanent.TopCard.IsOption && permanent.TopCard.CardColors.Contains(CardColor.Purple)));
-                    if(cardSource.Owner == card.Owner){
-                        if(cardSource.IsDigimon){
-                            if(matchColorRequirement){
-                                return true;
-                            }
-                        }
-                    }
-                    return false;
-                }
-
-                bool canEvolveIntoFree(CardSource cardSource){
-                    if (cardSource.CardTraits.Contains("Free")){
-                        return true;
-                    }
-                    return false;
-                }
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    if (CardEffectCommons.CanTriggerWhenPermanentWouldPlay(hashtable, CardCondition)){
-                        return true;
-                    }
-                    return false;
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    int maxCount = Math.Min(1, card.Owner.SecurityCards.Count);
-                        
-                        CardSource selectedCard = null;
-                        
-                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-                        
-                        selectCardEffect.SetUp(
-                            canTargetCondition: canEvolveIntoFree,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            canNoSelect: () => true,
-                            selectCardCoroutine: SelectCardCoroutine,
-                            afterSelectCardCoroutine: null,
-                            message: "Select 1 card to digivolve.",
-                            maxCount: maxCount,
-                            canEndNotMax: false,
-                            isShowOpponent: true,
-                            mode: SelectCardEffect.Mode.Custom,
-                            root: SelectCardEffect.Root.Security,
-                            customRootCardList: null,
-                            canLookReverseCard: true,
-                            selectPlayer: card.Owner,
-                            cardEffect: activateClass);
-                        
-                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-                        
-                        IEnumerator SelectCardCoroutine(CardSource cardSource)
-                        {
-                            selectedCard = cardSource;
-                            
-                            yield return null;
-                        }
-
-                        PlayCardClass playCardClass = new PlayCardClass(
-                                        cardSources: new List<CardSource>() { selectedCard },
-                                        hashtable: CardEffectCommons.CardEffectHashtable(activateClass),
-                                        payCost: true,
-                                        targetPermanent: card.PermanentOfThisCard(),
-                                        isTapped: false,
-                                        root: SelectCardEffect.Root.Security,
-                                        activateETB: true);
-
-                                    playCardClass.SetReducedCost(1);
-                }
-            }
-            #endregion
-
-            #region InheritedEffect
-            if (timing == EffectTiming.None)
-            {
-                bool InheritedEffectCondition()
-                {
-                    return CardEffectCommons.IsOwnerTurn(card);
-                }
-
-                cardEffects.Add(CardEffectFactory.ChangeSelfDPStaticEffect(
-                    changeValue: 1000,
-                    isInheritedEffect: true,
-                    card: card,
-                    condition: InheritedEffectCondition));
-            }
-            #endregion
-
-            return cardEffects;
-        }
-    }
-}