Quellcode durchsuchen

1.7.5 initial push

mbunch_kascope vor 1 Jahr
Ursprung
Commit
6867f86e0a
70 geänderte Dateien mit 819 neuen und 558 gelöschten Zeilen
  1. 2 2
      Assets/CardBaseEntity/BT20/Black/Digimon/BT20_054.asset
  2. 2 2
      Assets/CardBaseEntity/BT20/Black/Digimon/BT20_056.asset
  3. 2 2
      Assets/CardBaseEntity/BT20/Blue/Digimon/BT20_022.asset
  4. 1 1
      Assets/CardBaseEntity/BT20/Green/Digimon/BT20_038.asset
  5. 2 2
      Assets/CardBaseEntity/BT20/Purple/Digimon/BT20_064.asset
  6. 1 1
      Assets/CardBaseEntity/BT20/Purple/Digimon/BT20_070.asset
  7. 2 2
      Assets/CardBaseEntity/BT20/Purple/Tamer/BT20_088.asset
  8. 2 2
      Assets/CardBaseEntity/BT20/Red/Digimon/BT20_010.asset
  9. 2 2
      Assets/CardBaseEntity/BT20/Red/Digimon/BT20_015.asset
  10. 1 1
      Assets/CardBaseEntity/BT20/Yellow/Digimon/BT20_030.asset
  11. 2 2
      Assets/CardBaseEntity/BT20/Yellow/Digimon/BT20_032.asset
  12. 6 2
      Assets/CardEffect/BT19/Purple/BT19_097.cs
  13. 1 1
      Assets/CardEffect/BT20/Black/BT20_046.cs
  14. 2 2
      Assets/CardEffect/BT20/Black/BT20_050.cs
  15. 8 10
      Assets/CardEffect/BT20/Black/BT20_052.cs
  16. 1 1
      Assets/CardEffect/BT20/Black/BT20_055.cs
  17. 1 1
      Assets/CardEffect/BT20/Black/BT20_056.cs
  18. 2 2
      Assets/CardEffect/BT20/Black/BT20_058.cs
  19. 1 1
      Assets/CardEffect/BT20/Black/BT20_059.cs
  20. 27 1
      Assets/CardEffect/BT20/Black/BT20_087.cs
  21. 1 1
      Assets/CardEffect/BT20/Black/BT20_095.cs
  22. 1 1
      Assets/CardEffect/BT20/Blue/BT20_024.cs
  23. 1 1
      Assets/CardEffect/BT20/Blue/BT20_025.cs
  24. 1 1
      Assets/CardEffect/BT20/Blue/BT20_102.cs
  25. 1 1
      Assets/CardEffect/BT20/Green/BT20_004.cs
  26. 1 1
      Assets/CardEffect/BT20/Green/BT20_039.cs
  27. 1 1
      Assets/CardEffect/BT20/Green/BT20_041.cs
  28. 1 1
      Assets/CardEffect/BT20/Green/BT20_042.cs
  29. 1 1
      Assets/CardEffect/BT20/Green/BT20_043.cs
  30. 1 0
      Assets/CardEffect/BT20/Green/BT20_085.cs
  31. 1 1
      Assets/CardEffect/BT20/Green/BT20_101.cs
  32. 1 1
      Assets/CardEffect/BT20/Purple/BT20_064.cs
  33. 69 43
      Assets/CardEffect/BT20/Purple/BT20_065.cs
  34. 6 5
      Assets/CardEffect/BT20/Purple/BT20_066.cs
  35. 1 1
      Assets/CardEffect/BT20/Purple/BT20_070.cs
  36. 1 1
      Assets/CardEffect/BT20/Purple/BT20_074.cs
  37. 5 2
      Assets/CardEffect/BT20/Purple/BT20_076.cs
  38. 2 2
      Assets/CardEffect/BT20/Purple/BT20_077.cs
  39. 9 2
      Assets/CardEffect/BT20/Purple/BT20_078.cs
  40. 2 2
      Assets/CardEffect/BT20/Purple/BT20_080.cs
  41. 45 4
      Assets/CardEffect/BT20/Purple/BT20_088.cs
  42. 7 4
      Assets/CardEffect/BT20/Purple/BT20_089.cs
  43. 3 3
      Assets/CardEffect/BT20/Purple/BT20_096.cs
  44. 2 0
      Assets/CardEffect/BT20/Purple/BT20_097.cs
  45. 6 15
      Assets/CardEffect/BT20/Red/BT20_009.cs
  46. 4 7
      Assets/CardEffect/BT20/Red/BT20_011.cs
  47. 167 174
      Assets/CardEffect/BT20/Red/BT20_016.cs
  48. 59 76
      Assets/CardEffect/BT20/Red/BT20_020.cs
  49. 3 3
      Assets/CardEffect/BT20/Red/BT20_093.cs
  50. 114 112
      Assets/CardEffect/BT20/Red/BT20_094.cs
  51. 29 2
      Assets/CardEffect/BT20/White/BT20_083.cs
  52. 1 1
      Assets/CardEffect/BT20/White/BT20_084.cs
  53. 19 6
      Assets/CardEffect/BT20/White/BT20_091.cs
  54. 3 3
      Assets/CardEffect/BT20/White/BT20_092.cs
  55. 2 0
      Assets/CardEffect/BT20/Yellow/BT20_003.cs
  56. 1 0
      Assets/CardEffect/BT20/Yellow/BT20_029.cs
  57. 1 0
      Assets/CardEffect/BT20/Yellow/BT20_032.cs
  58. 5 28
      Assets/CardEffect/BT20/Yellow/BT20_033.cs
  59. 1 1
      Assets/CardEffect/BT20/Yellow/BT20_034.cs
  60. 1 1
      Assets/CardEffect/BT20/Yellow/BT20_035.cs
  61. 1 1
      Assets/CardEffect/BT20/Yellow/BT20_036.cs
  62. 3 3
      Assets/CardEffect/BT20/Yellow/BT20_037.cs
  63. 1 1
      Assets/CardEffect/P/Black/P_174.cs
  64. 1 1
      Assets/CardEffect/P/Blue/P_171.cs
  65. 1 1
      Assets/CardEffect/P/Green/P_173.cs
  66. 1 1
      Assets/CardEffect/P/Red/P_170.cs
  67. 1 1
      Assets/CardEffect/P/Yellow/P_172.cs
  68. 55 0
      lfs/objects/8b/55/8b5539a399fcdafca6a8ff1bdab0c5ff8fe10ceff9ea9d69a7ee7b55ede06314
  69. 53 0
      lfs/objects/b7/86/b786237860db0a72aaf3f72207c4b7bf186a09481c1d4e18ee9aeab0ee5339ae
  70. 54 0
      lfs/objects/ba/6a/ba6acff8ca120069bf45e4a74215b2038e499f71a40e7b66660417a3488f5225

+ 2 - 2
Assets/CardBaseEntity/BT20/Black/Digimon/BT20_054.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:ba4debc402569398809ff1bb385c7ae72be6a1be0de9bc6d48057c4ae84e9961
-size 1337
+oid sha256:86f644a24cb7014016f863debf90a5d17c9de43d9f7debcdc09a46aa1905713d
+size 1382

+ 2 - 2
Assets/CardBaseEntity/BT20/Black/Digimon/BT20_056.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:5adba0e37f2f7b2065803074de87552917db48d031dc54058b5f703ab0c4ee94
-size 1763
+oid sha256:084f3c41902958cd78052141df67f05e50fb3edf3e6581f068a9b59918171436
+size 1764

+ 2 - 2
Assets/CardBaseEntity/BT20/Blue/Digimon/BT20_022.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:3714e1b1beb01a0f92cf43d4dc2056cfc868ae6600dcb2d4a756a59f83a3cdd8
-size 1278
+oid sha256:df946c252640e3a1895af2946730b344979f936312392a447b4b30e9f15dc386
+size 1323

+ 1 - 1
Assets/CardBaseEntity/BT20/Green/Digimon/BT20_038.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:b45ef58c9ed1027e960679151feb7afac4ba97f5e0c10b636a5cd5b9cc285bb0
+oid sha256:b786237860db0a72aaf3f72207c4b7bf186a09481c1d4e18ee9aeab0ee5339ae
 size 1317
 size 1317

+ 2 - 2
Assets/CardBaseEntity/BT20/Purple/Digimon/BT20_064.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:9aa31c33d6f0fd8d1018e1ab2467172c002c40a281bae6103fa00dcbc05982a0
-size 1414
+oid sha256:6d025cc59dea43aa9b3cee348b299278cfe32c00ec33207d803416a5df57f633
+size 1422

+ 1 - 1
Assets/CardBaseEntity/BT20/Purple/Digimon/BT20_070.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:7360fd3c6f6eb10fd985f16bf3353c188f159fc9405bd898b7b47cbd77a62fa0
+oid sha256:8b5539a399fcdafca6a8ff1bdab0c5ff8fe10ceff9ea9d69a7ee7b55ede06314
 size 1389
 size 1389

+ 2 - 2
Assets/CardBaseEntity/BT20/Purple/Tamer/BT20_088.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:a7604464f0cab00867ef71d254a337959491c0421405b7669d59b84ec8ae13c4
-size 1348
+oid sha256:fc0820b125337a4e394980db2cc654e9319226a0466b58a2ba3524e6f0d995a7
+size 1354

+ 2 - 2
Assets/CardBaseEntity/BT20/Red/Digimon/BT20_010.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:5805f8570d14c2557d3f1a99ebe2b03099e5fdcc346f77d7ecacdc8ced4de7b8
-size 1381
+oid sha256:9589888a2aa27e3f5600aff14371fa88790d99d1afb2e61dd0a4aa7628e072b5
+size 1374

+ 2 - 2
Assets/CardBaseEntity/BT20/Red/Digimon/BT20_015.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:fff32ded002c260980964fd4a4f214cc9673446ed9df6a654c1caf20afbc2bb3
-size 1575
+oid sha256:9f668cd47175109a86ee690e9da7f50556c10f3f1b620eb6b40883a36db81bb3
+size 1576

+ 1 - 1
Assets/CardBaseEntity/BT20/Yellow/Digimon/BT20_030.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:879204d0cd5c0e955a5cc4ee036c2e78d682df6d859f885fb9f886f903452d49
+oid sha256:ba6acff8ca120069bf45e4a74215b2038e499f71a40e7b66660417a3488f5225
 size 1423
 size 1423

+ 2 - 2
Assets/CardBaseEntity/BT20/Yellow/Digimon/BT20_032.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
 version https://git-lfs.github.com/spec/v1
-oid sha256:d869064d191dd29893ee93d00126f64f041d67b60b720b48debb383da49a36ff
-size 1506
+oid sha256:2214beeb217173db779a6ea97dedee17973d786144aecbb4091982efeb4d53d3
+size 1507

+ 6 - 2
Assets/CardEffect/BT19/Purple/BT19_097.cs

@@ -84,7 +84,7 @@ namespace DCGO.CardEffects.BT19
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Play an [Impmon] from trash.", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Play an [Impmon] from trash.", CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
@@ -115,10 +115,14 @@ namespace DCGO.CardEffects.BT19
                 {
                 {
                     return CardEffectCommons.IsOwnerTurn(card) &&
                     return CardEffectCommons.IsOwnerTurn(card) &&
                            CardEffectCommons.IsExistOnBattleArea(card) &&
                            CardEffectCommons.IsExistOnBattleArea(card) &&
-                           card.Owner.GetBattleAreaDigimons().Count == 0 &&
                            CardEffectCommons.CanDeclareOptionDelayEffect(card);
                            CardEffectCommons.CanDeclareOptionDelayEffect(card);
                 }
                 }
 
 
+                bool CanActivateCondition(Hashtable hashtable)
+                {
+                    return card.Owner.GetBattleAreaDigimons().Count == 0;
+                }
+
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                 {
                     bool deleted = false;
                     bool deleted = false;

+ 1 - 1
Assets/CardEffect/BT20/Black/BT20_046.cs

@@ -16,7 +16,7 @@ namespace DCGO.CardEffects.BT20
             {
             {
                 static bool PermanentCondition(Permanent targetPermanent)
                 static bool PermanentCondition(Permanent targetPermanent)
                 {
                 {
-                    return targetPermanent.TopCard.ContainsCardName("Kaprurimon");
+                    return targetPermanent.TopCard.EqualsCardName("Kapurimon");
                 }
                 }
 
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 0, ignoreDigivolutionRequirement: false, card: card, condition: null));
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 0, ignoreDigivolutionRequirement: false, card: card, condition: null));

+ 2 - 2
Assets/CardEffect/BT20/Black/BT20_050.cs

@@ -29,8 +29,8 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpICardEffect("Flip security card face up", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()

+ 8 - 10
Assets/CardEffect/BT20/Black/BT20_052.cs

@@ -61,8 +61,8 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpICardEffect("Flip security card face up", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
@@ -105,7 +105,7 @@ namespace DCGO.CardEffects.BT20
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Place top card face up as bottom security", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Place top card face up as bottom security", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
@@ -115,13 +115,10 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    if (CardEffectCommons.CanTriggerOnAttack(hashtable, card))
+                    if(CardEffectCommons.IsOwnerTurn(card))
                     {
                     {
-                        if (CardEffectCommons.IsOwnerTurn(card))
-                        {
-                            if (!CardEffectCommons.GetCardFromHashtable(hashtable).IsFlipped)
-                                return true;
-                        }
+                        if (!CardEffectCommons.GetCardFromHashtable(hashtable).IsFlipped)
+                            return true;
                     }
                     }
 
 
                     return false;
                     return false;
@@ -130,7 +127,8 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanActivateCondition(Hashtable hashtable)
                 bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           card.PermanentOfThisCard().DigivolutionCards.Count > 0;
                 }
                 }
 
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 IEnumerator ActivateCoroutine(Hashtable hashtable)

+ 1 - 1
Assets/CardEffect/BT20/Black/BT20_055.cs

@@ -2,7 +2,7 @@ using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_055 : CEntity_Effect
     public class BT20_055 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Black/BT20_056.cs

@@ -356,7 +356,7 @@ namespace DCGO.CardEffects.BT20
                 {
                 {
                     return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
                     return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
                            CardEffectCommons.CanTriggerWhenRemoveField(hashtable, card) &&
                            CardEffectCommons.CanTriggerWhenRemoveField(hashtable, card) &&
-                           CardEffectCommons.IsByEffect(hashtable, cardEffect => CardEffectCommons.IsOpponentEffect(cardEffect, card));
+                           !CardEffectCommons.IsByEffect(hashtable, cardEffect => CardEffectCommons.IsOwnerEffect(cardEffect, card));
                 }
                 }
 
 
                 bool CanActivateCondition(Hashtable hashtable)
                 bool CanActivateCondition(Hashtable hashtable)

+ 2 - 2
Assets/CardEffect/BT20/Black/BT20_058.cs

@@ -123,8 +123,8 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
             if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpICardEffect("Play 11 cost or lower Digimon from sources", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()

+ 1 - 1
Assets/CardEffect/BT20/Black/BT20_059.cs

@@ -2,7 +2,7 @@ using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_059 : CEntity_Effect
     public class BT20_059 : CEntity_Effect
     {
     {

+ 27 - 1
Assets/CardEffect/BT20/Black/BT20_087.cs

@@ -10,6 +10,32 @@ namespace DCGO.CardEffects.BT20
         {
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
 
+            #region Treated As
+            if (timing == EffectTiming.None)
+            {
+                ChangeCardNamesClass changeCardNamesClass = new ChangeCardNamesClass();
+                changeCardNamesClass.SetUpICardEffect("[Rule] Name: Also treated as [Kota Domoto]/[Yuji Musya].", CanUseCondition, card);
+                changeCardNamesClass.SetUpChangeCardNamesClass(changeCardNames: changeCardNames);
+                cardEffects.Add(changeCardNamesClass);
+
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    return true;
+                }
+
+                List<string> changeCardNames(CardSource cardSource, List<string> CardNames)
+                {
+                    if (cardSource == card)
+                    {
+                        CardNames.Add("Kota Domoto");
+                        CardNames.Add("Yuji Musya");
+                    }
+
+                    return CardNames;
+                }
+            }
+            #endregion
+
             #region Start of Your Turn
             #region Start of Your Turn
 
 
             if (timing == EffectTiming.OnStartTurn)
             if (timing == EffectTiming.OnStartTurn)
@@ -24,7 +50,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnAllyAttack)
             if (timing == EffectTiming.OnAllyAttack)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Digivolve 1 of your attacking [Chronicle] trait Digimon", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Digivolve 1 of your Digimon", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDescription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDescription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 

+ 1 - 1
Assets/CardEffect/BT20/Black/BT20_095.cs

@@ -66,7 +66,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnDestroyedAnyone)
             if (timing == EffectTiming.OnDestroyedAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 Digimon", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Move 1 Digimon", CanUseCondition, card);
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 

+ 1 - 1
Assets/CardEffect/BT20/Blue/BT20_024.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System;
 using System;
 
 
-namespace DCGO.CardEffects.B20
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_024 : CEntity_Effect
     public class BT20_024 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Blue/BT20_025.cs

@@ -182,7 +182,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return true;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
                 }
 
 
                 List<string> ChangeCardNames(CardSource cardSource, List<string> cardNames)
                 List<string> ChangeCardNames(CardSource cardSource, List<string> cardNames)

+ 1 - 1
Assets/CardEffect/BT20/Blue/BT20_102.cs

@@ -147,7 +147,7 @@ namespace DCGO.CardEffects.BT20
                             List<Permanent> destroyTargetPermanents = GManager.instance.turnStateMachine.gameContext.Players
                             List<Permanent> destroyTargetPermanents = GManager.instance.turnStateMachine.gameContext.Players
                                                                     .Map(player => player.GetBattleAreaDigimons())
                                                                     .Map(player => player.GetBattleAreaDigimons())
                                                                     .Flat()
                                                                     .Flat()
-                                                                    .Filter(permanent => savedDigimon.Contains(permanent));
+                                                                    .Filter(permanent => !savedDigimon.Contains(permanent));
 
 
                             yield return ContinuousController.instance.StartCoroutine(new DestroyPermanentsClass(destroyTargetPermanents, CardEffectCommons.CardEffectHashtable(activateClass)).Destroy());
                             yield return ContinuousController.instance.StartCoroutine(new DestroyPermanentsClass(destroyTargetPermanents, CardEffectCommons.CardEffectHashtable(activateClass)).Destroy());
                         }
                         }

+ 1 - 1
Assets/CardEffect/BT20/Green/BT20_004.cs

@@ -26,7 +26,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool IsYourAccelDigimon(Permanent permanent)
                 bool IsYourAccelDigimon(Permanent permanent)
                 {
                 {
-                    return CardEffectCommons.IsOwnerPermanent(permanent, card) &&
+                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card) &&
                            permanent.TopCard.EqualsTraits("ACCEL");
                            permanent.TopCard.EqualsTraits("ACCEL");
                 }
                 }
 
 

+ 1 - 1
Assets/CardEffect/BT20/Green/BT20_039.cs

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_039 : CEntity_Effect
     public class BT20_039 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Green/BT20_041.cs

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_041 : CEntity_Effect
     public class BT20_041 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Green/BT20_042.cs

@@ -254,7 +254,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return true;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
                 }
 
 
                 List<string> ChangeCardNames(CardSource cardSource, List<string> cardNames)
                 List<string> ChangeCardNames(CardSource cardSource, List<string> cardNames)

+ 1 - 1
Assets/CardEffect/BT20/Green/BT20_043.cs

@@ -5,7 +5,7 @@ using System.Linq;
 using UnityEngine;
 using UnityEngine;
 using Photon.Pun;
 using Photon.Pun;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_043 : CEntity_Effect
     public class BT20_043 : CEntity_Effect
     {
     {

+ 1 - 0
Assets/CardEffect/BT20/Green/BT20_085.cs

@@ -8,6 +8,7 @@ namespace DCGO.CardEffects.BT20
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             List<ICardEffect> cardEffects = new List<ICardEffect>();
+
             #region Start of Main
             #region Start of Main
             if (timing == EffectTiming.OnStartMainPhase)
             if (timing == EffectTiming.OnStartMainPhase)
             {
             {

+ 1 - 1
Assets/CardEffect/BT20/Green/BT20_101.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System;
 using System;
 using UnityEngine;
 using UnityEngine;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_101 : CEntity_Effect
     public class BT20_101 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Purple/BT20_064.cs

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_064 : CEntity_Effect
     public class BT20_064 : CEntity_Effect
     {
     {

+ 69 - 43
Assets/CardEffect/BT20/Purple/BT20_065.cs

@@ -25,10 +25,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                        return CardEffectCommons.CanTriggerOnPlay(hashtable, card);
-
-                    return false;
+                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);
                 }
                 }
 
 
                 bool CanActivateCondition(Hashtable hashtable)
                 bool CanActivateCondition(Hashtable hashtable)
@@ -76,6 +73,8 @@ namespace DCGO.CardEffects.BT20
                         }
                         }
                         if (discarded)
                         if (discarded)
                         {
                         {
+                            Permanent selectedPermanent = null;
+
                             if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                             if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                             {
                             {
                                 int maxCount = Math.Min(1,
                                 int maxCount = Math.Min(1,
@@ -105,76 +104,103 @@ namespace DCGO.CardEffects.BT20
 
 
                                 IEnumerator SelectPermanentCoroutine(Permanent permanent)
                                 IEnumerator SelectPermanentCoroutine(Permanent permanent)
                                 {
                                 {
-                                    if (permanent != null)
+                                    selectedPermanent = permanent;
+                                    yield return null;
+                                }
+
+                                if(selectedPermanent != null)
+                                {
+                                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateDebuffEffect(selectedPermanent));
+
+                                    bool PermanentCondition(Permanent permanent)
                                     {
                                     {
-                                        yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateDebuffEffect(permanent));
+                                        return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
+                                    }
 
 
-                                        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);
+                                    AddSkillClass addSkillClass = new AddSkillClass();
+                                    addSkillClass.SetUpICardEffect("Memory -1", CanUseCondition1, card);
+                                    addSkillClass.SetUpAddSkillClass(cardSourceCondition: CardSourceCondition, getEffects: GetEffects);
+                                    selectedPermanent.UntilOpponentTurnEndEffects.Add((_timing) => addSkillClass);
 
 
-                                        if (!permanent.TopCard.CanNotBeAffected(activateClass))
-                                        {
-                                            yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateDebuffEffect(permanent));
-                                        }
+                                    bool CanUseCondition1(Hashtable hashtable)
+                                    {
+                                        return true;
+                                    }
 
 
-                                        string GivenEffectDescription()
+                                    bool CardSourceCondition(CardSource cardSource)
+                                    {
+                                        if (PermanentCondition(cardSource.PermanentOfThisCard()))
                                         {
                                         {
-                                            return "[On Deletion] Lose 1 Memory.";
+                                            if (cardSource == cardSource.PermanentOfThisCard().TopCard)
+                                            {
+                                                return true;
+                                            }
                                         }
                                         }
 
 
-                                        bool GivenEffectCanUseCondition(Hashtable hashtable)
-                                        {
-                                            return CardEffectCommons.CanTriggerOnDeletion(hashtable, permanent.TopCard);
-                                        }
+                                        return false;
+                                    }
 
 
-                                        bool GivenEffectCanActivateCondition(Hashtable hashtable1)
+                                    List<ICardEffect> GetEffects(CardSource cardSource, List<ICardEffect> cardEffects, EffectTiming _timing)
+                                    {
+                                        if (_timing == EffectTiming.OnDestroyedAnyone)
                                         {
                                         {
-                                            if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
+                                            ActivateClass activateClass1 = new ActivateClass();
+                                            activateClass1.SetUpICardEffect("Memory -1", CanUseCondition2, cardSource);
+                                            activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, false, EffectDiscription1());
+                                            cardEffects.Add(activateClass1);
+
+                                            if (cardSource.PermanentOfThisCard() != null)
                                             {
                                             {
-                                                if (!permanent.TopCard.CanNotBeAffected(activateClass))
+                                                activateClass1.SetEffectSourcePermanent(cardSource.PermanentOfThisCard());
+                                            }
+
+                                            string EffectDiscription1()
+                                            {
+                                                return "[On Deletion] Lose 1 memory.";
+                                            }
+
+                                            bool CanUseCondition2(Hashtable hashtable)
+                                            {
+                                                if (CardSourceCondition(cardSource))
                                                 {
                                                 {
-                                                    return true;
+                                                    if (CardEffectCommons.CanTriggerOnDeletion(hashtable, cardSource))
+                                                    {
+                                                        return true;
+                                                    }
                                                 }
                                                 }
+
+                                                return false;
                                             }
                                             }
 
 
-                                            return false;
-                                        }
-                                        
-                                        IEnumerator GivenEffectActivateCoroutine(Hashtable _hashtable)
-                                        {
-                                            yield return ContinuousController.instance.StartCoroutine(permanent.TopCard.Owner.AddMemory(-1, activateClass));
+                                            bool CanActivateCondition1(Hashtable hashtable)
+                                            {
+                                                if (CardEffectCommons.CanActivateOnDeletion(cardSource))
+                                                {
+                                                    return true;
+                                                }
 
 
-                                            
-                                        }
+                                                return false;
+                                            }
 
 
-                                        ICardEffect GetCardEffect(EffectTiming _timing)
-                                        {
-                                            if (_timing == EffectTiming.OnDestroyedAnyone)
+                                            IEnumerator ActivateCoroutine1(Hashtable _hashtable)
                                             {
                                             {
-                                                return activateClass1;
+                                                yield return ContinuousController.instance.StartCoroutine(cardSource.Owner.AddMemory(-1, activateClass1));
                                             }
                                             }
-
-                                            return null;
                                         }
                                         }
 
 
+                                        return cardEffects;
                                     }
                                     }
                                 }
                                 }
                             }
                             }
                         }
                         }
                     }
                     }
-                    
-                    
-
                 }
                 }
             }
             }
             #endregion
             #endregion
 
 
             if (timing == EffectTiming.OnDestroyedAnyone)
             if (timing == EffectTiming.OnDestroyedAnyone)
             {
             {
-            cardEffects.Add(CardEffectFactory.RetaliationSelfEffect(isInheritedEffect: true, card: card, condition: null));
+                cardEffects.Add(CardEffectFactory.RetaliationSelfEffect(isInheritedEffect: true, card: card, condition: null));
             }
             }
 
 
             return cardEffects;
             return cardEffects;

+ 6 - 5
Assets/CardEffect/BT20/Purple/BT20_066.cs

@@ -5,6 +5,7 @@ using System.Linq;
 using Photon;
 using Photon;
 using System;
 using System;
 using Photon.Pun;
 using Photon.Pun;
+
 namespace DCGO.CardEffects.BT20
 namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_066 : CEntity_Effect
     public class BT20_066 : CEntity_Effect
@@ -23,7 +24,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 string EffectDiscription()
                 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.";
+                    return "[On Play] 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)
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -248,7 +249,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 string EffectDiscription()
                 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.";
+                    return "[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)
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -271,7 +272,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);                    
+                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);                    
                 }
                 }
 
 
                 
                 
@@ -465,14 +466,14 @@ namespace DCGO.CardEffects.BT20
                 }
                 }
             }
             }
             #endregion
             #endregion
-            
 
 
             #region InheritedEffects
             #region InheritedEffects
             if (timing == EffectTiming.OnDestroyedAnyone)
             if (timing == EffectTiming.OnDestroyedAnyone)
             {
             {
-            cardEffects.Add(CardEffectFactory.RetaliationSelfEffect(isInheritedEffect: true, card: card, condition: null));
+                cardEffects.Add(CardEffectFactory.RetaliationSelfEffect(isInheritedEffect: true, card: card, condition: null));
             }
             }
             #endregion
             #endregion
+
             return cardEffects;
             return cardEffects;
         }
         }
 
 

+ 1 - 1
Assets/CardEffect/BT20/Purple/BT20_070.cs

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_070 : CEntity_Effect
     public class BT20_070 : CEntity_Effect
     {
     {

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

@@ -6,7 +6,7 @@ using Photon;
 using System;
 using System;
 using Photon.Pun;
 using Photon.Pun;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_074 : CEntity_Effect
     public class BT20_074 : CEntity_Effect
     {
     {

+ 5 - 2
Assets/CardEffect/BT20/Purple/BT20_076.cs

@@ -5,7 +5,7 @@ using System;
 
 
 namespace DCGO.CardEffects.BT20
 namespace DCGO.CardEffects.BT20
 {
 {
-    public class BT12_076 : CEntity_Effect{
+    public class BT20_076 : CEntity_Effect{
     
     
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
         {
@@ -125,7 +125,8 @@ namespace DCGO.CardEffects.BT20
             }
             }
             
             
             #endregion
             #endregion
-        #region On Play 
+        
+            #region On Play 
         if (timing == EffectTiming.OnEnterFieldAnyone){                
         if (timing == EffectTiming.OnEnterFieldAnyone){                
 
 
             ActivateClass activateClass = new ActivateClass();
             ActivateClass activateClass = new ActivateClass();
@@ -199,6 +200,7 @@ namespace DCGO.CardEffects.BT20
 
 
         }
         }
             #endregion
             #endregion
+        
         #region When Digivolving
         #region When Digivolving
         if (timing == EffectTiming.OnEnterFieldAnyone){       
         if (timing == EffectTiming.OnEnterFieldAnyone){       
             ActivateClass activateClass = new ActivateClass();
             ActivateClass activateClass = new ActivateClass();
@@ -280,6 +282,7 @@ namespace DCGO.CardEffects.BT20
             }
             }
         }
         }
         #endregion
         #endregion
+
         return cardEffects;
         return cardEffects;
                 
                 
     }
     }

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

@@ -91,7 +91,7 @@ namespace DCGO.CardEffects.BT20
 
 
                     if (card.Owner.HandCards.Count > 4)
                     if (card.Owner.HandCards.Count > 4)
                     {
                     {
-                        int maxCount = card.Owner.Enemy.HandCards.Count - 4;
+                        int maxCount = card.Owner.HandCards.Count - 4;
 
 
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
 
@@ -230,7 +230,7 @@ namespace DCGO.CardEffects.BT20
 
 
                     if (card.Owner.HandCards.Count > 4)
                     if (card.Owner.HandCards.Count > 4)
                     {
                     {
-                        int maxCount = card.Owner.Enemy.HandCards.Count - 4;
+                        int maxCount = card.Owner.HandCards.Count - 4;
 
 
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
 

+ 9 - 2
Assets/CardEffect/BT20/Purple/BT20_078.cs

@@ -44,8 +44,15 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return CardEffectCommons.CanTriggerWhenPermanentDigivolving(hashtable, IsOpponentDigimon) &&
-                           CardEffectCommons.IsByEffect(hashtable, null);
+                    if (CardEffectCommons.CanTriggerWhenPermanentDigivolving(hashtable, IsOpponentDigimon))
+                    {
+                        if (CardEffectCommons.IsByEffect(hashtable, null))
+                        {
+                            return true;
+                        }
+                    }
+
+                    return false;
                 }
                 }
 
 
                 bool IsOpponentDigimon(Permanent permanent)
                 bool IsOpponentDigimon(Permanent permanent)

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

@@ -125,7 +125,7 @@ namespace DCGO.CardEffects.BT20
 
 
                 string EffectDiscription()
                 string EffectDiscription()
                 {
                 {
-                    return "[All Turns] When Tamer cards are placed in this Digimon's digivolution cards, activate 1 of this Digimon's [When Digivolving] effects. Then, 1 of your Digimon may attack a player.\r\n";
+                    return "[All Turns] When Tamer cards are placed in this Digimon's digivolution cards, activate 1 of this Digimon's [When Digivolving] effects. Then, 1 of your Digimon may attack a player.";
                 }
                 }
 
 
                 bool IsYourDigimon(Permanent permanent)
                 bool IsYourDigimon(Permanent permanent)
@@ -272,7 +272,7 @@ namespace DCGO.CardEffects.BT20
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash opponent's top security", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Trash opponent's top security", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetHashString("TrashSecurity_BT20-080");
                 activateClass.SetHashString("TrashSecurity_BT20-080");
                 activateClass.SetIsInheritedEffect(true);
                 activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);

+ 45 - 4
Assets/CardEffect/BT20/Purple/BT20_088.cs

@@ -12,11 +12,52 @@ namespace DCGO.CardEffects.BT20
 
 
             #region Start of Your Turn
             #region Start of Your Turn
 
 
-            if (timing == EffectTiming.OnStartTurn)
+            if (timing == EffectTiming.OnStartMainPhase)
             {
             {
-                cardEffects.Add(CardEffectFactory.SetMemoryTo3TamerEffect(card));
-            }
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("Memory +1", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                cardEffects.Add(activateClass);
+
+                string EffectDiscription()
+                {
+                    return "[Start of Your Main Phase] If your opponent has a Digimon, gain 1 memory.";
+                }
+
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    {
+                        if (CardEffectCommons.IsOwnerTurn(card))
+                        {
+                            return true;
+                        }
+                    }
+
+                    return false;
+                }
 
 
+                bool CanActivateCondition(Hashtable hashtable)
+                {
+                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    {
+                        if (card.Owner.Enemy.GetBattleAreaDigimons().Count >= 1)
+                        {
+                            if (card.Owner.CanAddMemory(activateClass))
+                            {
+                                return true;
+                            }
+                        }
+                    }
+
+                    return false;
+                }
+
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
+                {
+                    yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(1, activateClass));
+                }
+            }
             #endregion
             #endregion
 
 
             #region Your Turn
             #region Your Turn
@@ -25,7 +66,7 @@ namespace DCGO.CardEffects.BT20
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Your Digimon digivolves", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Your Digimon digivolves", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDescription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDescription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDescription()
                 string EffectDescription()

+ 7 - 4
Assets/CardEffect/BT20/Purple/BT20_089.cs

@@ -71,11 +71,14 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    if (CardEffectCommons.CanTriggerOnPermanentPlay(hashtable, MyPlayedDigimonCondition))
-                        return true;
+                    if (isExistOnField(card))
+                    {
+                        if (CardEffectCommons.CanTriggerOnPermanentPlay(hashtable, MyPlayedDigimonCondition))
+                            return true;
 
 
-                    if (CardEffectCommons.CanTriggerWhenPermanentDigivolving(hashtable, MyPlayedDigimonCondition))
-                        return true;
+                        if (CardEffectCommons.CanTriggerWhenPermanentDigivolving(hashtable, MyPlayedDigimonCondition))
+                            return true;
+                    }
 
 
                     return false;
                     return false;
                 }
                 }

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

@@ -95,13 +95,13 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OptionSkill)
             if (timing == EffectTiming.OptionSkill)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Trash 1, Delete 1 opponent Level 4 Digimon.", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Trash 1, Delete 1 opponent Level 4< Digimon.", CanUseCondition, card);
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDiscription());
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
                 {
                 {
-                    return "[Main] Trash 1 card in your hand. Then, delete 1 of your opponent's level 4 Digimon.";
+                    return "[Main] Trash 1 card in your hand. Then, delete 1 of your opponent's level 4 or lower Digimon.";
                 }
                 }
 
 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -110,7 +110,7 @@ namespace DCGO.CardEffects.BT20
                     {
                     {
                         if (permanent.TopCard.HasLevel)
                         if (permanent.TopCard.HasLevel)
                         {
                         {
-                            if (permanent.Level == 4)
+                            if (permanent.Level <= 4)
                             {
                             {
                                 return true;
                                 return true;
                             }
                             }

+ 2 - 0
Assets/CardEffect/BT20/Purple/BT20_097.cs

@@ -114,6 +114,8 @@ namespace DCGO.CardEffects.BT20
                                 successProcess: null));
                                 successProcess: null));
                         }
                         }
                     }
                     }
+
+                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlaceDelayOptionCards(card: card, cardEffect: activateClass));
                 }
                 }
             }
             }
             #endregion
             #endregion

+ 6 - 15
Assets/CardEffect/BT20/Red/BT20_009.cs

@@ -9,6 +9,7 @@ namespace DCGO.CardEffects.BT20
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             List<ICardEffect> cardEffects = new List<ICardEffect>();
+
             #region On Your Turn
             #region On Your Turn
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
@@ -22,31 +23,21 @@ namespace DCGO.CardEffects.BT20
                     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.";
                     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 PermanentCondition(Permanent permanent)
                 bool PermanentCondition(Permanent permanent)
                 {                 
                 {                 
-                    if(permanent != card.PermanentOfThisCard())
+                    if(CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
                     {
                     {
                         if(permanent.TopCard.CardColors.Contains(CardColor.Purple))
                         if(permanent.TopCard.CardColors.Contains(CardColor.Purple))
                         {
                         {
-                            if(permanent.IsDigimon)
-                            {
-                                if(CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent,card))
-                                {
-                                    return true;
-                                }
-                            }
+                            return true;
                         }                    
                         }                    
                     }
                     }
                     return false;
                     return false;
                 }
                 }
                 
                 
-                bool canEvolveIntoFree(CardSource cardSource){
-                    if (cardSource.CardTraits.Contains("Free")){
-                        return true;
-                    }
-                    return false;
+                bool canEvolveIntoFree(CardSource cardSource)
+                {
+                    return cardSource.EqualsTraits("Free");
                 }
                 }
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)

+ 4 - 7
Assets/CardEffect/BT20/Red/BT20_011.cs

@@ -266,17 +266,14 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);                    
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);                    
                 }
                 }
 
 
                 
                 
                 bool CanActivateCondition(Hashtable hashtable)
                 bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
-                if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                {
-                    return true;
-                }
-                return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
                 }
                 
                 
                 bool CanSelectCardCondition(CardSource cardSource)
                 bool CanSelectCardCondition(CardSource cardSource)
@@ -464,7 +461,6 @@ namespace DCGO.CardEffects.BT20
                 }
                 }
             }
             }
             #endregion
             #endregion
-            
 
 
             #region Inherited Effect
             #region Inherited Effect
             if (timing == EffectTiming.None)
             if (timing == EffectTiming.None)
@@ -481,6 +477,7 @@ namespace DCGO.CardEffects.BT20
                     condition: InheritedEffectCondition));
                     condition: InheritedEffectCondition));
             }
             }
             #endregion
             #endregion
+
             return cardEffects;
             return cardEffects;
 
 
         }
         }

+ 167 - 174
Assets/CardEffect/BT20/Red/BT20_016.cs

@@ -13,102 +13,102 @@ namespace DCGO.CardEffects.BT20
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             List<ICardEffect> cardEffects = new List<ICardEffect>();
+
             #region DNA Digivolve
             #region DNA Digivolve
             if (timing == EffectTiming.None)
             if (timing == EffectTiming.None)
             {
             {
-            AddJogressConditionClass addJogressConditionClass = new AddJogressConditionClass();
-            addJogressConditionClass.SetUpICardEffect($"DNA Digivolution", CanUseCondition, card);
-            addJogressConditionClass.SetUpAddJogressConditionClass(getJogressCondition: GetJogress);
-            addJogressConditionClass.SetNotShowUI(true);
-            cardEffects.Add(addJogressConditionClass);
+                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;
-            }
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    return true;
+                }
 
 
 
 
 
 
-            JogressCondition GetJogress(CardSource cardSource)
-            {
-                if (cardSource == card)
+                JogressCondition GetJogress(CardSource cardSource)
                 {
                 {
-                    bool PermanentCondition1(Permanent permanent)
+                    if (cardSource == card)
                     {
                     {
-                        if (permanent != null)
+                        bool PermanentCondition1(Permanent permanent)
                         {
                         {
-                            if (permanent.TopCard != null)
+                            if (permanent != null)
                             {
                             {
-                                if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
-
+                                if (permanent.TopCard != null)
                                 {
                                 {
-                                            if (permanent.TopCard.CardColors.Contains(CardColor.Purple))
+                                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
+
+                                    {
+                                        if (permanent.TopCard.CardColors.Contains(CardColor.Purple))
+                                        {
+                                            if (permanent.Levels_ForJogress(card).Contains(4))
                                             {
                                             {
-                                                if (permanent.Levels_ForJogress(card).Contains(4))
-                                                {
-                                                    return true;
-                                                }
+                                                return true;
                                             }
                                             }
+                                        }
+                                    }
                                 }
                                 }
                             }
                             }
-                        }
 
 
-                        return false;
-                    }
+                            return false;
+                        }
 
 
-                    bool PermanentCondition2(Permanent permanent)
-                    {
-                        if (permanent != null)
+                        bool PermanentCondition2(Permanent permanent)
                         {
                         {
-                            if (permanent.TopCard != null)
+                            if (permanent != null)
                             {
                             {
-                                if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
-                                {                                
-                                            if (permanent.TopCard.CardColors.Contains(CardColor.Red))
+                                if (permanent.TopCard != null)
+                                {
+                                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
+                                    {
+                                        if (permanent.TopCard.CardColors.Contains(CardColor.Red))
+                                        {
+                                            if (permanent.Levels_ForJogress(card).Contains(4))
                                             {
                                             {
-                                                if (permanent.Levels_ForJogress(card).Contains(4))
-                                                {
-                                                    return true;
-                                                }
+                                                return true;
                                             }
                                             }
+                                        }
+                                    }
                                 }
                                 }
                             }
                             }
+
+                            return false;
                         }
                         }
 
 
-                        return false;
-                    }
+                        JogressConditionElement[] elements = new JogressConditionElement[]
+                        {
+                            new JogressConditionElement(PermanentCondition1, "a level 4 red Digimon"),
 
 
-                    JogressConditionElement[] elements = new JogressConditionElement[]
-                    {
-                        new JogressConditionElement(PermanentCondition1, "a level 4 red Digimon"),
+                            new JogressConditionElement(PermanentCondition2, "a level 4 purple Digimon"),
+                        };
 
 
-                        new JogressConditionElement(PermanentCondition2, "a level 4 purple Digimon"),
-                    };
+                        JogressCondition jogressCondition = new JogressCondition(elements, 0);
 
 
-                    JogressCondition jogressCondition = new JogressCondition(elements, 0);
+                        return jogressCondition;
+                    }
 
 
-                    return jogressCondition;
+                    return null;
                 }
                 }
-
-                return null;
-            }
             }
             }
-            
-            
-            #endregion
 
 
 
 
-            #region On Digivolving
+            #endregion
+
+            #region On Play
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("1 Digimon gains Piercing and 4000DP, then this digimon may attack", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Piercing and Digivolve into Imperialdramon Dragon Mode", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 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.";
+                    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 CanSelectPermanentCondition(Permanent permanent)
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -123,52 +123,53 @@ namespace DCGO.CardEffects.BT20
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable,card);
+                    return CardEffectCommons.CanTriggerOptionMainEffect(hashtable, card);
                 }
                 }
 
 
-            IEnumerator ActivateCoroutine(Hashtable _hashtable)
-            {
-                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 {
                 {
-                    int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition));
-
-                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+                    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.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.");
 
 
-                    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());
 
 
-                    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));
 
 
-                    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(
                             yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
                                 targetPermanent: permanent,
                                 targetPermanent: permanent,
                                 changeValue: 4000,
                                 changeValue: 4000,
-                                effectDuration: EffectDuration.UntilEachTurnEnd, 
+                                effectDuration: EffectDuration.UntilEachTurnEnd,
                                 activateClass: activateClass));
                                 activateClass: activateClass));
 
 
+
+                        }
                     }
                     }
-                }
-                
-                if (card.PermanentOfThisCard().CanAttack(activateClass))
+                    if (card.PermanentOfThisCard().CanAttack(activateClass))
                     {
                     {
                         SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
                         SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
 
 
@@ -180,115 +181,117 @@ namespace DCGO.CardEffects.BT20
 
 
                         yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
                         yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
                     }
                     }
+                }
             }
             }
-            
             #endregion
             #endregion
-            
-            #region On Play
+
+            #region On Digivolving
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
-                ActivateClass activateClass1 = new ActivateClass();
-                activateClass1.SetUpICardEffect("Piercing and Digivolve into Imperialdramon Dragon Mode", CanUseCondition1, card);
-                activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, false, EffectDiscription1());
-                cardEffects.Add(activateClass1);
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("1 Digimon gains Piercing and 4000DP, then this digimon may attack", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                cardEffects.Add(activateClass);
 
 
-                string EffectDiscription1()
+                string EffectDiscription()
                 {
                 {
-                    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.";
+                    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 CanSelectPermanentCondition1(Permanent permanent)
+                bool CanSelectPermanentCondition(Permanent permanent)
                 {
                 {
                     return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card);
                     return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card);
                 }
                 }
 
 
-                bool CanActivateCondition1(Hashtable hashtable)
+                bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
                     return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                     return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
                 }
 
 
-                bool CanUseCondition1(Hashtable hashtable)
+                bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    return CardEffectCommons.CanTriggerOptionMainEffect(hashtable, card);
+                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
                 }
                 }
 
 
-            IEnumerator ActivateCoroutine1(Hashtable _hashtable)
-            {
-                if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition1))
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 {
                 {
-                    int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition));
-
-                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+                    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.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: activateClass1);
+                        selectPermanentEffect.SetUpCustomMessage(
+                            "Select 1 Digimon that will gain Pierce and 4000DP.",
+                            "The opponent is selecting 1 Digimon that will gain Pierce and 4000DP.");
 
 
-                    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());
 
 
-                    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));
 
 
-                    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(
                             yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
                                 targetPermanent: permanent,
                                 targetPermanent: permanent,
                                 changeValue: 4000,
                                 changeValue: 4000,
-                                effectDuration: EffectDuration.UntilEachTurnEnd, 
+                                effectDuration: EffectDuration.UntilEachTurnEnd,
                                 activateClass: activateClass));
                                 activateClass: activateClass));
-                                
-
+                        }
                     }
                     }
-                }
-                if (card.PermanentOfThisCard().CanAttack(activateClass))
-                {
+
+                    if (card.PermanentOfThisCard().CanAttack(activateClass))
+                    {
                         SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
                         SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
 
 
                         selectAttackEffect.SetUp(
                         selectAttackEffect.SetUp(
                             attacker: card.PermanentOfThisCard(),
                             attacker: card.PermanentOfThisCard(),
                             canAttackPlayerCondition: () => true,
                             canAttackPlayerCondition: () => true,
                             defenderCondition: _ => true,
                             defenderCondition: _ => true,
-                            cardEffect: activateClass1);
+                            cardEffect: activateClass);
 
 
                         yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
                         yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
+                    }
                 }
                 }
             }
             }
-           
-            }            
+
             #endregion
             #endregion
 
 
-             #region All Turns
-            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());
-                activateClass1.SetHashString("Dna Digivolve into Imperialdramon Dragon Mode");
+            #region All Turns
+            if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
+            {
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("If would be deleted, DNA Digivolve", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetHashString("Dna Digivolve into Imperialdramon Dragon Mode");
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
-                string EffectDiscription1(){
+                string EffectDiscription()
+                {
                     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.";
                     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){
-                    
+                bool isPaildramonOrDinoBeemon(Permanent permanent)
+                {
+
                     if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
                     if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
                     {
                     {
-                        if(permanent.TopCard.EqualsCardName("Dinobeemon") || permanent.TopCard.EqualsCardName("Paildramon"))
+                        if (permanent.TopCard.EqualsCardName("Dinobeemon") || permanent.TopCard.EqualsCardName("Paildramon"))
                         {
                         {
                             return true;
                             return true;
                         }
                         }
@@ -296,8 +299,8 @@ namespace DCGO.CardEffects.BT20
                     return false;
                     return false;
                 }
                 }
 
 
-                
-                bool CanActivateCondition2(Hashtable hashtable)
+
+                bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
                     return CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, isPaildramonOrDinoBeemon);
                     return CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, isPaildramonOrDinoBeemon);
                 }
                 }
@@ -317,22 +320,14 @@ namespace DCGO.CardEffects.BT20
 
 
                     return false;
                     return false;
                 }
                 }
-                bool CanUseCondition1(Hashtable hashtable)
+                bool CanUseCondition(Hashtable hashtable)
                 {
                 {
                     return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                     return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
                 }
 
 
-                bool CanActivateCondition1(Hashtable hashtable)
-                {                    
-                    if (CardEffectCommons.MatchConditionPermanentCount(isPaildramonOrDinoBeemon)>=2){
-                        return true;
-                    }
-                    return false;
-                }
-
-                IEnumerator ActivateCoroutine1(Hashtable hashtable)
+                IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                 {
-                    
+
                     List<CardSource> selectedCards = new List<CardSource>();
                     List<CardSource> selectedCards = new List<CardSource>();
 
 
                     int maxCount = 1;
                     int maxCount = 1;
@@ -435,27 +430,25 @@ namespace DCGO.CardEffects.BT20
             }
             }
             #endregion
             #endregion
 
 
-            
             #region InheritedEffect
             #region InheritedEffect
             if (timing == EffectTiming.None)
             if (timing == EffectTiming.None)
-            {               
+            {
                 cardEffects.Add(CardEffectFactory.ChangeSelfSAttackStaticEffect(changeValue: 1, isInheritedEffect: true, card: card, condition: null));
                 cardEffects.Add(CardEffectFactory.ChangeSelfSAttackStaticEffect(changeValue: 1, isInheritedEffect: true, card: card, condition: null));
-            } 
-            #endregion
-            
             }
             }
+            #endregion
+
             return cardEffects;
             return cardEffects;
         }
         }
         
         
-    private bool _endSelect = false;
-    private int[] _jogressEvoRootsFrameIDs = new int[0];
+        private bool _endSelect = false;
+        private int[] _jogressEvoRootsFrameIDs = new int[0];
 
 
-    [PunRPC]
-    public void SetJogressEvoRootsFrameIDs(int[] JogressEvoRootsFrameIDs)
-    {
-        this._jogressEvoRootsFrameIDs = JogressEvoRootsFrameIDs;
-        _endSelect = true;
-    }
+        [PunRPC]
+        public void SetJogressEvoRootsFrameIDs(int[] JogressEvoRootsFrameIDs)
+        {
+            this._jogressEvoRootsFrameIDs = JogressEvoRootsFrameIDs;
+            _endSelect = true;
+        }
     }
     }
 }
 }
 
 

+ 59 - 76
Assets/CardEffect/BT20/Red/BT20_020.cs

@@ -33,7 +33,7 @@ namespace DCGO.CardEffects.BT20
                 }
                 }
             #endregion
             #endregion
 
 
-            #region
+            #region Raid
                 if(timing == EffectTiming.OnAllyAttack)
                 if(timing == EffectTiming.OnAllyAttack)
                 {
                 {
                     cardEffects.Add(CardEffectFactory.RaidSelfEffect(isInheritedEffect: false, card: card, condition: null));
                     cardEffects.Add(CardEffectFactory.RaidSelfEffect(isInheritedEffect: false, card: card, condition: null));
@@ -41,59 +41,45 @@ namespace DCGO.CardEffects.BT20
                 }
                 }
             #endregion
             #endregion
 
 
-            #region When Digievolving
+            #region When Digivolving
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
-            {              
-              
-                    ActivateClass activateClass = new ActivateClass();
-                    activateClass.SetUpICardEffect("Gains raid, piercing, trash security stack", CanUseCondition, card);
-                    activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
-                    cardEffects.Add(activateClass);
-                    
+            {
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("Gains raid, piercing, trash security stack", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                cardEffects.Add(activateClass);
 
 
-                    bool CardEffectCondition(ICardEffect cardEffect)
-                    {
-                        return cardEffect != null;
-                    }
-                    
-                    string EffectDiscription()
-                    {
-                        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.";
-                    }
+                string EffectDiscription()
+                {
+                    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)
-                    {
-                        if (CardEffectCommons.IsExistOnBattleArea(card))
-                        {
-                            if (CardEffectCommons.IsOwnerTurn(card))                                                    
-                                {
-                                    return true;
-                                }
-                            return false;                        
-                        }                
-                        return false;          
-                    }
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
+                }
+
+                bool CanActivateCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                }
 
 
-                    bool CanActivateCondition(Hashtable hashtable)
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
+                {
+                    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;
                         return true;
                     }
                     }
 
 
-                    IEnumerator ActivateCoroutine(Hashtable _hashtable)
+                    bool CardCondition(CardSource cardSource)
                     {
                     {
-                        CanNotPutFieldClass canNotPutFieldClass = new CanNotPutFieldClass();
-                        canNotPutFieldClass.SetUpICardEffect("Can't play Digimon or Tamers by effect", CanUseCondition1, card);
-                        canNotPutFieldClass.SetUpCanNotPutFieldClass(cardCondition: CardCondition, cardEffectCondition: CardEffectCondition1);
-                        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.Owner == card.Owner.Enemy)
                         {
                         {
                             if (cardSource.IsDigimon || cardSource.IsTamer)
                             if (cardSource.IsDigimon || cardSource.IsTamer)
@@ -101,24 +87,23 @@ namespace DCGO.CardEffects.BT20
                                 return true;
                                 return true;
                             }
                             }
                         }
                         }
-                            return false;
-                        }
+                        return false;
+                    }
 
 
-                        bool CardEffectCondition1(ICardEffect cardEffect)
-                        {
-                            return true;
-                        }
-                        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());
-                        }
+                    bool CardEffectCondition(ICardEffect cardEffect)
+                    {
+                        return cardEffect != null;
                     }
                     }
 
 
-                
+                    if (card.PermanentOfThisCard().DigivolutionCards.Count((cardSource) => cardSource.CardNames.Contains("Imperialdramon: Dragon Mode")) >= 1)
+                    {
+                        yield return ContinuousController.instance.StartCoroutine(new IDestroySecurity(
+                                player: card.Owner.Enemy,
+                                destroySecurityCount: 1,
+                                cardEffect: activateClass,
+                                fromTop: true).DestroySecurity());
+                    }
+                }
             }
             }
             #endregion
             #endregion
 
 
@@ -126,18 +111,18 @@ namespace DCGO.CardEffects.BT20
             #region All Turns
             #region All Turns
             if(timing == EffectTiming.OnLoseSecurity)
             if(timing == EffectTiming.OnLoseSecurity)
             {
             {
-                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, false, EffectDiscription1());
-                activateClass1.SetHashString("ImperialDramon_BT20_020");
-                cardEffects.Add(activateClass1);
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("Delete 1 Digimon with as much or less DP as this Digimon", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
+                activateClass.SetHashString("ImperialDramon_BT20_020");
+                cardEffects.Add(activateClass);
 
 
-                string EffectDiscription1()
+                string EffectDiscription()
                 {
                 {
                     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.";
                     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)
+                bool CanUseCondition(Hashtable hashtable)
                 {
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {                        
                     {                        
@@ -149,20 +134,17 @@ namespace DCGO.CardEffects.BT20
 
 
                     return false;
                     return false;
                 }
                 }
-                bool CanActivateCondition1(Hashtable hashtable)
+                bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
-                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                    {
-                        return true;
-                    }
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition);
                 }
                 }
                 
                 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 bool CanSelectPermanentCondition(Permanent permanent)
                 {
                 {
                     if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
                     if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
                     {   
                     {   
-                        if (permanent.DP <= card.Owner.MaxDP_DeleteEffect(13000,activateClass1))
+                        if (permanent.DP <= card.Owner.MaxDP_DeleteEffect(card.PermanentOfThisCard().DP,activateClass))
                         {
                         {
                             return true;
                             return true;
                         }
                         }
@@ -171,7 +153,7 @@ namespace DCGO.CardEffects.BT20
                     return false;
                     return false;
                 }
                 }
 
 
-                IEnumerator ActivateCoroutine1(Hashtable hashtable)
+                IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                 {
                     if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                     if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                         {
                         {
@@ -190,13 +172,14 @@ namespace DCGO.CardEffects.BT20
                                 selectPermanentCoroutine: null,
                                 selectPermanentCoroutine: null,
                                 afterSelectPermanentCoroutine: null,
                                 afterSelectPermanentCoroutine: null,
                                 mode: SelectPermanentEffect.Mode.Destroy,
                                 mode: SelectPermanentEffect.Mode.Destroy,
-                                cardEffect: activateClass1);
+                                cardEffect: activateClass);
 
 
                             yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
                             yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
                         }
                         }
                 }
                 }
             }
             }
             #endregion
             #endregion
+
             return cardEffects;
             return cardEffects;
         }
         }
     }
     }

+ 3 - 3
Assets/CardEffect/BT20/Red/BT20_093.cs

@@ -25,7 +25,7 @@ namespace DCGO.CardEffects.BT20
                 string EffectDescription()
                 string EffectDescription()
                 {
                 {
                     return
                     return
-                        "[Main] You may play 1 Digimon card with [Dracomon]/[Examon] in its text from your hand with the play cost reduced by 3. Then, place this card in the battle area.\n";
+                        "[Main] You may play 1 Digimon card with [Dracomon]/[Examon] in its text from your hand with the play cost reduced by 3. Then, place this card in the battle area.";
                 }
                 }
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)
@@ -154,7 +154,7 @@ namespace DCGO.CardEffects.BT20
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(
                             cardSources: selectedCards,
                             cardSources: selectedCards,
                             activateClass: activateClass,
                             activateClass: activateClass,
-                            payCost: false,
+                            payCost: true,
                             isTapped: false,
                             isTapped: false,
                             root: SelectCardEffect.Root.Hand,
                             root: SelectCardEffect.Root.Hand,
                             activateETB: true));
                             activateETB: true));
@@ -343,7 +343,7 @@ namespace DCGO.CardEffects.BT20
                 bool CanSelectCardCondition(CardSource cardSource)
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                 {
                     return cardSource.IsDigimon &&
                     return cardSource.IsDigimon &&
-                           (cardSource.HasText("Dracomon") || cardSource.HasText("Examon")) &&
+                           cardSource.ContainsCardName("Dracomon") &&
                            CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass);
                            CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass);
                 }
                 }
 
 

+ 114 - 112
Assets/CardEffect/BT20/Red/BT20_094.cs

@@ -357,156 +357,158 @@ namespace DCGO.CardEffects.BT20
             #region SecurityEffect
             #region SecurityEffect
             if (timing == EffectTiming.SecuritySkill)
             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);
+                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.";
-            }
+                string EffectDiscription()
+                {
+                    return "[Security] You may play 1 level 3 Digimon card with the [Free] trait from your hand or trash without paying the cost. Then, add this card to the hand.";
+                }
 
 
-            bool CanSelectCardCondition(CardSource cardSource)
-            {
-                if (cardSource != null)
+                bool CanSelectCardCondition(CardSource cardSource)
                 {
                 {
-                    if (cardSource.IsDigimon)
+                    if (cardSource != null)
                     {
                     {
-                        if (cardSource.Owner == card.Owner)
+                        if (cardSource.IsDigimon)
                         {
                         {
-                            if (cardSource.CardTraits.Contains("Free"))
+                            if (cardSource.Owner == card.Owner)
                             {
                             {
-                                if (cardSource.Level == 3)
+                                if (cardSource.CardTraits.Contains("Free"))
                                 {
                                 {
-                                    if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
+                                    if (cardSource.Level == 3)
                                     {
                                     {
-                                        if (cardSource.HasLevel)
+                                        if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
                                         {
                                         {
-                                            return true;
+                                            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);
+                    return false;
+                }
 
 
-                if (canSelectHand || canSelectTrash)
+                bool CanUseCondition(Hashtable hashtable)
                 {
                 {
-                    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.";
+                    return CardEffectCommons.CanTriggerSecurityEffect(hashtable, card);
+                }
 
 
-                        GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
-                    }
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
+                {
+                    bool canSelectHand = card.Owner.HandCards.Count(CanSelectCardCondition) >= 1;
+                    bool canSelectTrash = CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition);
 
 
-                    else
+                    if (canSelectHand || canSelectTrash)
                     {
                     {
-                        GManager.instance.userSelectionManager.SetBool(canSelectHand);
-                    }
-
-                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
-
-                    bool fromHand = GManager.instance.userSelectionManager.SelectedBoolValue;
+                        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),
+                            };
 
 
-                    List<CardSource> selectedCards = new List<CardSource>();
+                            string selectPlayerMessage = "From which area do you play a card?";
+                            string notSelectPlayerMessage = "The opponent is choosing from which area to play a card.";
 
 
-                    IEnumerator SelectCardCoroutine(CardSource cardSource)
-                    {
-                        selectedCards.Add(cardSource);
+                            GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
+                        }
 
 
-                        yield return null;
-                    }
+                        else
+                        {
+                            GManager.instance.userSelectionManager.SetBool(canSelectHand);
+                        }
 
 
-                    if (fromHand)
-                    {
-                        int maxCount = 1;
+                        yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
 
 
-                        SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
+                        bool fromHand = GManager.instance.userSelectionManager.SelectedBoolValue;
 
 
-                        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());
-                    }
+                        List<CardSource> selectedCards = new List<CardSource>();
 
 
-                    else
-                    {
-                        int maxCount = 1;
+                        IEnumerator SelectCardCoroutine(CardSource cardSource)
+                        {
+                            selectedCards.Add(cardSource);
 
 
-                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
+                            yield return null;
+                        }
 
 
-                        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);
+                        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());
+                        }
 
 
-                        selectCardEffect.SetUpCustomMessage("Select 1 card to play.", "The opponent is selecting 1 card to play.");
-                        selectCardEffect.SetUpCustomMessage_ShowCard("Played Card");
+                        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());
+                        }
 
 
-                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-                    }
+                        SelectCardEffect.Root root = SelectCardEffect.Root.Hand;
 
 
-                    SelectCardEffect.Root root = SelectCardEffect.Root.Hand;
+                        if (!fromHand)
+                        {
+                            root = SelectCardEffect.Root.Trash;
+                        }
 
 
-                    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));
                     }
                     }
 
 
-                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: selectedCards, activateClass: activateClass, payCost: false, isTapped: false, root: root, activateETB: true));
+                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.AddThisCardToHand(card, activateClass));
                 }
                 }
             }
             }
-            }
             #endregion
             #endregion
             
             
 
 

+ 29 - 2
Assets/CardEffect/BT20/White/BT20_083.cs

@@ -9,6 +9,31 @@ namespace DCGO.CardEffects.BT20
         {
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
 
+            #region Treated As
+            if (timing == EffectTiming.None)
+            {
+                ChangeCardNamesClass changeCardNamesClass = new ChangeCardNamesClass();
+                changeCardNamesClass.SetUpICardEffect("Also treated as [X Antibody]", CanUseCondition, card);
+                changeCardNamesClass.SetUpChangeCardNamesClass(changeCardNames: changeCardNames);
+                cardEffects.Add(changeCardNamesClass);
+
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    return true;
+                }
+
+                List<string> changeCardNames(CardSource cardSource, List<string> CardNames)
+                {
+                    if (cardSource == card)
+                    {
+                        CardNames.Add("X Antibody");
+                    }
+
+                    return CardNames;
+                }
+            }
+            #endregion
+
             #region Blocker
             #region Blocker
             if (timing == EffectTiming.None)
             if (timing == EffectTiming.None)
             {
             {
@@ -24,7 +49,7 @@ namespace DCGO.CardEffects.BT20
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Digivolve this Digimon into [Omnimon (X Antibody)]", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Digivolve this Digimon into [Omnimon (X Antibody)]", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
@@ -66,9 +91,10 @@ namespace DCGO.CardEffects.BT20
                         payCost: false,
                         payCost: false,
                         reduceCostTuple: null,
                         reduceCostTuple: null,
                         fixedCostTuple: null,
                         fixedCostTuple: null,
-                        ignoreDigivolutionRequirementFixedCost: -1,
+                        ignoreDigivolutionRequirementFixedCost: 0,
                         isHand: true,
                         isHand: true,
                         activateClass: activateClass,
                         activateClass: activateClass,
+                        ignoreRequirements:CardEffectCommons.IgnoreRequirement.All,
                         successProcess: null));
                         successProcess: null));
                 }
                 }
             }
             }
@@ -91,6 +117,7 @@ namespace DCGO.CardEffects.BT20
                 {
                 {
                     return CardEffectCommons.IsPermanentExistsOnOwnerBreedingArea(permanent, card) &&
                     return CardEffectCommons.IsPermanentExistsOnOwnerBreedingArea(permanent, card) &&
                            permanent.TopCard.EqualsCardName("King Drasil_7D6");
                            permanent.TopCard.EqualsCardName("King Drasil_7D6");
+                                                             
                 }
                 }
 
 
                 bool CanUseCondition(Hashtable hashtable)
                 bool CanUseCondition(Hashtable hashtable)

+ 1 - 1
Assets/CardEffect/BT20/White/BT20_084.cs

@@ -49,7 +49,7 @@ namespace DCGO.CardEffects.BT20
                     return "[Trash] [All Turns] When any of your Digimon are played, 1 of your [Sistermon Ciel] may digivolve into this card without paying the cost.";
                     return "[Trash] [All Turns] When any of your Digimon are played, 1 of your [Sistermon Ciel] may digivolve into this card without paying the cost.";
                 }
                 }
 
 
-                #region Opponent Digimon/Tamer Played/card is in trash condition
+                #region Digimon/Tamer Played/card is in trash condition
 
 
                 bool PermanentCondition(Permanent permanent)
                 bool PermanentCondition(Permanent permanent)
                 {
                 {

+ 19 - 6
Assets/CardEffect/BT20/White/BT20_091.cs

@@ -13,7 +13,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("DNA Digivolve.", CanUseCondition, card);
+                activateClass.SetUpICardEffect("<Draw 1> and gain 1 memory", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -11, true, EffectDescription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -11, true, EffectDescription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
@@ -77,7 +77,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.WhenRemoveField)
             if (timing == EffectTiming.WhenRemoveField)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Play 1 [Omekamon] from your hand", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
                 activateClass.SetHashString("PlayCard_BT20-091");
                 activateClass.SetHashString("PlayCard_BT20-091");
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
@@ -93,13 +93,13 @@ namespace DCGO.CardEffects.BT20
                            CardEffectCommons.CanPlayAsNewPermanent(source, false, activateClass);
                            CardEffectCommons.CanPlayAsNewPermanent(source, false, activateClass);
                 }
                 }
 
 
-                bool CanUseCondition(Hashtable hashtable)
+                bool PermanentCondition(Permanent permanent)
                 {
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
                     {
                     {
-                        if (CardEffectCommons.CanTriggerWhenRemoveField(hashtable, card))
+                        if (permanent != card.PermanentOfThisCard())
                         {
                         {
-                            if (!CardEffectCommons.GetPermanentsFromHashtable(hashtable).Some(permanent => permanent.TopCard.EqualsTraits("Royal Knight")))
+                            if (permanent.TopCard.EqualsTraits("Royal Knight"))
                             {
                             {
                                 return true;
                                 return true;
                             }
                             }
@@ -109,6 +109,19 @@ namespace DCGO.CardEffects.BT20
                     return false;
                     return false;
                 }
                 }
 
 
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    {
+                        if (CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, PermanentCondition))
+                        {
+                            return true;
+                        }
+                    }
+
+                    return false;
+                }
+
                 bool CanActivateCondition(Hashtable hashtable)
                 bool CanActivateCondition(Hashtable hashtable)
                 {
                 {
                     return CardEffectCommons.IsExistOnBattleArea(card) &&
                     return CardEffectCommons.IsExistOnBattleArea(card) &&

+ 3 - 3
Assets/CardEffect/BT20/White/BT20_092.cs

@@ -195,14 +195,14 @@ namespace DCGO.CardEffects.BT20
 
 
                     yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: selectedDigivolutionCards, activateClass: activateClass, payCost: false, isTapped: true, root: SelectCardEffect.Root.DigivolutionCards, activateETB: true));
                     yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.PlayPermanentCards(cardSources: selectedDigivolutionCards, activateClass: activateClass, payCost: false, isTapped: true, root: SelectCardEffect.Root.DigivolutionCards, activateETB: true));
 
 
-                    if (CardEffectCommons.IsExistOnBattleArea(selectedDigivolutionCards[0]))
+                    if (selectedDigivolutionCards.Count > 0)
                     {
                     {
                         Hashtable _hashtable = new Hashtable();
                         Hashtable _hashtable = new Hashtable();
-                        hashtable.Add("CardEffect", activateClass);
+                        _hashtable.Add("CardEffect", activateClass);
 
 
                         yield return ContinuousController.instance.StartCoroutine(new DestroyPermanentsClass(
                         yield return ContinuousController.instance.StartCoroutine(new DestroyPermanentsClass(
                             new List<Permanent>() { card.PermanentOfThisCard() },
                             new List<Permanent>() { card.PermanentOfThisCard() },
-                            CardEffectCommons.CardEffectHashtable(activateClass)).Destroy());
+                            _hashtable).Destroy());
                     }
                     }
                 }
                 }
             }
             }

+ 2 - 0
Assets/CardEffect/BT20/Yellow/BT20_003.cs

@@ -15,6 +15,8 @@ namespace DCGO.CardEffects.BT20
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("If this has no tamers in source, you may place 1 tamer with Pulsemon in text, or Soc or SEEKERS trait as a source", CanUseCondition, card);
                 activateClass.SetUpICardEffect("If this has no tamers in source, you may place 1 tamer with Pulsemon in text, or Soc or SEEKERS trait as a source", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
+                activateClass.SetHashString("EndOfTurn_BT20-003");
+                activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()

+ 1 - 0
Assets/CardEffect/BT20/Yellow/BT20_029.cs

@@ -185,6 +185,7 @@ namespace DCGO.CardEffects.BT20
                 activateClass.SetUpICardEffect("Gain 1 memory", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Gain 1 memory", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetHashString("Gain1_BT20-029");
                 activateClass.SetHashString("Gain1_BT20-029");
+                activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()

+ 1 - 0
Assets/CardEffect/BT20/Yellow/BT20_032.cs

@@ -161,6 +161,7 @@ namespace DCGO.CardEffects.BT20
                 activateClass.SetUpICardEffect("Gain 1 memory", CanUseCondition, card);
                 activateClass.SetUpICardEffect("Gain 1 memory", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetHashString("Gain1_BT20-032");
                 activateClass.SetHashString("Gain1_BT20-032");
+                activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()

+ 5 - 28
Assets/CardEffect/BT20/Yellow/BT20_033.cs

@@ -15,7 +15,7 @@ namespace DCGO.CardEffects.BT20
             {
             {
                 static bool PermanentCondition(Permanent targetPermanent)
                 static bool PermanentCondition(Permanent targetPermanent)
                 {
                 {
-                    return targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 3 && targetPermanent.TopCard.EqualsTraits("ACCEL");
+                    return targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 4 && targetPermanent.TopCard.EqualsTraits("ACCEL");
                 }
                 }
 
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 2, ignoreDigivolutionRequirement: false, card: card, condition: null));
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 2, ignoreDigivolutionRequirement: false, card: card, condition: null));
@@ -27,13 +27,13 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("<De-Digivolve 2> 1 of your opponent's Digimon, then 1 gets -5000 DP", CanUseCondition, card);
+                activateClass.SetUpICardEffect("1 Opponent's Digimon gets can't activate [When Digivolving] and -3000 DP", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 
                 string EffectDiscription()
                 string EffectDiscription()
                 {
                 {
-                    return "[On Play] [When Digivolving] <De-Digivolve 2> 1 of your opponent's Digimon. Then, 1 of their Digimon gets -5000 DP until the end of their turn.";
+                    return "[On Play] Until the end of your opponent's turn, 1 of their Digimon can't activate [When Digivolving] effects and gets -3000 DP.";
                 }
                 }
 
 
                 bool IsOpponentsDigimon(Permanent permanent)
                 bool IsOpponentsDigimon(Permanent permanent)
@@ -58,29 +58,6 @@ namespace DCGO.CardEffects.BT20
 
 
                     SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
                     SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
 
-                    selectPermanentEffect.SetUp(
-                        selectPlayer: card.Owner,
-                        canTargetCondition: IsOpponentsDigimon,
-                        canTargetCondition_ByPreSelecetedList: null,
-                        canEndSelectCondition: null,
-                        maxCount: 1,
-                        canNoSelect: false,
-                        canEndNotMax: false,
-                        selectPermanentCoroutine: SelectedDedigivolvePermanent,
-                        afterSelectPermanentCoroutine: null,
-                        mode: SelectPermanentEffect.Mode.Custom,
-                        cardEffect: activateClass);
-
-                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will gain effect and DP -3000.", "The opponent is selecting 1 Digimon that will gain effect and DP -3000.");
-
-                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                    IEnumerator SelectedDedigivolvePermanent(Permanent target)
-                    {
-                        selectedPermanent = target;
-                        yield return null;
-                    }
-
                     selectPermanentEffect.SetUp(
                     selectPermanentEffect.SetUp(
                         selectPlayer: card.Owner,
                         selectPlayer: card.Owner,
                         canTargetCondition: IsOpponentsDigimon,
                         canTargetCondition: IsOpponentsDigimon,
@@ -94,7 +71,7 @@ namespace DCGO.CardEffects.BT20
                         mode: SelectPermanentEffect.Mode.Custom,
                         mode: SelectPermanentEffect.Mode.Custom,
                         cardEffect: activateClass);
                         cardEffect: activateClass);
 
 
-                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will gain effect and DP -5000.", "The opponent is selecting 1 Digimon that will gain effect and DP -5000.");
+                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will gain effect and DP -3000.", "The opponent is selecting 1 Digimon that will gain effect and DP -3000.");
 
 
                     yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
                     yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
 
@@ -104,7 +81,7 @@ namespace DCGO.CardEffects.BT20
                         yield return null;
                         yield return null;
                     }
                     }
 
 
-                    if(selectedPermanent != null)
+                    if (selectedPermanent != null)
                     {
                     {
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: selectedPermanent, changeValue: -3000, effectDuration: EffectDuration.UntilOpponentTurnEnd, activateClass: activateClass));
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(targetPermanent: selectedPermanent, changeValue: -3000, effectDuration: EffectDuration.UntilOpponentTurnEnd, activateClass: activateClass));
 
 

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

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_034 : CEntity_Effect
     public class BT20_034 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Yellow/BT20_035.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System;
 using System;
 using System.Linq;
 using System.Linq;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.BT20
 {
 {
     public class BT20_035 : CEntity_Effect
     public class BT20_035 : CEntity_Effect
     {
     {

+ 1 - 1
Assets/CardEffect/BT20/Yellow/BT20_036.cs

@@ -34,7 +34,7 @@ namespace DCGO.CardEffects.BT20
                 {
                 {
                     if (permanent.IsDigimon)
                     if (permanent.IsDigimon)
                     {
                     {
-                        if (permanent.TopCard.EqualsTraits("Accel"))
+                        if (permanent.TopCard.EqualsTraits("ACCEL"))
                         {
                         {
                             return true;
                             return true;
                         }
                         }

+ 3 - 3
Assets/CardEffect/BT20/Yellow/BT20_037.cs

@@ -29,9 +29,9 @@ namespace DCGO.CardEffects.BT20
                 {
                 {
                     if (cardSource == card)
                     if (cardSource == card)
                     {
                     {
-                        bool PermanentCondition1(Permanent permanent) => permanent.TopCard.CardColors.Contains(CardColor.Yellow) && permanent.Levels_ForJogress(card).Contains(4);
+                        bool PermanentCondition1(Permanent permanent) => permanent.TopCard.CardColors.Contains(CardColor.Yellow) && permanent.Levels_ForJogress(card).Contains(6);
 
 
-                        bool PermanentCondition2(Permanent permanent) => (permanent.TopCard.CardColors.Contains(CardColor.Green) || permanent.TopCard.CardColors.Contains(CardColor.Black)) && permanent.Levels_ForJogress(card).Contains(4);
+                        bool PermanentCondition2(Permanent permanent) => (permanent.TopCard.CardColors.Contains(CardColor.Green) || permanent.TopCard.CardColors.Contains(CardColor.Black)) && permanent.Levels_ForJogress(card).Contains(6);
 
 
                         JogressConditionElement[] elements = new JogressConditionElement[]
                         JogressConditionElement[] elements = new JogressConditionElement[]
                         {
                         {
@@ -76,7 +76,7 @@ namespace DCGO.CardEffects.BT20
             if (timing == EffectTiming.OnEnterFieldAnyone)
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
             {
                 ActivateClass activateClass = new ActivateClass();
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("", CanUseCondition, card);
+                activateClass.SetUpICardEffect("For each level 6 in sources, suspend 1 Digimon, Then Opponent's Digimon/Tamers can activate [On Play] or unsuspend", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
                 cardEffects.Add(activateClass);
 
 

+ 1 - 1
Assets/CardEffect/P/Black/P_174.cs

@@ -103,7 +103,7 @@ namespace DCGO.CardEffects.P
                         {
                         {
                         new JogressConditionElement(PermanentCondition1, "a level 5 Blue/Black Digimon"),
                         new JogressConditionElement(PermanentCondition1, "a level 5 Blue/Black Digimon"),
 
 
-                        new JogressConditionElement(PermanentCondition2, "a level 5 Black Digimon"),
+                        new JogressConditionElement(PermanentCondition2, "a level 5 Purple/Red Digimon"),
                         };
                         };
 
 
                         JogressCondition jogressCondition = new JogressCondition(elements, 0);
                         JogressCondition jogressCondition = new JogressCondition(elements, 0);

+ 1 - 1
Assets/CardEffect/P/Blue/P_171.cs

@@ -104,7 +104,7 @@ namespace DCGO.CardEffects.P
                         {
                         {
                         new JogressConditionElement(PermanentCondition1, "a level 5 Blue/Black Digimon"),
                         new JogressConditionElement(PermanentCondition1, "a level 5 Blue/Black Digimon"),
 
 
-                        new JogressConditionElement(PermanentCondition2, "a level 5 Black Digimon"),
+                        new JogressConditionElement(PermanentCondition2, "a level 5 Purple Digimon"),
                         };
                         };
 
 
                         JogressCondition jogressCondition = new JogressCondition(elements, 0);
                         JogressCondition jogressCondition = new JogressCondition(elements, 0);

+ 1 - 1
Assets/CardEffect/P/Green/P_173.cs

@@ -15,7 +15,7 @@ namespace DCGO.CardEffects.P
             {
             {
                 static bool PermanentCondition(Permanent targetPermanent)
                 static bool PermanentCondition(Permanent targetPermanent)
                 {
                 {
-                    return targetPermanent.TopCard.EqualsTraits("Tyrannomon") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 5;
+                    return targetPermanent.TopCard.ContainsCardName("Tyrannomon") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 5;
                 }
                 }
 
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 4, ignoreDigivolutionRequirement: false, card: card, condition: null));
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 4, ignoreDigivolutionRequirement: false, card: card, condition: null));

+ 1 - 1
Assets/CardEffect/P/Red/P_170.cs

@@ -16,7 +16,7 @@ namespace DCGO.CardEffects.P
             {
             {
                 static bool PermanentCondition(Permanent targetPermanent)
                 static bool PermanentCondition(Permanent targetPermanent)
                 {
                 {
-                    return targetPermanent.TopCard.EqualsTraits("Three Musketeers") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 5;
+                    return targetPermanent.TopCard.HasText("Three Musketeers") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 5;
                 }
                 }
 
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 4, ignoreDigivolutionRequirement: false, card: card, condition: null));
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 4, ignoreDigivolutionRequirement: false, card: card, condition: null));

+ 1 - 1
Assets/CardEffect/P/Yellow/P_172.cs

@@ -1,7 +1,7 @@
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-namespace DCGO.CardEffects
+namespace DCGO.CardEffects.P
 {
 {
     public class P_172 : CEntity_Effect
     public class P_172 : CEntity_Effect
     {
     {

+ 55 - 0
lfs/objects/8b/55/8b5539a399fcdafca6a8ff1bdab0c5ff8fe10ceff9ea9d69a7ee7b55ede06314

@@ -0,0 +1,55 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ac423894725fed64a9146a10d3878ce1, type: 3}
+  m_Name: BT20_070
+  m_EditorClassIdentifier: 
+  CardIndex: 5149
+  cardColors: 0600000000000000
+  PlayCost: 6
+  EvoCosts:
+  - CardColor: 0
+    Level: 3
+    MemoryCost: 3
+  - CardColor: 2
+    Level: 3
+    MemoryCost: 3
+  Level: 4
+  CardName_JPN: 
+  CardName_ENG: Loogarmon
+  Form_JPN: []
+  Form_ENG:
+  - Champion
+  Attribute_JPN: []
+  Attribute_ENG:
+  - Virus
+  Type_JPN: []
+  Type_ENG:
+  - Dark Animal
+  - X Antibody
+  - SoC
+  - SEEKERS
+  CardSpriteName: BT20-070
+  cardKind: 0
+  EffectDiscription_JPN: 
+  EffectDiscription_ENG: "[Digivolve] [Loogamon]/Lv.3 w/[SEEKERS]\_trait: Cost 2
+    \n\n[On Play] [When Digivolving] By trashing 1 card in your hand, you may return
+    1 card with the [SoC]/[SEEKERS]\_trait from your trash to the hand."
+  InheritedEffectDiscription_JPN: 
+  InheritedEffectDiscription_ENG: '[Your Turn] This Digimon gets +2000 DP.'
+  SecurityEffectDiscription_JPN: 
+  SecurityEffectDiscription_ENG: '-'
+  CardEffectClassName: BT20_070
+  DP: 6000
+  rarity: 0
+  OverflowMemory: 0
+  CardID: BT20-070
+  MaxCountInDeck: 4

+ 53 - 0
lfs/objects/b7/86/b786237860db0a72aaf3f72207c4b7bf186a09481c1d4e18ee9aeab0ee5339ae

@@ -0,0 +1,53 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ac423894725fed64a9146a10d3878ce1, type: 3}
+  m_Name: BT20_038
+  m_EditorClassIdentifier: 
+  CardIndex: 5117
+  cardColors: 0300000002000000
+  PlayCost: 3
+  EvoCosts:
+  - CardColor: 3
+    Level: 2
+    MemoryCost: 1
+  - CardColor: 2
+    Level: 2
+    MemoryCost: 1
+  Level: 3
+  CardName_JPN: 
+  CardName_ENG: Falcomon
+  Form_JPN: []
+  Form_ENG:
+  - Rookie
+  Attribute_JPN: []
+  Attribute_ENG:
+  - Vaccine
+  Type_JPN: []
+  Type_ENG:
+  - Avian
+  - ACCEL
+  CardSpriteName: BT20-038
+  cardKind: 0
+  EffectDiscription_JPN: 
+  EffectDiscription_ENG: "[Digivolve] [Pinamon]/Lv.2 w/[ACCEL]\_trait: Cost 0 \n\n[Your
+    Turn] When this Digimon would digivolve into a Digimon card with the [ACCEL]\_trait,
+    reduce the digivolution cost by 1."
+  InheritedEffectDiscription_JPN: 
+  InheritedEffectDiscription_ENG: "\uFF1CPiercing\uFF1E."
+  SecurityEffectDiscription_JPN: 
+  SecurityEffectDiscription_ENG: '-'
+  CardEffectClassName: BT20_038
+  DP: 1000
+  rarity: 0
+  OverflowMemory: 0
+  CardID: BT20-038
+  MaxCountInDeck: 4

+ 54 - 0
lfs/objects/ba/6a/ba6acff8ca120069bf45e4a74215b2038e499f71a40e7b66660417a3488f5225

@@ -0,0 +1,54 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ac423894725fed64a9146a10d3878ce1, type: 3}
+  m_Name: BT20_030
+  m_EditorClassIdentifier: 
+  CardIndex: 5109
+  cardColors: 0200000005000000
+  PlayCost: 3
+  EvoCosts:
+  - CardColor: 2
+    Level: 2
+    MemoryCost: 1
+  - CardColor: 5
+    Level: 2
+    MemoryCost: 1
+  Level: 3
+  CardName_JPN: 
+  CardName_ENG: Liollmon
+  Form_JPN: []
+  Form_ENG:
+  - Rookie
+  Attribute_JPN: []
+  Attribute_ENG:
+  - Vaccine
+  Type_JPN: []
+  Type_ENG:
+  - Holy Beast
+  - ACCEL
+  CardSpriteName: BT20-030
+  cardKind: 0
+  EffectDiscription_JPN: 
+  EffectDiscription_ENG: "[Digivolve] [Frimon]/Lv.2 w/[ACCEL]\_trait: Cost 0 \n\n[On
+    Play] Reveal the top 3 cards of your deck. Add 1 Digimon card with [Chaosmon]\_in
+    its name or the [ACCEL]\_trait and 1 Option card with the [ACCEL]\_trait among
+    them to the hand. Return the rest to the bottom of the deck"
+  InheritedEffectDiscription_JPN: 
+  InheritedEffectDiscription_ENG: "\uFF1CBarrier\uFF1E."
+  SecurityEffectDiscription_JPN: 
+  SecurityEffectDiscription_ENG: '-'
+  CardEffectClassName: BT20_030
+  DP: 1000
+  rarity: 1
+  OverflowMemory: 0
+  CardID: BT20-030
+  MaxCountInDeck: 4