Просмотр исходного кода

Final Updates before ALPHA 1.3.1

mbunch_kascope 2 лет назад
Родитель
Сommit
83ead63aaf
34 измененных файлов с 323 добавлено и 305 удалено
  1. 1 1
      Assets/CardBaseEntity/BT17/Black/Digimon/Agumon-BT17-052.asset
  2. 0 3
      Assets/CardBaseEntity/BT17/Black/Option/Clock_of_the_End-BT17-100.asset
  3. 3 0
      Assets/CardBaseEntity/BT17/Black/Option/Doomsday_Clock-BT17-100.asset
  4. 0 0
      Assets/CardBaseEntity/BT17/Black/Option/Doomsday_Clock-BT17-100.asset.meta
  5. 1 1
      Assets/CardBaseEntity/BT17/Green/Digimon/Antylamon-BT17-049.asset
  6. 1 1
      Assets/CardBaseEntity/BT17/Green/Digimon/Argomon-BT17-042.asset
  7. 12 15
      Assets/CardEffect/BT17/Black/Diaboromon_BT17_059.cs
  8. 25 17
      Assets/CardEffect/BT17/Black/DoomsdayClock_BT17_100.cs
  9. 0 0
      Assets/CardEffect/BT17/Black/DoomsdayClock_BT17_100.cs.meta
  10. 5 8
      Assets/CardEffect/BT17/Black/Locomon_BT17_056.cs
  11. 4 7
      Assets/CardEffect/BT17/Black/Trailmon_BT17_054.cs
  12. 2 2
      Assets/CardEffect/BT17/Blue/ReturntothePrimogenitor_BT17_097.cs
  13. 4 4
      Assets/CardEffect/BT17/Green/Antylamon_BT17_049.cs
  14. 1 1
      Assets/CardEffect/BT17/Green/Argomon_BT17_048.cs
  15. 12 15
      Assets/CardEffect/BT17/Green/Parasitemon_BT17_050.cs
  16. 1 1
      Assets/CardEffect/BT17/Green/Parrotmon_BT17_047.cs
  17. 1 1
      Assets/CardEffect/BT17/Green/Rhythm_BT17_089.cs
  18. 22 11
      Assets/CardEffect/BT17/Green/Willis_BT17_088.cs
  19. 28 25
      Assets/CardEffect/BT17/Purple/DexDoruGreymon_BT17_067.cs
  20. 28 25
      Assets/CardEffect/BT17/Purple/DexDorugamon_BT17_065.cs
  21. 10 35
      Assets/CardEffect/BT17/Purple/Mephistomon_BT17_068.cs
  22. 12 4
      Assets/CardEffect/BT17/Red/AncientGuardianDeity_BT17_094.cs
  23. 10 6
      Assets/CardEffect/BT17/Red/CrimsonSavior_BT17_096.cs
  24. 4 8
      Assets/CardEffect/BT17/Red/MiraculousMegaKnight_BT17_095.cs
  25. 6 5
      Assets/CardEffect/BT17/Red/TakatoMatsuki_BT17_080.cs
  26. 78 77
      Assets/CardEffect/BT17/White/Eosmon_BT17_075.cs
  27. 6 6
      Assets/CardEffect/BT17/White/Eosmon_BT17_076.cs
  28. 4 3
      Assets/CardEffect/BT17/White/Greymon_BT17_102.cs
  29. 3 3
      Assets/CardEffect/BT17/White/ImperialdramonPaladinMode_BT17_077.cs
  30. 12 6
      Assets/CardEffect/BT17/White/MenoaBellucci_BT17_092.cs
  31. 1 1
      Assets/CardEffect/BT17/White/TaiKamiyaAndKariKamiya_BT17_093.cs
  32. 23 10
      Assets/CardEffect/BT17/Yellow/AwakeningoftheSun_BT17_099.cs
  33. 2 2
      Assets/Scripts/CardEffectFactory/KeyWordEffects/BlastDNADigivolution.cs
  34. 1 1
      Assets/Scripts/PatchNotes.cs

+ 1 - 1
Assets/CardBaseEntity/BT17/Black/Digimon/Agumon-BT17-052.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:6903061442d6c6ecfbd640f014d7da216eb334b562ea1122f344f6e4f288ef28
+oid sha256:5cad6f5a0d2343e367dab7a857e5a9c7739ad626f48dab05af7367b56cc602ec
 size 1195

+ 0 - 3
Assets/CardBaseEntity/BT17/Black/Option/Clock_of_the_End-BT17-100.asset

@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:530aee796c8f2d9bc5d4fb134b8720652af92d0f0a209a6291f8b2b7351e5f3d
-size 1713

+ 3 - 0
Assets/CardBaseEntity/BT17/Black/Option/Doomsday_Clock-BT17-100.asset

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:569ff160c3ae9629023bce035949c1a71d45a5c4a5bef88937295f94c87495c3
+size 1709

+ 0 - 0
Assets/CardBaseEntity/BT17/Black/Option/Clock_of_the_End-BT17-100.asset.meta → Assets/CardBaseEntity/BT17/Black/Option/Doomsday_Clock-BT17-100.asset.meta


+ 1 - 1
Assets/CardBaseEntity/BT17/Green/Digimon/Antylamon-BT17-049.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:935f0909891462f1991264cf05b477db3be6f91c4f4740243406fe3d98c3eda3
+oid sha256:8448df20c2100dbfc9363c570fb8452db8193dc25b72c8674f7844fb085b44e1
 size 1500

+ 1 - 1
Assets/CardBaseEntity/BT17/Green/Digimon/Argomon-BT17-042.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:61761da319e1506c75866e70c60f118b7fc53d78674df2246b44b9b10353884c
+oid sha256:0c5083b411e38f3271e3d93ee54c615d7ee0554263efb4496d9379b5e9b1f762
 size 1329

+ 12 - 15
Assets/CardEffect/BT17/Black/Diaboromon_BT17_059.cs

@@ -15,18 +15,18 @@ namespace DCGO.CardEffects.BT17
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("By placing [Clock of The End] in sources, Play 2 Diaboromon tokens", CanUseCondition, card);
+                activateClass.SetUpICardEffect("By placing [Doomsday Clock] in sources, Play 2 Diaboromon tokens", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[When Digivolving] By placing 1 [Clock of The End] from your hand or trash as this Digimon's bottom digivolution card, you may play 2 [Diaboromon] (Digimon | 14 Cost | Level 6 | White | Mega | Unknown | Unidentified | DP3000) Tokens without paying its cost.";
+                    return "[When Digivolving] By placing 1 [Doomsday Clock] from your hand or trash as this Digimon's bottom digivolution card, you may play 2 [Diaboromon] (Digimon | 14 Cost | Level 6 | White | Mega | Unknown | Unidentified | DP3000) Tokens without paying its cost.";
                 }
 
-                bool HasClockofTheEnd(CardSource source)
+                bool HasDoomsdayClock(CardSource source)
                 {
-                    return source.EqualsCardName("Clock of The End");
+                    return source.EqualsCardName("Doomsday Clock");
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -41,12 +41,9 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
-                        if (CardEffectCommons.HasMatchConditionOwnersHand(card, HasClockofTheEnd) || CardEffectCommons.HasMatchConditionOwnersHand(card, HasClockofTheEnd))
+                        if (CardEffectCommons.HasMatchConditionOwnersHand(card, HasDoomsdayClock) || CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, HasDoomsdayClock))
                         {
-                            if (card.Owner.fieldCardFrames.Count((frame) => frame.IsEmptyFrame() && frame.IsBattleAreaFrame()) >= 1)
-                            {
-                                return true;
-                            }
+                            return true;
                         }
                     }
 
@@ -55,8 +52,8 @@ namespace DCGO.CardEffects.BT17
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    bool validCardInTrash = CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, HasClockofTheEnd);
-                    bool validCardInHand = CardEffectCommons.HasMatchConditionOwnersHand(card, HasClockofTheEnd);
+                    bool validCardInTrash = CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, HasDoomsdayClock);
+                    bool validCardInHand = CardEffectCommons.HasMatchConditionOwnersHand(card, HasDoomsdayClock);
                     bool useTrash = false;
                     bool cardAdded = false;
 
@@ -117,7 +114,7 @@ namespace DCGO.CardEffects.BT17
 
                                 selectHandEffect.SetUp(
                                     selectPlayer: card.Owner,
-                                    canTargetCondition: HasClockofTheEnd,
+                                    canTargetCondition: HasDoomsdayClock,
                                     canTargetCondition_ByPreSelecetedList: null,
                                     canEndSelectCondition: null,
                                     maxCount: 1,
@@ -142,7 +139,7 @@ namespace DCGO.CardEffects.BT17
                                 SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
 
                                 selectCardEffect.SetUp(
-                                    canTargetCondition: HasClockofTheEnd,
+                                    canTargetCondition: HasDoomsdayClock,
                                     canTargetCondition_ByPreSelecetedList: null,
                                     canEndSelectCondition: null,
                                     canNoSelect: () => true,
@@ -185,7 +182,7 @@ namespace DCGO.CardEffects.BT17
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Switch attack target to a [Diaboromon]", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
                 activateClass.SetHashString("AttackSwitch_BT17_059");
                 cardEffects.Add(activateClass);
 
@@ -254,7 +251,7 @@ namespace DCGO.CardEffects.BT17
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
                             maxCount: maxCount,
-                            canNoSelect: true,
+                            canNoSelect: false,
                             canEndNotMax: false,
                             selectPermanentCoroutine: SelectPermanentCoroutine,
                             afterSelectPermanentCoroutine: null,

+ 25 - 17
Assets/CardEffect/BT17/Black/ClockoftheEnd_BT17_100.cs → Assets/CardEffect/BT17/Black/DoomsdayClock_BT17_100.cs

@@ -5,7 +5,7 @@ using System.Linq;
 
 namespace DCGO.CardEffects.BT17
 {
-    public class ClockoftheEnd_BT17_100 : CEntity_Effect
+    public class DoomsdayClock_BT17_100 : CEntity_Effect
     {
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
@@ -21,26 +21,33 @@ namespace DCGO.CardEffects.BT17
 
                 string EffectDiscription()
                 {
-                    return "[Main] Play 1 [Diaboromon] Token without paying the cost. Then, place this card as the bottom digivolution card of 1 of your [Diaboromon] without [Clock of the End] in its digivolution cards.";
+                    return "[Main] Play 1 [Diaboromon] Token without paying the cost. Then, place this card as the bottom digivolution card of 1 of your [Diaboromon] without [Doomsday Clock] in its digivolution cards.";
                 }
 
-                bool IsClockOfTheEnd(CardSource source)
+                bool IsDoomsdayClock(CardSource source)
                 {
-                    return source.EqualsCardName("Clock of the End");
+                    return source.EqualsCardName("Doomsday Clock");
                 }
 
                 bool HasDiaboromonWithoutClock(Permanent permanent)
                 {
-                    if (permanent.IsDigimon)
+                    if(CardEffectCommons.IsOwnerPermanent(permanent, card))
                     {
-                        if (!permanent.IsToken)
+                        if (permanent.IsDigimon)
                         {
-                            if(permanent.DigivolutionCards.Count(IsClockOfTheEnd) == 0)
+                            if (!permanent.IsToken)
                             {
-                                return true;
+                                if (permanent.TopCard.EqualsCardName("Diaboromon"))
+                                {
+                                    if (permanent.DigivolutionCards.Count(IsDoomsdayClock) == 0)
+                                    {
+                                        return true;
+                                    }
+                                }
                             }
                         }
                     }
+                    
                     return false;
                 }
 
@@ -96,14 +103,14 @@ namespace DCGO.CardEffects.BT17
             #region Start of Your Turn
             if(timing == EffectTiming.OnStartTurn)
             {
-                bool IsClockofTheEnd(Permanent permanent)
+                bool IsDoomsdayClock(Permanent permanent)
                 {
-                    return permanent.TopCard.EqualsCardName("Clock of the End");
+                    return permanent.TopCard.EqualsCardName("Doomsday Clock");
                 }
 
-                if (CardEffectCommons.MatchConditionOwnersPermanentCount(card, IsClockofTheEnd) >= 4)
+                if (CardEffectCommons.MatchConditionOwnersPermanentCount(card, IsDoomsdayClock) >= 4)
                 {
-                    GManager.instance.turnStateMachine.EndGame(card.Owner, false, "Clock of the End");
+                    GManager.instance.turnStateMachine.EndGame(card.Owner, false, "Doomsday Clock");
                 }
             }
             #endregion
@@ -224,20 +231,21 @@ namespace DCGO.CardEffects.BT17
             if (timing == EffectTiming.OnEndTurn)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Place 1 [Clock of the End] from digivolution cards", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpICardEffect("Place 1 [Doomsday Clock] from digivolution cards", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetIsInheritedEffect(true);
                 activateClass.SetHashString("PlayCard_BT10_066");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[End of Opponent's Turn] Place 1 [Clock of the End] from this Digimon's digivolution cards in the battle area.";
+                    return "[End of Opponent's Turn] Place 1 [Doomsday Clock] from this Digimon's digivolution cards in the battle area.";
                 }
 
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
                     if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
-                        return cardSource.EqualsCardName("Clock of the End");
+                        return cardSource.EqualsCardName("Doomsday Clock");
 
                     return false;
                 }
@@ -246,7 +254,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsExistOnBattleArea(card))
                     {
-                        if (CardEffectCommons.CanTriggerWhenRemoveField(hashtable, card))
+                        if (CardEffectCommons.IsOpponentTurn(card))
                         {
                             return true;
                         }

+ 0 - 0
Assets/CardEffect/BT17/Black/ClockoftheEnd_BT17_100.cs.meta → Assets/CardEffect/BT17/Black/DoomsdayClock_BT17_100.cs.meta


+ 5 - 8
Assets/CardEffect/BT17/Black/Locomon_BT17_056.cs

@@ -109,7 +109,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool IsThisDigimon(Permanent permanent)
                 {
-                    return card.PermanentOfThisCard() == permanent;
+                    return permanent == card.PermanentOfThisCard();
                 }
 
                 bool IsMyDigimonEffect(ICardEffect effect)
@@ -163,17 +163,14 @@ namespace DCGO.CardEffects.BT17
             {
                 bool condition()
                 {
-                    if (!CardEffectCommons.IsOwnerTurn(card))
-                        return false;
+                    if(card.PermanentOfThisCard().TopCard != card)
+                        return card.PermanentOfThisCard().TopCard.ContainsTraits("Machine");
 
-                    if (card.PermanentOfThisCard().TopCard.ContainsTraits("Machine"))
-                        return false;
-
-                    return true;
+                    return false;
                 }
 
                 cardEffects.Add(CardEffectFactory.CollisionSelfStaticEffect(
-                    isInheritedEffect: true,
+                    isInheritedEffect: false,
                     card: card,
                     condition: condition));
             }

+ 4 - 7
Assets/CardEffect/BT17/Black/Trailmon_BT17_054.cs

@@ -70,17 +70,14 @@ namespace DCGO.CardEffects.BT17
             {
                 bool condition()
                 {
-                    if (!CardEffectCommons.IsOwnerTurn(card))
-                        return false;
+                    if (card.PermanentOfThisCard().TopCard != card)
+                        return card.PermanentOfThisCard().TopCard.ContainsTraits("Machine");
 
-                    if (card.PermanentOfThisCard().TopCard.ContainsTraits("Machine"))
-                        return false;
-
-                    return true;
+                    return false;
                 }
 
                 cardEffects.Add(CardEffectFactory.CollisionSelfStaticEffect(
-                    isInheritedEffect: true,
+                    isInheritedEffect: false,
                     card: card,
                     condition: condition));
             }

+ 2 - 2
Assets/CardEffect/BT17/Blue/ReturntothePrimogenitor_BT17_097.cs

@@ -18,7 +18,7 @@ namespace DCGO.CardEffects.BT17
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Digivolve into level 5 or higher [Free] trait Digimon",
                     CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
                 cardEffects.Add(activateClass);
 
                 string EffectDescription()
@@ -222,7 +222,7 @@ namespace DCGO.CardEffects.BT17
                 activateClass.SetUpICardEffect(
                     $"Play 1 [Davis Motomiya] or [Ken Ichijoji] from hand or trash and place this card in the battle area",
                     CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
                 activateClass.SetIsSecurityEffect(true);
                 cardEffects.Add(activateClass);
 

+ 4 - 4
Assets/CardEffect/BT17/Green/Antylamon_BT17_049.cs

@@ -117,7 +117,7 @@ namespace DCGO.CardEffects.BT17
             }
             #endregion
 
-            #region End of Attack
+            #region End of Attack - ESS
             if (timing == EffectTiming.OnEndAttack)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -153,11 +153,11 @@ namespace DCGO.CardEffects.BT17
 
                 bool IsDeletableDigimon(Permanent permanent)
                 {
-                    if(CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
+                    if(CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
                     {
                         if(permanent != card.PermanentOfThisCard())
                         {
-                            return true;
+                            return permanent.IsSuspended;
                         }
                     }
 
@@ -166,7 +166,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return true;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)

+ 1 - 1
Assets/CardEffect/BT17/Green/Argomon_BT17_048.cs

@@ -239,7 +239,7 @@ namespace DCGO.CardEffects.BT17
                     IEnumerator SelectPermanentCoroutine(List<Permanent> permanents)
                     {
                         if (permanents != null)
-                            yield return ContinuousController.instance.StartCoroutine(new IUnsuspendPermanents(permanents, activateClass).Unsuspend());
+                            yield return ContinuousController.instance.StartCoroutine(new IUnsuspendPermanents(new List<Permanent> { card.PermanentOfThisCard() }, activateClass).Unsuspend());
                     }
                 }
             }

+ 12 - 15
Assets/CardEffect/BT17/Green/Parasitemon_BT17_050.cs

@@ -22,7 +22,7 @@ namespace DCGO.CardEffects.BT17
             if (timing == EffectTiming.OnDeclaration)
             {
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("One of your opponents Digimon must attack", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Suspend one of your opponents Digimon, Then attack an opponents suspended Digimon", CanUseCondition, card);
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDiscription());
                 cardEffects.Add(activateClass);
 
@@ -131,7 +131,7 @@ namespace DCGO.CardEffects.BT17
                                 maxCount: enemyCount,
                                 canNoSelect: false,
                                 canEndNotMax: false,
-                                selectPermanentCoroutine: SelectPermanentCoroutine,
+                                selectPermanentCoroutine: null,
                                 afterSelectPermanentCoroutine: null,
                                 mode: SelectPermanentEffect.Mode.Tap,
                                 cardEffect: activateClass);
@@ -140,20 +140,17 @@ namespace DCGO.CardEffects.BT17
 
                             yield return ContinuousController.instance.StartCoroutine(selectEnemyEffect.Activate());
 
-                            IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                            if (selectedPermanent.CanAttack(activateClass))
                             {
-                                if (selectedPermanent.CanAttack(activateClass))
-                                {
-                                    SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
-
-                                    selectAttackEffect.SetUp(
-                                        attacker: selectedPermanent,
-                                        canAttackPlayerCondition: () => false,
-                                        defenderCondition: (permanent) => true,
-                                        cardEffect: activateClass);
-
-                                    yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
-                                }
+                                SelectAttackEffect selectAttackEffect = GManager.instance.GetComponent<SelectAttackEffect>();
+
+                                selectAttackEffect.SetUp(
+                                    attacker: selectedPermanent,
+                                    canAttackPlayerCondition: () => false,
+                                    defenderCondition: (permanent) => true,
+                                    cardEffect: activateClass);
+
+                                yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
                             }
                         }
                     }

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

@@ -159,7 +159,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         bool WinnerCondition(Permanent permanent) => permanent.cardSources.Contains(card);
                         bool LoserCondition(Permanent permanent) => CardEffectCommons.IsOpponentPermanent(permanent, card);

+ 1 - 1
Assets/CardEffect/BT17/Green/Rhythm_BT17_089.cs

@@ -37,7 +37,7 @@ namespace DCGO.CardEffects.BT17
                             {
                                 if (CardEffectCommons.IsByEffect(hashtable, null))
                                 {
-                                    return true;
+                                    return card.PermanentOfThisCard().CanSuspend;
                                 }
                             }
                         }

+ 22 - 11
Assets/CardEffect/BT17/Green/Willis_BT17_088.cs

@@ -14,14 +14,17 @@ namespace DCGO.CardEffects.BT17
             #region Start Of main Phase/ On Play
             bool CanSelectYourGreenDigimon(Permanent permanent)
             {
-                if (permanent.IsDigimon)
+                if(permanent.TopCard.Owner == card.Owner)
                 {
-                    if (permanent.TopCard.CardColors.Contains(CardColor.Green))
+                    if (permanent.IsDigimon)
                     {
-                        return true;
+                        if (permanent.TopCard.CardColors.Contains(CardColor.Green))
+                        {
+                            return true;
+                        }
                     }
                 }
-
+                
                 return false;
             }
             #endregion
@@ -92,7 +95,7 @@ namespace DCGO.CardEffects.BT17
             #endregion
 
             #region On Play
-            if (timing == EffectTiming.OnStartMainPhase)
+            if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("+2000 DP", CanUseCondition, card);
@@ -174,26 +177,34 @@ namespace DCGO.CardEffects.BT17
 
                 bool PlayedPermanentCondition(Permanent permanent)
                 {
-                    if (permanent.IsDigimon)
+                    if(permanent.TopCard.Owner == card.Owner)
                     {
-                        if(permanent.TopCard.ContainsCardName("Terriermon") || permanent.TopCard.ContainsCardName("Lopmon"))
+                        if (permanent.IsDigimon)
                         {
-                            return true;
+                            if (permanent.TopCard.ContainsCardName("Terriermon") || permanent.TopCard.ContainsCardName("Lopmon"))
+                            {
+                                return true;
+                            }
                         }
                     }
+                    
 
                     return false;
                 }
 
                 bool DigivolvePermanentCondition(CardSource source)
                 {
-                    if (source.IsDigimon)
+                    if (source.Owner == card.Owner)
                     {
-                        if (source.CanPlayCardTargetFrame(selectedPermanent.PermanentFrame, true, activateClass))
+                        if (source.IsDigimon)
                         {
-                            return true;
+                            if (source.CanPlayCardTargetFrame(selectedPermanent.PermanentFrame, true, activateClass))
+                            {
+                                return true;
+                            }
                         }
                     }
+                        
 
                     return false;
                 }

+ 28 - 25
Assets/CardEffect/BT17/Purple/DexDoruGreymon_BT17_067.cs

@@ -199,34 +199,37 @@ namespace DCGO.CardEffects.BT17
                         yield return StartCoroutine(selectHandEffect.Activate());
                     }
 
-                    if (card.Owner.LibraryCards.Count >= 1)
+                    if (card.PermanentOfThisCard().DigivolutionCards.Some(IsDoruCardCondition) || CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card, TrashRootCondition))
                     {
-                        yield return ContinuousController.instance.StartCoroutine(
-                            new DrawClass(card.Owner, 1, activateClass).Draw());
+                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectOpponentPermanentCondition))
+                        {
+                            int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentPermanentCondition));
+
+                            SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                            selectPermanentEffect.SetUp(
+                                selectPlayer: card.Owner,
+                                canTargetCondition: CanSelectOpponentPermanentCondition,
+                                canTargetCondition_ByPreSelecetedList: null,
+                                canEndSelectCondition: null,
+                                maxCount: maxCount,
+                                canNoSelect: false,
+                                canEndNotMax: false,
+                                selectPermanentCoroutine: null,
+                                afterSelectPermanentCoroutine: null,
+                                mode: SelectPermanentEffect.Mode.Destroy,
+                                cardEffect: activateClass);
+
+                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        }
                     }
-
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectOpponentPermanentCondition) &&
-                        (card.PermanentOfThisCard().DigivolutionCards.Some(IsDoruCardCondition) ||
-                         CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card, TrashRootCondition)))
+                    else
                     {
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentPermanentCondition));
-
-                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-
-                        selectPermanentEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectOpponentPermanentCondition,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
-                            canEndNotMax: false,
-                            selectPermanentCoroutine: null,
-                            afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Destroy,
-                            cardEffect: activateClass);
-
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        if (card.Owner.LibraryCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(
+                                new DrawClass(card.Owner, 1, activateClass).Draw());
+                        }
                     }
                 }
             }

+ 28 - 25
Assets/CardEffect/BT17/Purple/DexDorugamon_BT17_065.cs

@@ -199,34 +199,37 @@ namespace DCGO.CardEffects.BT17
                         yield return StartCoroutine(selectHandEffect.Activate());
                     }
 
-                    if (card.Owner.LibraryCards.Count >= 1)
+                    if(card.PermanentOfThisCard().DigivolutionCards.Some(IsDoruCardCondition) || CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card, TrashRootCondition))
                     {
-                        yield return ContinuousController.instance.StartCoroutine(
-                            new DrawClass(card.Owner, 1, activateClass).Draw());
+                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectOpponentPermanentCondition))
+                        {
+                            int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentPermanentCondition));
+
+                            SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                            selectPermanentEffect.SetUp(
+                                selectPlayer: card.Owner,
+                                canTargetCondition: CanSelectOpponentPermanentCondition,
+                                canTargetCondition_ByPreSelecetedList: null,
+                                canEndSelectCondition: null,
+                                maxCount: maxCount,
+                                canNoSelect: false,
+                                canEndNotMax: false,
+                                selectPermanentCoroutine: null,
+                                afterSelectPermanentCoroutine: null,
+                                mode: SelectPermanentEffect.Mode.Destroy,
+                                cardEffect: activateClass);
+
+                            yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        }
                     }
-
-                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectOpponentPermanentCondition) &&
-                        (card.PermanentOfThisCard().DigivolutionCards.Some(IsDoruCardCondition) ||
-                         CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card, TrashRootCondition)))
+                    else
                     {
-                        int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentPermanentCondition));
-
-                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-
-                        selectPermanentEffect.SetUp(
-                            selectPlayer: card.Owner,
-                            canTargetCondition: CanSelectOpponentPermanentCondition,
-                            canTargetCondition_ByPreSelecetedList: null,
-                            canEndSelectCondition: null,
-                            maxCount: maxCount,
-                            canNoSelect: false,
-                            canEndNotMax: false,
-                            selectPermanentCoroutine: null,
-                            afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Destroy,
-                            cardEffect: activateClass);
-
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        if (card.Owner.LibraryCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(
+                                new DrawClass(card.Owner, 1, activateClass).Draw());
+                        }
                     }
                 }
             }

+ 10 - 35
Assets/CardEffect/BT17/Purple/Mephistomon_BT17_068.cs

@@ -14,48 +14,23 @@ namespace DCGO.CardEffects.BT17
 
             if (timing == EffectTiming.None)
             {
-                // Could work like this
-                // ChangeCardLevelClass changeCardLevelClass = new ChangeCardLevelClass();
-                // changeCardLevelClass.SetUpICardEffect($"Also treated as level 6 when revealed from the top of the deck.",
-                //     CanUseCondition, card);
-                // changeCardLevelClass.SetUpChangeCardLevelClass(getLevel: GetLevel);
-                // changeCardLevelClass.SetNotShowUI(true);
-                // cardEffects.Add(changeCardLevelClass);
-                //
-                // bool CanUseCondition(Hashtable hashtable)
-                // {
-                //     return card.IsBeingRevealed;
-                // }
-                //
-                // int GetLevel(CardSource cardSource, int level)
-                // {
-                //     if (cardSource == card)
-                //     {
-                //         level = 6;
-                //     }
-                //
-                //     return level;
-                // }
-
-                ChangeCardNamesClass changeCardNamesClass = new ChangeCardNamesClass();
-                changeCardNamesClass.SetUpICardEffect("Also treated as level 6 when revealed from the top of the deck.", CanUseCondition,
-                    card);
-                changeCardNamesClass.SetUpChangeCardNamesClass(changeCardNames: ChangeCardNames);
-                cardEffects.Add(changeCardNamesClass);
-
+                ChangeCardLevelClass changeCardLevelClass = new ChangeCardLevelClass();
+                changeCardLevelClass.SetUpICardEffect($"Also treated as level 6 when revealed from the top of the deck.",CanUseCondition, card);
+                changeCardLevelClass.SetUpChangeCardLevelClass(GetLevel: GetLevel);
+                changeCardLevelClass.SetNotShowUI(true);
+                cardEffects.Add(changeCardLevelClass);
+                
                 bool CanUseCondition(Hashtable hashtable)
                 {
                     return card.IsBeingRevealed;
                 }
-
-                List<string> ChangeCardNames(CardSource cardSource, List<string> CardNames)
+                
+                int GetLevel(CardSource cardSource, int level)
                 {
                     if (cardSource == card)
-                    {
-                        CardNames.Add("Is Level 6");
-                    }
+                        level = 6;
 
-                    return CardNames;
+                    return level;
                 }
             }
 

+ 12 - 4
Assets/CardEffect/BT17/Red/AncientGuardianDeity_BT17_094.cs

@@ -67,9 +67,17 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
                     {
-                        return cardSource.IsTamer ||
-                               cardSource.IsDigimon && (cardSource.ContainsTraits("Ten Warriors") ||
-                                                        cardSource.ContainsTraits("TenWarriors"));
+                        if (cardSource.IsDigimon)
+                        {
+                            if(cardSource.ContainsTraits("Ten Warriors"))
+                                return true;
+                        }
+
+                        if (cardSource.IsTamer)
+                        {
+                            if (cardSource.HasInheritedEffect)
+                                return true;
+                        }
                     }
 
                     return false;
@@ -221,7 +229,7 @@ namespace DCGO.CardEffects.BT17
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect($"Play 1 Tamer card with an inherited effect from hand or trash and add this card to hand",
                     CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
                 activateClass.SetIsSecurityEffect(true);
                 cardEffects.Add(activateClass);
 

+ 10 - 6
Assets/CardEffect/BT17/Red/CrimsonSavior_BT17_096.cs

@@ -18,7 +18,7 @@ namespace DCGO.CardEffects.BT17
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect($"Play 1 [Guilmon] or [Takato Matsuki] from your hand or trash",
                     CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
                 activateClass.SetIsSecurityEffect(true);
                 cardEffects.Add(activateClass);
 
@@ -39,13 +39,12 @@ namespace DCGO.CardEffects.BT17
                     {
                         if (cardSource.IsDigimon)
                         {
-                            return cardSource.ContainsCardName("Guilmon");
+                            return cardSource.EqualsCardName("Guilmon");
                         }
 
                         if (cardSource.IsTamer)
                         {
-                            return cardSource.ContainsCardName("Takato Matsuki") ||
-                                   cardSource.ContainsCardName("TakatoMatsuki");
+                            return cardSource.EqualsCardName("Takato Matsuki");
                         }
                     }
 
@@ -184,11 +183,16 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.CanTriggerOnPermanentPlay(hashtable,
+                    if (CardEffectCommons.CanDeclareOptionDelayEffect(card))
+                    {
+                        return CardEffectCommons.CanTriggerOnPermanentPlay(hashtable,
                         permanent =>
                             CardEffectCommons.IsOpponentPermanent(permanent, card) &&
                             permanent.IsDigimon &&
-                            permanent.Level >= 5);
+                            permanent.TopCard.HasLevel && permanent.Level >= 5);
+                    }
+                      
+                    return false;
                 }
 
                 bool IsGallantmonCardCondition(CardSource cardSource)

+ 4 - 8
Assets/CardEffect/BT17/Red/MiraculousMegaKnight_BT17_095.cs

@@ -19,7 +19,7 @@ namespace DCGO.CardEffects.BT17
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect($"Play 1 [Agumon] or [Gabumon] from your hand or trash",
                     CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
                 cardEffects.Add(activateClass);
 
                 string EffectDescription()
@@ -90,8 +90,6 @@ namespace DCGO.CardEffects.BT17
 
                         if (fromHand)
                         {
-                            int maxCount = card.Owner.HandCards.Count(CanSelectCardCondition);
-
                             SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
                             selectHandEffect.SetUp(
@@ -99,7 +97,7 @@ namespace DCGO.CardEffects.BT17
                                 canTargetCondition: CanSelectCardCondition,
                                 canTargetCondition_ByPreSelecetedList: null,
                                 canEndSelectCondition: null,
-                                maxCount: maxCount,
+                                maxCount: 1,
                                 canNoSelect: true,
                                 canEndNotMax: false,
                                 isShowOpponent: true,
@@ -470,7 +468,7 @@ namespace DCGO.CardEffects.BT17
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect($"Play 1 [Tai Kamiya] or [Matt Ishida] from hand or trash and add this card to hand",
                     CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, true, EffectDescription());
+                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
                 activateClass.SetIsSecurityEffect(true);
                 cardEffects.Add(activateClass);
 
@@ -492,9 +490,7 @@ namespace DCGO.CardEffects.BT17
                         if (cardSource.IsTamer)
                         {
                             return cardSource.ContainsCardName("Tai Kamiya") ||
-                                   cardSource.ContainsCardName("TaiKamiya") ||
-                                   cardSource.ContainsCardName("Matt Ishida") ||
-                                   cardSource.ContainsCardName("MattIshida");
+                                   cardSource.ContainsCardName("Matt Ishida");
                         }
                     }
 

+ 6 - 5
Assets/CardEffect/BT17/Red/TakatoMatsuki_BT17_080.cs

@@ -86,7 +86,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
                     {
-                        if (permanent.TopCard.ContainsCardName("Guilmon"))
+                        if (permanent.TopCard.EqualsCardName("Guilmon"))
                         {
                             if (!permanent.IsToken)
                             {
@@ -100,17 +100,17 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanSelectGrowlmonCardCondition(CardSource cardSource)
                 {
-                    return cardSource.ContainsCardName("Growlmon");
+                    return cardSource.EqualsCardName("Growlmon");
                 }
 
                 bool CanSelectWarGrowlmonCardCondition(CardSource cardSource)
                 {
-                    return cardSource.ContainsCardName("WarGrowlmon");
+                    return cardSource.EqualsCardName("WarGrowlmon");
                 }
 
                 bool CanSelectGallantmonCardCondition(CardSource cardSource)
                 {
-                    if (cardSource.ContainsCardName("Gallantmon"))
+                    if (cardSource.EqualsCardName("Gallantmon"))
                     {
                         if (cardSource.Level == 6)
                         {
@@ -148,7 +148,8 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsExistOnBattleArea(card))
                     {
-                        return true;
+                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                            return true;
                     }
 
                     return false;

+ 78 - 77
Assets/CardEffect/BT17/White/Eosmon_BT17_075.cs

@@ -101,13 +101,14 @@ namespace DCGO.CardEffects.BT17
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
+                    bool hasSelectedTamerOpponent = false;
+
                     if (card.Owner.Enemy.HandCards.Count > 0)
                     {
                         List<CardSource> selectedCardsOpponent = new List<CardSource>();
 
                         int maxCount = Math.Min(1,card.Owner.Enemy.HandCards.Count(CanSelectTamerOpponentCondition));
-                        bool hasSelectedTamerOpponent = false;
-
+                        
                         SelectHandEffect selectHandEffectOpponent = GManager.instance.GetComponent<SelectHandEffect>();
 
                         selectHandEffectOpponent.SetUp(
@@ -150,95 +151,95 @@ namespace DCGO.CardEffects.BT17
                                     root: SelectCardEffect.Root.Hand,
                                     activateETB: true));
                         }
+                    }
 
-                        else
+                    if (!hasSelectedTamerOpponent)
+                    {
+                        if (card.Owner.HandCards.Count > 0)
                         {
-                            if (card.Owner.HandCards.Count > 0)
+                            List<CardSource> selectedCards = new List<CardSource>();
+                            bool hasSelectedWhiteTamer = false;
+
+                            int maxCount = Math.Min(1, card.Owner.HandCards.Count(CanSelectWhiteTamerCondition));
+
+                            SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
+
+                            selectHandEffect.SetUp(
+                                selectPlayer: card.Owner,
+                                canTargetCondition: CanSelectWhiteTamerCondition,
+                                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");
+
+                            IEnumerator SelectCardCoroutine(CardSource cardSource)
                             {
-                                List<CardSource> selectedCards = new List<CardSource>();
-                                bool hasSelectedWhiteTamer = false;
-
-                                maxCount = Math.Min(1, card.Owner.HandCards.Count(CanSelectWhiteTamerCondition));
-
-                                SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
-
-                                selectHandEffectOpponent.SetUp(
-                                    selectPlayer: card.Owner,
-                                    canTargetCondition: CanSelectWhiteTamerCondition,
-                                    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");
-
-                                IEnumerator SelectCardCoroutine(CardSource cardSource)
-                                {
-                                    selectedCards.Add(cardSource);
-                                    hasSelectedWhiteTamer = true;
-
-                                    yield return null;
-                                }
-
-                                if (hasSelectedWhiteTamer)
-                                {
-                                    yield return ContinuousController.instance.StartCoroutine(
-                                        CardEffectCommons.PlayPermanentCards(
-                                            cardSources: selectedCardsOpponent,
-                                            activateClass: activateClass,
-                                            payCost: false,
-                                            isTapped: false,
-                                            root: SelectCardEffect.Root.Hand,
-                                            activateETB: true));
-                                }
+                                selectedCards.Add(cardSource);
+                                hasSelectedWhiteTamer = true;
 
+                                yield return null;
                             }
-                            
-                            //then De-Digivolve statement
-                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentDigimonCondition))
+
+                            if (hasSelectedWhiteTamer)
                             {
-                                int totalTamers = CardEffectCommons.MatchConditionPermanentCount(CheckForTamersOnFieldCondition);
-                                int maxCountDeDigivolve = Math.Max(0, Mathf.FloorToInt(totalTamers / 2));
+                                yield return ContinuousController.instance.StartCoroutine(
+                                    CardEffectCommons.PlayPermanentCards(
+                                        cardSources: selectedCards,
+                                        activateClass: activateClass,
+                                        payCost: false,
+                                        isTapped: false,
+                                        root: SelectCardEffect.Root.Hand,
+                                        activateETB: true));
+                            }
 
-                                SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+                        }
+                    }
 
-                                selectPermanentEffect.SetUp(
-                                    selectPlayer: card.Owner.Enemy,
-                                    canTargetCondition: CanSelectPermanentDigimonCondition,
-                                    canTargetCondition_ByPreSelecetedList: null,
-                                    canEndSelectCondition: null,
-                                    maxCount: 1,
-                                    canNoSelect: false,
-                                    canEndNotMax: false,
-                                    selectPermanentCoroutine: SelectPermanentCoroutine,
-                                    afterSelectPermanentCoroutine: null,
-                                    mode: SelectPermanentEffect.Mode.Custom,
-                                    cardEffect: activateClass);
+                    //then De-Digivolve statement
+                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentDigimonCondition))
+                    {
+                        int totalTamers = CardEffectCommons.MatchConditionPermanentCount(CheckForTamersOnFieldCondition);
+                        int maxCountDeDigivolve = Math.Max(0, Mathf.FloorToInt(totalTamers / 2));
 
-                                selectPermanentEffect.SetUpCustomMessage("Select Digimons to De-Digivolve.", "The opponent is selecting Digimons to De-Digivolve.");
+                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
-                                yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        selectPermanentEffect.SetUp(
+                            selectPlayer: card.Owner.Enemy,
+                            canTargetCondition: CanSelectPermanentDigimonCondition,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canEndSelectCondition: null,
+                            maxCount: 1,
+                            canNoSelect: false,
+                            canEndNotMax: false,
+                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            afterSelectPermanentCoroutine: null,
+                            mode: SelectPermanentEffect.Mode.Custom,
+                            cardEffect: activateClass);
 
-                                IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                                {
-                                    Permanent selectedPermanent = permanent;
+                        selectPermanentEffect.SetUpCustomMessage("Select Digimons to De-Digivolve.", "The opponent is selecting Digimons to De-Digivolve.");
 
-                                    if (selectedPermanent != null)
-                                    {
-                                        yield return ContinuousController.instance.StartCoroutine(new IDegeneration(selectedPermanent, maxCountDeDigivolve, activateClass).Degeneration());
-                                    }
+                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                                    yield return null;
-                                }
+                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        {
+                            Permanent selectedPermanent = permanent;
+
+                            if (selectedPermanent != null)
+                            {
+                                yield return ContinuousController.instance.StartCoroutine(new IDegeneration(selectedPermanent, maxCountDeDigivolve, activateClass).Degeneration());
                             }
+
+                            yield return null;
                         }
                     }
                 }

+ 6 - 6
Assets/CardEffect/BT17/White/Eosmon_BT17_076.cs

@@ -24,7 +24,7 @@ namespace DCGO.CardEffects.BT17
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(
                     permanentCondition: PermanentCondition,
-                    digivolutionCost: 45,
+                    digivolutionCost: 4,
                     ignoreDigivolutionRequirement: false,
                     card: card,
                     condition: null));
@@ -47,7 +47,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool HasProperEosmon(CardSource source)
                 {
-                    if (source.HasLevel && source.Level == 5)
+                    if (source.HasLevel && source.Level <= 5)
                     {
                         if (source.EqualsCardName("Eosmon"))
                         {
@@ -72,7 +72,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.HasMatchConditionOwnersHand(card, HasProperEosmon))
                     {
-                        int maxCount = Math.Min(4, card.Owner.HandCards.Count(HasProperEosmon));
+                        int maxCount = Math.Min(1, card.Owner.HandCards.Count(HasProperEosmon));
 
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
@@ -128,7 +128,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool HasProperEosmon(CardSource source)
                 {
-                    if (source.HasLevel && source.Level == 5)
+                    if (source.HasLevel && source.Level <= 5)
                     {
                         if (source.EqualsCardName("Eosmon"))
                         {
@@ -153,7 +153,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.HasMatchConditionOwnersHand(card, HasProperEosmon))
                     {
-                        int maxCount = Math.Min(4, card.Owner.HandCards.Count(HasProperEosmon));
+                        int maxCount = Math.Min(1, card.Owner.HandCards.Count(HasProperEosmon));
 
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
@@ -310,7 +310,7 @@ namespace DCGO.CardEffects.BT17
                 cardEffects.Add(CardEffectFactory.ChangeDPStaticEffect(
                     permanentCondition: PermanentCondition,
                     changeValue: DPIncrease(),
-                    isInheritedEffect: true,
+                    isInheritedEffect: false,
                     card: card,
                     condition: Condition,
                     effectName: () => "[Your Turn] For each Tamer, all of your [Eosmon] get +1000 DP."));

+ 4 - 3
Assets/CardEffect/BT17/White/Greymon_BT17_102.cs

@@ -51,13 +51,14 @@ namespace DCGO.CardEffects.BT17
 
                 bool IsOpponentsDigimonSelectable(Permanent permanent)
                 {
-                    if (permanent.IsDigimon)
+                    if(CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
                     {
-                        if(permanent.DP <= card.PermanentOfThisCard().DP)
+                        if (permanent.DP <= card.PermanentOfThisCard().DP)
                         {
                             return true;
                         }
                     }
+
                     return false;
                 }
 
@@ -118,7 +119,7 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return true;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 List<string> changeCardNames(CardSource cardSource, List<string> CardNames)

+ 3 - 3
Assets/CardEffect/BT17/White/ImperialdramonPaladinMode_BT17_077.cs

@@ -147,7 +147,7 @@ namespace DCGO.CardEffects.BT17
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash digivolution sources, Return all cards in trash, Memory +3", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -191,7 +191,7 @@ namespace DCGO.CardEffects.BT17
 
                     bool willReturnYourTrash = GManager.instance.userSelectionManager.SelectedBoolValue;
 
-                    List<CardSource> returnedSources = willReturnYourTrash ? card.Owner.TrashCards : card.Owner.Enemy.TrashCards;
+                    List<CardSource> returnedSources = willReturnYourTrash ? card.Owner.TrashCards.Clone() : card.Owner.Enemy.TrashCards.Clone();
 
                     yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddLibraryBottomCards(returnedSources));
 
@@ -208,7 +208,7 @@ namespace DCGO.CardEffects.BT17
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Trash digivolution sources, Return all cards in trash, Memory +3", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()

+ 12 - 6
Assets/CardEffect/BT17/White/MenoaBellucci_BT17_092.cs

@@ -153,20 +153,26 @@ namespace DCGO.CardEffects.BT17
 
                 bool isEosmon(Permanent permanent)
                 {
-                    return permanent.TopCard.EqualsCardName("Eosmon");
+                    if (CardEffectCommons.IsOwnerPermanent(permanent, card))
+                        return permanent.TopCard.EqualsCardName("Eosmon");
+
+                    return false;
                 }
 
                 bool HasOtherEosmon(Permanent permanent)
                 {
-                    if (permanent.IsDigimon)
+                    if(CardEffectCommons.IsOwnerPermanent(permanent, card))
                     {
-                        foreach(Permanent removed in removedPermanents)
+                        if (permanent.IsDigimon)
                         {
-                            if (removed != permanent)
-                                return permanent.TopCard.EqualsCardName("Eosmon");
+                            foreach (Permanent removed in removedPermanents)
+                            {
+                                if (removed != permanent)
+                                    return permanent.TopCard.EqualsCardName("Eosmon");
+                            }
                         }
                     }
-
+                    
                     return false;
                 }
 

+ 1 - 1
Assets/CardEffect/BT17/White/TaiKamiyaAndKariKamiya_BT17_093.cs

@@ -82,7 +82,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (source.IsTamer)
                     {
-                        if(source.EqualsCardName("Tai Kamiya") || source.EqualsCardName("Kari Kamiya"))
+                        if(source.ContainsCardName("Tai Kamiya") || source.ContainsCardName("Kari Kamiya"))
                         {
                             return CardEffectCommons.CanPlayAsNewPermanent(source, false, activateClass);
                         }

+ 23 - 10
Assets/CardEffect/BT17/Yellow/AwakeningoftheSun_BT17_099.cs

@@ -179,7 +179,7 @@ namespace DCGO.CardEffects.BT17
             #endregion
 
             #region All Turns - Delay
-            if (timing == EffectTiming.OnDestroyedAnyone)
+            if (timing == EffectTiming.OnDestroyedAnyone || timing == EffectTiming.WhenReturntoHandAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Digivolve for free", CanUseCondition, card);
@@ -211,6 +211,11 @@ namespace DCGO.CardEffects.BT17
                         {
                             return true;
                         }
+
+                        if (CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, PermanentCondition))
+                        {
+                            return true;
+                        }
                     }
 
                     return false;
@@ -237,21 +242,19 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
-                    return cardSource.CardNames.Contains("ShineGreymon");
+                    return cardSource.ContainsCardName("ShineGreymon");
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
                     if (CardEffectCommons.IsExistOnBattleArea(card))
                     {
-                        if (card.Owner.HandCards.Count >= 1)
-                        {
-                            return true;
-                        }
-
                         if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, CanSelectPermanentCondition))
                         {
-                            return true;
+                            if (CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectCardCondition))
+                            {
+                                return true;
+                            }
                         }
                     }
 
@@ -259,7 +262,17 @@ namespace DCGO.CardEffects.BT17
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {         
+                {
+                    yield return ContinuousController.instance.StartCoroutine(
+                        CardEffectCommons.DeletePeremanentAndProcessAccordingToResult(
+                            targetPermanents: new List<Permanent>() { card.PermanentOfThisCard() },
+                            activateClass: activateClass, successProcess: permanents => SuccessProcess(),
+                            failureProcess: null));
+                }                
+
+                IEnumerator SuccessProcess()
+                {
+     
                     Permanent selectedPermanent = null;
 
                     int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition));
@@ -303,7 +316,7 @@ namespace DCGO.CardEffects.BT17
                             activateClass: activateClass,
                             successProcess: null));
                     }
-                }                
+                }
             }
             #endregion
 

+ 2 - 2
Assets/Scripts/CardEffectFactory/KeyWordEffects/BlastDNADigivolution.cs

@@ -35,8 +35,8 @@ public partial class CardEffectFactory
 
         foreach (BlastDNACondition DNACondition in blastDNAConditions)
         {
-            DNACondition.Permanents = fieldPermanents.Filter(permanent => permanent.TopCard.ContainsCardName(DNACondition.Name));
-            DNACondition.CardSources = card.Owner.HandCards.Filter(cardSource => cardSource.ContainsCardName(DNACondition.Name));
+            DNACondition.Permanents = fieldPermanents.Filter(permanent => permanent.TopCard.EqualsCardName(DNACondition.Name));
+            DNACondition.CardSources = card.Owner.HandCards.Filter(cardSource => cardSource.EqualsCardName(DNACondition.Name));
 
             permanentSources.AddRange(DNACondition.Permanents);
             handSources.AddRange(DNACondition.CardSources);

+ 1 - 1
Assets/Scripts/PatchNotes.cs

@@ -17,7 +17,7 @@ public class PatchNotes : OffAnimation
 
     public void OnClickOpenPatchNotesPanelButton()
     {
-        Application.OpenURL("http://dcgo.online/");
+        Application.OpenURL("https://dcgo.online/");
         /*if (_isOpen)
         {
             ClosePatchNotesPanel();