mbunch_kascope 1 år sedan
förälder
incheckning
c28cdb8b97

+ 2 - 2
Assets/CardBaseEntity/BT10/Black/Digimon/BT10_069.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:db56af3f77a62078caa08919ca3c080d4957d1fd9a6a8ca5bc48fbc74493ad8f
-size 2723
+oid sha256:b62c048cde6747b278c7535fc45ceb589f2ad5a66b8ade2655d10b706893f951
+size 2724

+ 2 - 2
Assets/CardBaseEntity/BT10/Black/Digimon/BT10_069_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:71f3116308b09b77c5840fb8d0085f8a0134c68025e6e32aaffb24ee1be4b99b
-size 2729
+oid sha256:2ab73008e8d320e9b31006d1f1fa6eaf4084416a21a16d52e8691cad999385d6
+size 2730

+ 2 - 2
Assets/CardBaseEntity/BT12/Blue/Digimon/BT12_030.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:33082d9e9a1d42e60e95608594907bb994782975da66d28db65bd5c5f308258f
-size 2818
+oid sha256:ea592c14c1f77d2460fb62f54774680c1dcbf9b919355c772f71e1045f7ac214
+size 2822

+ 2 - 2
Assets/CardBaseEntity/BT3/Blue/Digimon/BT3_031.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:a075e8352fe676d47db1a3f2c91b5ed60ba34803c68ddb7dfd692a05c4dfe556
-size 2338
+oid sha256:86b7ec2f5b41db6ea1a9a8983f02db50b1194dba4ff193262fd88cafc57b731b
+size 2343

+ 2 - 2
Assets/CardBaseEntity/BT3/Blue/Digimon/BT3_031_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:2effdb2be5988fb79a9205a66e1fe2c58b45d3acc26203abf0f519809b40493e
-size 2344
+oid sha256:9bbf051f9dda9f552907910f7482bc44b3523d1dd90edf3e07b79ead7664bb4c
+size 2349

+ 2 - 2
Assets/CardBaseEntity/BT3/Blue/Digimon/BT3_031_P2.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c242c97ab62a5d9a4c003ec7fad41a70b86e0fc23e5f35ce0e70eaae705a0fc4
-size 2344
+oid sha256:ada57eca233d06084a1dbd6e54788bf9bd3217b43ee340eac67d52afd9280388
+size 2349

+ 2 - 2
Assets/CardBaseEntity/BT3/Green/Digimon/BT3_111.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:28b88cbfcddf2347a3f4c3b1c9c0042e393c3682a06490f007b4a36e4153522e
-size 2762
+oid sha256:3811c0436f2045d226694e54fe15c6202a7682e72e6087348a0db2d4e4dc4f35
+size 2767

+ 2 - 2
Assets/CardBaseEntity/BT3/Green/Digimon/BT3_111_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:daed545396624f5f02236d5045ce1bd9c4ed812423902d302b308be82d749376
-size 2768
+oid sha256:1af0eb699fbe15e3ef50001523f9fd436c18e9cfb75bc9c3bd8930104df71e54
+size 2773

+ 2 - 2
Assets/CardBaseEntity/BT3/Green/Digimon/BT3_111_P2.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c240adbbf18ef6098681916197aa815383ca3e3d83a4e7a6ce7661fa8946cbe2
-size 2775
+oid sha256:3c50e9e6f2b0f687099bd79a6b9d0d46f6bff5b68b5df5d2d546811415cb4bb7
+size 2780

+ 2 - 2
Assets/CardBaseEntity/EX1/Blue/Digimon/EX1_022.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:beb4e634c7191233dc792e8981a3b0f9eaf08a42b7941b455dec31cd1d2303c1
-size 2209
+oid sha256:a8db365ebd15c8736045f0162e29107cb342dd3120089a24df57a5dae9324ea5
+size 2214

+ 2 - 2
Assets/CardBaseEntity/EX1/Blue/Digimon/EX1_022_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:0fe387c8b6d529b901f5b0dde796877a44fae5f51610f31b0abcacae760c5a1b
-size 2215
+oid sha256:2adcdeea11d1e340ef75b7b53e9f831f03b617c02d86862dd460fd0d0b51bbc2
+size 2220

+ 2 - 2
Assets/CardBaseEntity/EX3/Purple/Digimon/EX3_063.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:528464365340dade89de086317bbd343e598dc8a43478ab2ff4fbf5dd49719c9
-size 2837
+oid sha256:ee5447ddf3cadf306f06f838d3ec99ba3e320ac181f31e961c56345acef4258c
+size 2841

+ 2 - 2
Assets/CardBaseEntity/EX3/Purple/Digimon/EX3_063_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:af381abd3190e4e0275a504c1c3b39dec42c350c84d5f9914e318a16b888422b
-size 2836
+oid sha256:b9f317575c4f7ccfb6e6e8701cc750c3cf8c3e3df0d6d92c5f535a7a88dd1e6f
+size 2840

+ 1 - 1
Assets/CardEffect/BT10/Black/BT10_069.cs

@@ -42,7 +42,7 @@ namespace DCGO.CardEffects.BT10
                     {
                         if (cardSource.CardColors.Contains(CardColor.Black) || cardSource.CardColors.Contains(CardColor.Purple))
                         {
-                            if (!cardSource.CardNames.Contains("DarkKnightmon (X Antibody)") && !cardSource.CardNames.Contains("DarkKnightmon(XAntibody)"))
+                            if (!cardSource.EqualsCardName("DarkKnightmon (X Antibody)"))
                             {
                                 return true;
                             }

+ 4 - 11
Assets/CardEffect/BT17/Green/BT17_048.cs

@@ -182,7 +182,7 @@ namespace DCGO.CardEffects.BT17
                         {
                             if (permanent.TopCard.EqualsCardName("Rhythm"))
                             {
-                                if (!permanent.IsSuspended)
+                                if (CardEffectCommons.CanActivateSuspendCostEffect(permanent.TopCard))
                                 {
                                     return true;
                                 }
@@ -195,20 +195,13 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if(CardEffectCommons.CanTriggerOnAttack(hashtable, card))
-                    {
-                        if(CardEffectCommons.HasMatchConditionOwnersPermanent(card, HasUnsuspendedRhythm))
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
+                    return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           CardEffectCommons.HasMatchConditionOwnersPermanent(card, HasUnsuspendedRhythm);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)

+ 168 - 162
Assets/CardEffect/BT20/Purple/BT20_066.cs

@@ -107,121 +107,124 @@ namespace DCGO.CardEffects.BT20
                     
                     }
 
-                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
+                    if (CardEffectCommons.IsOwnerTurn(card))
                     {
-                        if (card.Owner.HandCards.Count >= 1)
+                        if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
                         {
-                            List<CardSource> selectedCards = new List<CardSource>();
+                            if (card.Owner.HandCards.Count >= 1)
+                            {
+                                List<CardSource> selectedCards = new List<CardSource>();
 
-                            int maxCount = 1;
+                                int maxCount = 1;
 
-                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
+                                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.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();
+                                selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
+                                selectHandEffect.SetNotShowCard();
 
-                            yield return StartCoroutine(selectHandEffect.Activate());
+                                yield return StartCoroutine(selectHandEffect.Activate());
 
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
+                                IEnumerator SelectCardCoroutine(CardSource cardSource)
+                                {
+                                    selectedCards.Add(cardSource);
 
-                                yield return null;
-                            }
+                                    yield return null;
+                                }
 
-                            if (selectedCards.Count >= 1)
-                            {
-                                foreach (CardSource selectedCard in selectedCards)
+                                if (selectedCards.Count >= 1)
                                 {
-                                    if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
+                                    foreach (CardSource selectedCard in selectedCards)
                                     {
-                                        JogressEvoRootsFrameIDs = new int[0];
-
-                                        yield return GManager.instance.photonWaitController.StartWait("StingmonBT20_066");
-
-                                        if (card.Owner.isYou || GManager.instance.IsAI)
+                                        if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
                                         {
-                                            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() });
+                                            JogressEvoRootsFrameIDs = new int[0];
 
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
+                                            yield return GManager.instance.photonWaitController.StartWait("StingmonBT20_066");
 
-                                            IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
+                                            if (card.Owner.isYou || GManager.instance.IsAI)
                                             {
-                                                permanents = permanents.Distinct().ToList();
+                                                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() });
 
-                                                if (permanents.Count == 2)
+                                                yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
+
+                                                IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
                                                 {
-                                                    JogressEvoRootsFrameIDs = new int[2];
+                                                    permanents = permanents.Distinct().ToList();
 
-                                                    for (int i = 0; i < permanents.Count; i++)
+                                                    if (permanents.Count == 2)
                                                     {
-                                                        if (i < JogressEvoRootsFrameIDs.Length)
+                                                        JogressEvoRootsFrameIDs = new int[2];
+
+                                                        for (int i = 0; i < permanents.Count; i++)
                                                         {
-                                                            JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            if (i < JogressEvoRootsFrameIDs.Length)
+                                                            {
+                                                                JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            }
                                                         }
                                                     }
-                                                }
 
-                                                if (!permanents.Contains(card.PermanentOfThisCard()))
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[0];
+                                                    if (!permanents.Contains(card.PermanentOfThisCard()))
+                                                    {
+                                                        JogressEvoRootsFrameIDs = new int[0];
+                                                    }
+
+                                                    yield return null;
                                                 }
 
-                                                yield return null;
+                                                photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
                                             }
 
-                                            photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
-                                        }
-
-                                        else
-                                        {
-                                            GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                        }
+                                            else
+                                            {
+                                                GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
+                                            }
 
-                                        yield return new WaitWhile(() => !endSelect);
-                                        endSelect = false;
+                                            yield return new WaitWhile(() => !endSelect);
+                                            endSelect = false;
 
-                                        GManager.instance.commandText.CloseCommandText();
-                                        yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
+                                            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));
+                                            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);
+                                                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);
+                                                playCard.SetJogress(JogressEvoRootsFrameIDs);
 
-                                            yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                                yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                            }
                                         }
                                     }
                                 }
@@ -329,121 +332,124 @@ namespace DCGO.CardEffects.BT20
                     
                     }
 
-                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
+                    if (CardEffectCommons.IsOwnerTurn(card))
                     {
-                        if (card.Owner.HandCards.Count >= 1)
+                        if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
                         {
-                            List<CardSource> selectedCards = new List<CardSource>();
+                            if (card.Owner.HandCards.Count >= 1)
+                            {
+                                List<CardSource> selectedCards = new List<CardSource>();
 
-                            int maxCount = 1;
+                                int maxCount = 1;
 
-                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
+                                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.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();
+                                selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
+                                selectHandEffect.SetNotShowCard();
 
-                            yield return StartCoroutine(selectHandEffect.Activate());
+                                yield return StartCoroutine(selectHandEffect.Activate());
 
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
+                                IEnumerator SelectCardCoroutine(CardSource cardSource)
+                                {
+                                    selectedCards.Add(cardSource);
 
-                                yield return null;
-                            }
+                                    yield return null;
+                                }
 
-                            if (selectedCards.Count >= 1)
-                            {
-                                foreach (CardSource selectedCard in selectedCards)
+                                if (selectedCards.Count >= 1)
                                 {
-                                    if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
+                                    foreach (CardSource selectedCard in selectedCards)
                                     {
-                                        JogressEvoRootsFrameIDs = new int[0];
-
-                                        yield return GManager.instance.photonWaitController.StartWait("StingmonBT20_066");
-
-                                        if (card.Owner.isYou || GManager.instance.IsAI)
+                                        if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
                                         {
-                                            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() });
+                                            JogressEvoRootsFrameIDs = new int[0];
 
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
+                                            yield return GManager.instance.photonWaitController.StartWait("StingmonBT20_066");
 
-                                            IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
+                                            if (card.Owner.isYou || GManager.instance.IsAI)
                                             {
-                                                permanents = permanents.Distinct().ToList();
+                                                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() });
 
-                                                if (permanents.Count == 2)
+                                                yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
+
+                                                IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
                                                 {
-                                                    JogressEvoRootsFrameIDs = new int[2];
+                                                    permanents = permanents.Distinct().ToList();
 
-                                                    for (int i = 0; i < permanents.Count; i++)
+                                                    if (permanents.Count == 2)
                                                     {
-                                                        if (i < JogressEvoRootsFrameIDs.Length)
+                                                        JogressEvoRootsFrameIDs = new int[2];
+
+                                                        for (int i = 0; i < permanents.Count; i++)
                                                         {
-                                                            JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            if (i < JogressEvoRootsFrameIDs.Length)
+                                                            {
+                                                                JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            }
                                                         }
                                                     }
-                                                }
 
-                                                if (!permanents.Contains(card.PermanentOfThisCard()))
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[0];
+                                                    if (!permanents.Contains(card.PermanentOfThisCard()))
+                                                    {
+                                                        JogressEvoRootsFrameIDs = new int[0];
+                                                    }
+
+                                                    yield return null;
                                                 }
 
-                                                yield return null;
+                                                photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
                                             }
 
-                                            photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
-                                        }
-
-                                        else
-                                        {
-                                            GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                        }
+                                            else
+                                            {
+                                                GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
+                                            }
 
-                                        yield return new WaitWhile(() => !endSelect);
-                                        endSelect = false;
+                                            yield return new WaitWhile(() => !endSelect);
+                                            endSelect = false;
 
-                                        GManager.instance.commandText.CloseCommandText();
-                                        yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
+                                            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));
+                                            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);
+                                                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);
+                                                playCard.SetJogress(JogressEvoRootsFrameIDs);
 
-                                            yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                                yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                            }
                                         }
                                     }
                                 }

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

@@ -101,7 +101,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Return a card, DNA Digivolve into Imperialdramon", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Return a card from your trash to the hand", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
@@ -163,7 +163,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Return a card, DNA Digivolve into Imperialdramon", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Return a card from your trash to the hand", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 

+ 172 - 174
Assets/CardEffect/BT20/Red/BT20_011.cs

@@ -18,12 +18,12 @@ namespace DCGO.CardEffects.BT20
             {
                 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());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    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.";
+                    return "[On Play] 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)
@@ -110,131 +110,130 @@ namespace DCGO.CardEffects.BT20
                     
                     }
 
-                     
-                    
-                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
+                    if (CardEffectCommons.IsOwnerTurn(card))
                     {
-                        if (card.Owner.HandCards.Count >= 1)
+                        if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
                         {
-                            List<CardSource> selectedCards = new List<CardSource>();
+                            if (card.Owner.HandCards.Count >= 1)
+                            {
+                                List<CardSource> selectedCards = new List<CardSource>();
 
-                            int maxCount = 1;
+                                int maxCount = 1;
 
-                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
+                                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.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();
+                                selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
+                                selectHandEffect.SetNotShowCard();
 
-                            yield return StartCoroutine(selectHandEffect.Activate());
+                                yield return StartCoroutine(selectHandEffect.Activate());
 
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
+                                IEnumerator SelectCardCoroutine(CardSource cardSource)
+                                {
+                                    selectedCards.Add(cardSource);
 
-                                yield return null;
-                            }
+                                    yield return null;
+                                }
 
-                            if (selectedCards.Count >= 1)
-                            {
-                                foreach (CardSource selectedCard in selectedCards)
+                                if (selectedCards.Count >= 1)
                                 {
-                                    if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
+                                    foreach (CardSource selectedCard in selectedCards)
                                     {
-                                         JogressEvoRootsFrameIDs = new int[0];
-
-                                        yield return GManager.instance.photonWaitController.StartWait("ExVeemonBT20_011");
-
-                                        if (card.Owner.isYou || GManager.instance.IsAI)
+                                        if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
                                         {
-                                            GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
-                                                (card: selectedCard,
-                                                isLocal: true,
-                                                isPayCost: true,
-                                                canNoSelect: true,
-                                                endSelectCoroutine_SelectDigivolutionRoots: EndSelectCoroutine_SelectDigivolutionRoots,
-                                                noSelectCoroutine: null);
+                                            JogressEvoRootsFrameIDs = new int[0];
 
-                                            GManager.instance.selectJogressEffect.SetUpCustomPermanentConditions(new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() });
+                                            yield return GManager.instance.photonWaitController.StartWait("ExVeemonBT20_011");
 
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
-
-                                            IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
+                                            if (card.Owner.isYou || GManager.instance.IsAI)
                                             {
-                                                permanents = permanents.Distinct().ToList();
+                                                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() });
 
-                                                if (permanents.Count == 2)
+                                                yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
+
+                                                IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
                                                 {
-                                                    JogressEvoRootsFrameIDs = new int[2];
+                                                    permanents = permanents.Distinct().ToList();
 
-                                                    for (int i = 0; i < permanents.Count; i++)
+                                                    if (permanents.Count == 2)
                                                     {
-                                                        if (i < JogressEvoRootsFrameIDs.Length)
+                                                        JogressEvoRootsFrameIDs = new int[2];
+
+                                                        for (int i = 0; i < permanents.Count; i++)
                                                         {
-                                                            JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            if (i < JogressEvoRootsFrameIDs.Length)
+                                                            {
+                                                                JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            }
                                                         }
                                                     }
-                                                }
 
-                                                if (!permanents.Contains(card.PermanentOfThisCard()))
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[0];
+                                                    if (!permanents.Contains(card.PermanentOfThisCard()))
+                                                    {
+                                                        JogressEvoRootsFrameIDs = new int[0];
+                                                    }
+
+                                                    yield return null;
                                                 }
 
-                                                yield return null;
+                                                photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
                                             }
 
-                                            photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
-                                        }
-
-                                        else
-                                        {
-                                            GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                        }
+                                            else
+                                            {
+                                                GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
+                                            }
 
-                                        yield return new WaitWhile(() => !endSelect);
-                                        endSelect = false;
+                                            yield return new WaitWhile(() => !endSelect);
+                                            endSelect = false;
 
-                                        GManager.instance.commandText.CloseCommandText();
-                                        yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
+                                            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));
+                                            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);
+                                                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);
+                                                playCard.SetJogress(JogressEvoRootsFrameIDs);
 
-                                            yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                                yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                            }
                                         }
                                     }
                                 }
                             }
                         }
                     }
-                
-            
                 }
             }
             #endregion
@@ -244,7 +243,7 @@ namespace DCGO.CardEffects.BT20
             {
                 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());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -333,131 +332,130 @@ namespace DCGO.CardEffects.BT20
                     
                     }
 
-                     
-                    
-                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
+                    if (CardEffectCommons.IsOwnerTurn(card))
                     {
-                        if (card.Owner.HandCards.Count >= 1)
+                        if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(card.PermanentOfThisCard(), card))
                         {
-                            List<CardSource> selectedCards = new List<CardSource>();
+                            if (card.Owner.HandCards.Count >= 1)
+                            {
+                                List<CardSource> selectedCards = new List<CardSource>();
 
-                            int maxCount = 1;
+                                int maxCount = 1;
 
-                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
+                                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.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();
+                                selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
+                                selectHandEffect.SetNotShowCard();
 
-                            yield return StartCoroutine(selectHandEffect.Activate());
+                                yield return StartCoroutine(selectHandEffect.Activate());
 
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
+                                IEnumerator SelectCardCoroutine(CardSource cardSource)
+                                {
+                                    selectedCards.Add(cardSource);
 
-                                yield return null;
-                            }
+                                    yield return null;
+                                }
 
-                            if (selectedCards.Count >= 1)
-                            {
-                                foreach (CardSource selectedCard in selectedCards)
+                                if (selectedCards.Count >= 1)
                                 {
-                                    if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
+                                    foreach (CardSource selectedCard in selectedCards)
                                     {
-                                         JogressEvoRootsFrameIDs = new int[0];
-
-                                        yield return GManager.instance.photonWaitController.StartWait("ExVeemonBT20_011");
-
-                                        if (card.Owner.isYou || GManager.instance.IsAI)
+                                        if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
                                         {
-                                            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() });
+                                            JogressEvoRootsFrameIDs = new int[0];
 
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
+                                            yield return GManager.instance.photonWaitController.StartWait("ExVeemonBT20_011");
 
-                                            IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
+                                            if (card.Owner.isYou || GManager.instance.IsAI)
                                             {
-                                                permanents = permanents.Distinct().ToList();
+                                                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());
 
-                                                if (permanents.Count == 2)
+                                                IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
                                                 {
-                                                    JogressEvoRootsFrameIDs = new int[2];
+                                                    permanents = permanents.Distinct().ToList();
 
-                                                    for (int i = 0; i < permanents.Count; i++)
+                                                    if (permanents.Count == 2)
                                                     {
-                                                        if (i < JogressEvoRootsFrameIDs.Length)
+                                                        JogressEvoRootsFrameIDs = new int[2];
+
+                                                        for (int i = 0; i < permanents.Count; i++)
                                                         {
-                                                            JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            if (i < JogressEvoRootsFrameIDs.Length)
+                                                            {
+                                                                JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
+                                                            }
                                                         }
                                                     }
-                                                }
 
-                                                if (!permanents.Contains(card.PermanentOfThisCard()))
-                                                {
-                                                    JogressEvoRootsFrameIDs = new int[0];
+                                                    if (!permanents.Contains(card.PermanentOfThisCard()))
+                                                    {
+                                                        JogressEvoRootsFrameIDs = new int[0];
+                                                    }
+
+                                                    yield return null;
                                                 }
 
-                                                yield return null;
+                                                photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
                                             }
 
-                                            photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
-                                        }
-
-                                        else
-                                        {
-                                            GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
-                                        }
+                                            else
+                                            {
+                                                GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
+                                            }
 
-                                        yield return new WaitWhile(() => !endSelect);
-                                        endSelect = false;
+                                            yield return new WaitWhile(() => !endSelect);
+                                            endSelect = false;
 
-                                        GManager.instance.commandText.CloseCommandText();
-                                        yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
+                                            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));
+                                            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);
+                                                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);
+                                                playCard.SetJogress(JogressEvoRootsFrameIDs);
 
-                                            yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                                yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+                                            }
                                         }
                                     }
                                 }
                             }
                         }
-                    }
-                
-            
+                    }                              
                 }
             }
             #endregion

+ 1 - 2
Assets/CardEffect/BT20/Red/BT20_020.cs

@@ -95,7 +95,7 @@ namespace DCGO.CardEffects.BT20
                         return cardEffect != null;
                     }
 
-                    if (card.PermanentOfThisCard().DigivolutionCards.Count((cardSource) => cardSource.CardNames.Contains("Imperialdramon: Dragon Mode")) >= 1)
+                    if (card.PermanentOfThisCard().DigivolutionCards.Count((cardSource) => cardSource.EqualsCardName("Imperialdramon: Dragon Mode")) >= 1)
                     {
                         yield return ContinuousController.instance.StartCoroutine(new IDestroySecurity(
                                 player: card.Owner.Enemy,
@@ -107,7 +107,6 @@ namespace DCGO.CardEffects.BT20
             }
             #endregion
 
-
             #region All Turns
             if(timing == EffectTiming.OnLoseSecurity)
             {

+ 2 - 1
Assets/CardEffect/BT20/Yellow/BT20_034.cs

@@ -38,7 +38,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnAddDigivolutionCards)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
+                activateClass.SetUpICardEffect("1 of your opponet's Digimon can't activate [When Digivolving] effects", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
@@ -165,6 +165,7 @@ namespace DCGO.CardEffects.BT20
                 activateClass.SetUpICardEffect("Trash top security", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetHashString("TrashSecurity_BT20-034");
+                activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()

+ 27 - 15
Assets/Scripts/AttackProcess.cs

@@ -69,8 +69,10 @@ public class AttackProcess : MonoBehaviourPunCallbacks
             goto EndAttack;
         }
 
+        UnityEngine.Debug.Log($"ATTACK PROCESS: {AttackingPermanent}");
+        UnityEngine.Debug.Log($"ATTACK PROCESS: {CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(AttackingPermanent)}");
         #region Attack Process
-        if (AttackingPermanent != null)
+        if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(AttackingPermanent))
         {
             AttackCount++;
 
@@ -78,9 +80,12 @@ public class AttackProcess : MonoBehaviourPunCallbacks
 
             if (DefendingPermanent != null)
             {
-                DefendingPermanent.ShowingPermanentCard.SetOrangeOutline();
-                DefendingPermanent.ShowingPermanentCard.Outline_Select.gameObject.SetActive(true);
-                GManager.instance.turnStateMachine.gameContext.NonTurnPlayer.securityObject.securityBreakGlass.gameObject.SetActive(false);
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
+                {
+                    DefendingPermanent.ShowingPermanentCard.SetOrangeOutline();
+                    DefendingPermanent.ShowingPermanentCard.Outline_Select.gameObject.SetActive(true);
+                    GManager.instance.turnStateMachine.gameContext.NonTurnPlayer.securityObject.securityBreakGlass.gameObject.SetActive(false);
+                }
             }
 
             else
@@ -99,7 +104,8 @@ public class AttackProcess : MonoBehaviourPunCallbacks
 
             if (DefendingPermanent != null)
             {
-                log += $"\n�«\n{DefendingPermanent.TopCard.BaseENGCardNameFromEntity}({DefendingPermanent.TopCard.CardID})\n";
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
+                    log += $"\n�«\n{DefendingPermanent.TopCard.BaseENGCardNameFromEntity}({DefendingPermanent.TopCard.CardID})\n";
             }
 
             else
@@ -142,11 +148,14 @@ public class AttackProcess : MonoBehaviourPunCallbacks
             // target arrow
             if (DefendingPermanent == null)
             {
-                yield return GManager.instance.OnTargetArrow(
-                    AttackingPermanent.PermanentFrame.GetLocalCanvasPosition() + AttackingPermanent.TopCard.Owner.playerUIObjectParent.localPosition,
-                    GManager.instance.turnStateMachine.gameContext.NonTurnPlayer.SecurityAttackLocalCanvasPosition + GManager.instance.turnStateMachine.gameContext.NonTurnPlayer.playerUIObjectParent.localPosition,
-                    null,
-                    null);
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
+                {
+                    yield return GManager.instance.OnTargetArrow(
+                        AttackingPermanent.PermanentFrame.GetLocalCanvasPosition() + AttackingPermanent.TopCard.Owner.playerUIObjectParent.localPosition,
+                        GManager.instance.turnStateMachine.gameContext.NonTurnPlayer.SecurityAttackLocalCanvasPosition + GManager.instance.turnStateMachine.gameContext.NonTurnPlayer.playerUIObjectParent.localPosition,
+                        null,
+                        null);
+                }
             }
 
             else
@@ -195,7 +204,7 @@ public class AttackProcess : MonoBehaviourPunCallbacks
 
             if (DefendingPermanent != null)
             {
-                if (DefendingPermanent.TopCard != null)
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
                 {
                     DefendingPermanent.ShowingPermanentCard.SetOrangeOutline();
                     DefendingPermanent.ShowingPermanentCard.Outline_Select.gameObject.SetActive(true);
@@ -205,6 +214,9 @@ public class AttackProcess : MonoBehaviourPunCallbacks
             // check timing
             yield return ContinuousController.instance.StartCoroutine(GManager.instance.autoProcessing.AutoProcessCheck());
 
+            //End Turn Check
+            yield return ContinuousController.instance.StartCoroutine(GManager.instance.autoProcessing.EndTurnCheck());
+
             GManager.instance.turnStateMachine.IsSelecting = true;
 
             // force to end attack
@@ -221,7 +233,7 @@ public class AttackProcess : MonoBehaviourPunCallbacks
 
             if (DefendingPermanent != null)
             {
-                if (DefendingPermanent.TopCard != null)
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
                 {
                     DefendingPermanent.ShowingPermanentCard.SetOrangeOutline();
                     DefendingPermanent.ShowingPermanentCard.Outline_Select.gameObject.SetActive(true);
@@ -279,7 +291,7 @@ public class AttackProcess : MonoBehaviourPunCallbacks
 
             if (DefendingPermanent != null)
             {
-                if (DefendingPermanent.TopCard != null)
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
                 {
                     DefendingPermanent.ShowingPermanentCard.SetOrangeOutline();
                     DefendingPermanent.ShowingPermanentCard.Outline_Select.gameObject.SetActive(true);
@@ -363,7 +375,7 @@ public class AttackProcess : MonoBehaviourPunCallbacks
 
             if (DefendingPermanent != null)
             {
-                if (DefendingPermanent.TopCard != null)
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent))
                 {
                     DefendingPermanent.ShowingPermanentCard.SetOrangeOutline();
                     DefendingPermanent.ShowingPermanentCard.Outline_Select.gameObject.SetActive(true);
@@ -390,7 +402,7 @@ public class AttackProcess : MonoBehaviourPunCallbacks
             #region there is Defending Permanent
             else
             {
-                if (DefendingPermanent.TopCard == null || AttackingPermanent == null || AttackingPermanent.TopCard == null)
+                if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(DefendingPermanent) || CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(AttackingPermanent))
                 {
                     goto EndAttack;
                 }

+ 1 - 1
ProjectSettings/ProjectSettings.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:cfc8f74c0686c3528d787602ce9425a37b43960e8fbde14ad95b8b6b00a2f442
+oid sha256:0584cf639bf883cf8bdee990872ea62d35187e745eb9baeb7bf03381d55c9e08
 size 20168