Selaa lähdekoodia

Saturday Night updates (~50%)

mbunch_kascope 1 vuosi sitten
vanhempi
sitoutus
fb6a920386
38 muutettua tiedostoa jossa 147 lisäystä ja 242 poistoa
  1. 2 2
      Assets/CardBaseEntity/P/Blue/Tamer/東御手洗清司郎-P-064.asset
  2. 2 2
      Assets/CardBaseEntity/ST17/Green/Tamer/HenryWong-ST17-10.asset
  3. 6 3
      Assets/CardEffect/BT17/Blue/Lobomon_BT17_022.cs
  4. 11 12
      Assets/CardEffect/BT17/Red/TakatoMatsuki_BT17_080.cs
  5. 2 2
      Assets/CardEffect/BT17/White/Greymon_BT17_102.cs
  6. 12 12
      Assets/CardEffect/BT17/White/Omnimon_BT17_078.cs
  7. 8 3
      Assets/CardEffect/BT17/Yellow/AwakeningoftheSun_BT17_099.cs
  8. 1 9
      Assets/CardEffect/EX2/Blue/KitagawaKenta_EX2_057.cs
  9. 1 9
      Assets/CardEffect/EX3/Blue/Paledramon_EX3_019.cs
  10. 1 0
      Assets/CardEffect/EX3/White/KuriharaHina_EX3_065.cs
  11. 1 1
      Assets/CardEffect/EX5/Blue/Lunamon_EX5_016.cs
  12. 0 28
      Assets/CardEffect/EX6/Blue/Xiangpengmon_EX6_015.cs
  13. 2 23
      Assets/CardEffect/EX6/Blue/Xiquemon_EX6_013.cs
  14. 2 2
      Assets/CardEffect/EX6/Green/Cherubimon_EX6_035.cs
  15. 4 4
      Assets/CardEffect/EX6/Purple/Barbamon_EX6_059.cs
  16. 1 1
      Assets/CardEffect/EX6/Red/Durandamon_EX6_010.cs
  17. 1 1
      Assets/CardEffect/EX6/White/UltimateChaosmon_EX6_062.cs
  18. 14 27
      Assets/CardEffect/EX6/Yellow/ArkhaiAngemon_EX6_021.cs
  19. 0 27
      Assets/CardEffect/EX6/Yellow/Dominimon_EX6_030.cs
  20. 1 1
      Assets/CardEffect/EX7/Black/Gigadramon_EX7_044.cs
  21. 18 2
      Assets/CardEffect/EX7/Black/Gundramon_EX7_048.cs
  22. 7 1
      Assets/CardEffect/EX7/Blue/ShogunGekomon_EX7_022.cs
  23. 2 2
      Assets/CardEffect/EX7/Green/GrandGalemon_EX7_034.cs
  24. 2 2
      Assets/CardEffect/EX7/Purple/BeelStarmonXAntibody_EX7_073.cs
  25. 3 3
      Assets/CardEffect/EX7/Purple/Loudmon_EX7_057.cs
  26. 1 0
      Assets/CardEffect/EX7/Purple/SeventhFascination_EX7_072.cs
  27. 13 31
      Assets/CardEffect/EX7/Red/ChaosTriangular_EX7_066.cs
  28. 1 9
      Assets/CardEffect/EX7/Red/ToyAgumon_EX7_008.cs
  29. 4 3
      Assets/CardEffect/LM/Blue/TeslaJellymon_LM_003.cs
  30. 2 7
      Assets/CardEffect/LM/Blue/Thetismon_LM_004.cs
  31. 1 0
      Assets/CardEffect/LM/Purple/Gammamon_LM_016.cs
  32. 1 0
      Assets/CardEffect/LM/Red/Siriusmon_LM_001.cs
  33. 1 1
      Assets/CardEffect/ST10/Yellow/Mustymon_ST10_06.cs
  34. 1 1
      Assets/CardEffect/ST17/Green/HenryWong_ST17_10.cs
  35. 6 2
      Assets/CardEffect/ST17/Green/MegaGargomonAce_ST17_08.cs
  36. 3 9
      Assets/CardEffect/ST17/Green/Rapidmon_ST17_06.cs
  37. 1 0
      Assets/CardEffect/ST18/Green/AnemoiEmbrace_ST18_15.cs
  38. 8 0
      Assets/Scripts/SelectCardEffect.cs

+ 2 - 2
Assets/CardBaseEntity/P/Blue/Tamer/東御手洗清司郎-P-064.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:8971cb7e6967e24474db5c6d25d7ff7035c083ef58abb88ba4b7751d69f4d680
-size 2658
+oid sha256:2753df3f4cc2baf18ed090a32047600b0d470309c2412312641b415dbafa37ee
+size 2263

+ 2 - 2
Assets/CardBaseEntity/ST17/Green/Tamer/HenryWong-ST17-10.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c81d4eb793adb269a476c14a6fbde3ec4c92a42a5bb1c66693f6b769801f1872
-size 1515
+oid sha256:e7e8da3f84d4adfa5edda9887f0724e9da7f8a1070a0f9965cff927edc142492
+size 1513

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

@@ -147,11 +147,14 @@ namespace DCGO.CardEffects.BT17
                             {
                                 if (thisPermanent.TopCard != null)
                                 {
-                                    if (thisPermanent.CanBeDestroyedBySkill(activateClass1))
+                                    if (thisPermanent.TopCard.IsDigimon)
                                     {
-                                        if (!thisPermanent.TopCard.CanNotBeAffected(activateClass1))
+                                        if (thisPermanent.CanBeDestroyedBySkill(activateClass1))
                                         {
-                                            return true;
+                                            if (!thisPermanent.TopCard.CanNotBeAffected(activateClass1))
+                                            {
+                                                return true;
+                                            }
                                         }
                                     }
                                 }

+ 11 - 12
Assets/CardEffect/BT17/Red/TakatoMatsuki_BT17_080.cs

@@ -129,16 +129,9 @@ namespace DCGO.CardEffects.BT17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card) && CardEffectCommons.IsOwnerTurn(card))
+                    if (CardEffectCommons.IsExistOnBattleArea(card))
                     {
-                        if (!card.PermanentOfThisCard().IsToken)
-                        {
-                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                            {
-                                return CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectGrowlmonCardCondition) &&
-                                       CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectWarGrowlmonCardCondition);
-                            }
-                        }
+                        return CardEffectCommons.IsOwnerTurn(card);
                     }
 
                     return false;
@@ -148,8 +141,14 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsExistOnBattleArea(card))
                     {
-                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                            return true;
+                        if (!card.PermanentOfThisCard().IsToken)
+                        {
+                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                            {
+                                return CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectGrowlmonCardCondition) &&
+                                       CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectWarGrowlmonCardCondition);
+                            }
+                        }
                     }
 
                     return false;
@@ -323,7 +322,7 @@ namespace DCGO.CardEffects.BT17
                                 payCost: false,
                                 reduceCostTuple: null,
                                 fixedCostTuple: null,
-                                ignoreDigivolutionRequirementFixedCost: 0,
+                                ignoreDigivolutionRequirementFixedCost: 1,
                                 isHand: true,
                                 activateClass: activateClass,
                                 successProcess: null,

+ 2 - 2
Assets/CardEffect/BT17/White/Greymon_BT17_102.cs

@@ -157,7 +157,7 @@ namespace DCGO.CardEffects.BT17
                     {
                         if (cardSource.ContainsCardName("Tai Kamiya") || cardSource.ContainsCardName("Kari Kamiya"))
                         {
-                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: true, cardEffect: activateClass))
+                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
                             {
                                 return true;
                             }
@@ -269,7 +269,7 @@ namespace DCGO.CardEffects.BT17
                     {
                         if (cardSource.ContainsCardName("Tai Kamiya") || cardSource.ContainsCardName("Kari Kamiya"))
                         {
-                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: true, cardEffect: activateClass))
+                            if (CardEffectCommons.CanPlayAsNewPermanent(cardSource: cardSource, payCost: false, cardEffect: activateClass))
                             {
                                 return true;
                             }

+ 12 - 12
Assets/CardEffect/BT17/White/Omnimon_BT17_078.cs

@@ -171,7 +171,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsJogress(hashtable))
                     {
-                        int selectedLevel = 0;
+                        Permanent selectedPermanent = null;
 
                         if (CardEffectCommons.HasMatchConditionPermanent(IsOpponentsDigimon))
                         {
@@ -189,7 +189,7 @@ namespace DCGO.CardEffects.BT17
                                 canEndNotMax: false,
                                 selectPermanentCoroutine: SelectPermanentLevelCoroutine,
                                 afterSelectPermanentCoroutine: null,
-                                mode: SelectPermanentEffect.Mode.PutLibraryBottom,
+                                mode: SelectPermanentEffect.Mode.Custom,
                                 cardEffect: activateClass);
 
                             selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to destory.", "The opponent is selecting 1 Digimon to destory.");
@@ -200,15 +200,15 @@ namespace DCGO.CardEffects.BT17
                         IEnumerator SelectPermanentLevelCoroutine(Permanent permanent)
                         {
                             if (permanent != null)
-                                selectedLevel = permanent.Level;
+                                selectedPermanent = permanent;
 
                             yield return null;
                         }
 
-                        if(selectedLevel > 0)
+                        if(selectedPermanent.TopCard.HasLevel)
                         {
                             yield return ContinuousController.instance.StartCoroutine(new DeckBottomBounceClass(
-                                deckBounceTargetPermanents: card.Owner.Enemy.GetBattleAreaDigimons().Filter(permanent => permanent.Level == selectedLevel),
+                                deckBounceTargetPermanents: card.Owner.Enemy.GetBattleAreaDigimons().Filter(permanent => permanent.Level == selectedPermanent.Level),
                                 hashtable: hashtable).DeckBounce());
                         }
                     }
@@ -272,7 +272,7 @@ namespace DCGO.CardEffects.BT17
                 {
                     if (CardEffectCommons.IsJogress(hashtable))
                     {
-                        int selectedLevel = 0;
+                        Permanent selectedPermanent = null;
 
                         if (CardEffectCommons.HasMatchConditionPermanent(IsOpponentsDigimon))
                         {
@@ -290,26 +290,26 @@ namespace DCGO.CardEffects.BT17
                                 canEndNotMax: false,
                                 selectPermanentCoroutine: SelectPermanentLevelCoroutine,
                                 afterSelectPermanentCoroutine: null,
-                                mode: SelectPermanentEffect.Mode.PutLibraryBottom,
+                                mode: SelectPermanentEffect.Mode.Custom,
                                 cardEffect: activateClass);
 
-                            selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to bottom deck.", "The opponent is selecting 1 Digimon to bottom deck.");
+                            selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to destory.", "The opponent is selecting 1 Digimon to destory.");
 
                             yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
                         }
 
                         IEnumerator SelectPermanentLevelCoroutine(Permanent permanent)
                         {
-                            if (permanent != null && permanent.TopCard.HasLevel)
-                                selectedLevel = permanent.Level;
+                            if (permanent != null)
+                                selectedPermanent = permanent;
 
                             yield return null;
                         }
 
-                        if (selectedLevel > 2)
+                        if (selectedPermanent.TopCard.HasLevel)
                         {
                             yield return ContinuousController.instance.StartCoroutine(new DeckBottomBounceClass(
-                                deckBounceTargetPermanents: card.Owner.Enemy.GetBattleAreaDigimons().Filter(permanent => permanent.Level == selectedLevel && !permanent.TopCard.CanNotBeAffected(activateClass)),
+                                deckBounceTargetPermanents: card.Owner.Enemy.GetBattleAreaDigimons().Filter(permanent => permanent.Level == selectedPermanent.Level),
                                 hashtable: hashtable).DeckBounce());
                         }
                     }

+ 8 - 3
Assets/CardEffect/BT17/Yellow/AwakeningoftheSun_BT17_099.cs

@@ -164,7 +164,7 @@ namespace DCGO.CardEffects.BT17
             #endregion
 
             #region All Turns - Delay
-            if (timing == EffectTiming.OnDestroyedAnyone || timing == EffectTiming.WhenReturntoHandAnyone)
+            if (timing == EffectTiming.OnDestroyedAnyone || timing == EffectTiming.OnAddHand)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Digivolve for free", CanUseCondition, card);
@@ -197,9 +197,14 @@ namespace DCGO.CardEffects.BT17
                             return true;
                         }
 
-                        if (CardEffectCommons.CanTriggerWhenPermanentRemoveField(hashtable, PermanentCondition))
+                        if (CardEffectCommons.CanTriggerOnHandAdded(hashtable, card.Owner, null))
                         {
-                            return true;
+                            List<Permanent> list = CardEffectCommons.GetPermanentsFromHashtable(hashtable);
+
+                            if (list.Filter(PermanentCondition).Count > 0)
+                            {
+                                return true;
+                            }
                         }
                     }
 

+ 1 - 9
Assets/CardEffect/EX2/Blue/KitagawaKenta_EX2_057.cs

@@ -108,15 +108,7 @@ public class KitagawaKenta_EX2_057 : CEntity_Effect
 
             bool CanSelectPermanentCondition(Permanent permanent)
             {
-                if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
-                {
-                    if (permanent.DigivolutionCards.Count((cardSource) => !cardSource.CanNotTrashFromDigivolutionCards(activateClass)) >= 1)
-                    {
-                        return true;
-                    }
-                }
-
-                return false;
+                return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
             }
 
             bool PermanentCondition(Permanent permanent)

+ 1 - 9
Assets/CardEffect/EX3/Blue/Paledramon_EX3_019.cs

@@ -26,15 +26,7 @@ public class Paledramon_EX3_019 : CEntity_Effect
 
             bool CanSelectPermanentCondition(Permanent permanent)
             {
-                if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
-                {
-                    if (permanent.DigivolutionCards.Count(CanSelectCardCondition) >= 1)
-                    {
-                        return true;
-                    }
-                }
-
-                return false;
+                return CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card);
             }
 
             bool CanSelectCardCondition(CardSource cardSource)

+ 1 - 0
Assets/CardEffect/EX3/White/KuriharaHina_EX3_065.cs

@@ -227,6 +227,7 @@ public class KuriharaHina_EX3_065 : CEntity_Effect
 
                                     if (selectedEffect.CanUse(effectHashtable))
                                     {
+                                        selectedEffect.SetIsDigimonEffect(true);
                                         yield return ContinuousController.instance.StartCoroutine(((ActivateICardEffect)selectedEffect).Activate_Optional_Effect_Execute(effectHashtable));
                                     }
                                 }

+ 1 - 1
Assets/CardEffect/EX5/Blue/Lunamon_EX5_016.cs

@@ -149,7 +149,7 @@ public class Lunamon_EX5_016 : CEntity_Effect
 
             string EffectDiscription()
             {
-                return "[Main][Once Per Turn] By suspending 1 of your green Digimon, you may play 1 Digimon card with [Vegetation], [Plant] or [Fairy] in its traits and 3000 DP or less from your hand without paying its memory cost.";
+                return "[Main] [Once Per Turn] By placing the top card of this Digimon with the [Night Claw] or [Light Fang] trait as this Digimon's bottom digivolution card, gain 2 memory.";
             }
 
             bool CanUseCondition(Hashtable hashtable)

+ 0 - 28
Assets/CardEffect/EX6/Blue/Xiangpengmon_EX6_015.cs

@@ -11,34 +11,6 @@ namespace DCGO.CardEffects.EX6
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             
-            #region Rule Text
-            
-            if (timing == EffectTiming.None)
-            {
-                // Trait Rule Aquatic Type
-                ChangeTraitsClass changeTraitsClass = new ChangeTraitsClass();
-                changeTraitsClass.SetUpICardEffect("Trait: Has [Aquatic] Type", CanUseCondition, card);
-                changeTraitsClass.SetUpChangeTraitsClass(changeeTraits: ChangeTraits);
-                cardEffects.Add(changeTraitsClass);
-                
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-                
-                List<string> ChangeTraits(CardSource cardSource, List<string> cardTraits)
-                {
-                    if (cardSource == card)
-                    {
-                        cardTraits.Add("Aquatic");
-                    }
-                    
-                    return cardTraits;
-                }
-            }
-            
-            #endregion
-            
             #region On Play/When Digivolving Shared
             
             bool CanSelectSharedOwnPermanentCondition(Permanent permanent)

+ 2 - 23
Assets/CardEffect/EX6/Blue/Xiquemon_EX6_013.cs

@@ -9,31 +9,10 @@ namespace DCGO.CardEffects.EX6
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             
-            #region Rule Text, Inherited Effect
+            #region Inherited Effect
             
             if (timing == EffectTiming.None)
-            {
-                // Trait Rule Aquatic Type
-                ChangeTraitsClass changeTraitsClass = new ChangeTraitsClass();
-                changeTraitsClass.SetUpICardEffect("Trait: Has [Aquatic] Type", CanUseCondition, card);
-                changeTraitsClass.SetUpChangeTraitsClass(changeeTraits: ChangeTraits);
-                cardEffects.Add(changeTraitsClass);
-                
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-                
-                List<string> ChangeTraits(CardSource cardSource, List<string> cardTraits)
-                {
-                    if (cardSource == card)
-                    {
-                        cardTraits.Add("Aquatic");
-                    }
-                    
-                    return cardTraits;
-                }
-                
+            {                
                 // Jamming Inherited Effect
                 cardEffects.Add(CardEffectFactory.JammingSelfStaticEffect(
                     isInheritedEffect: true,

+ 2 - 2
Assets/CardEffect/EX6/Green/Cherubimon_EX6_035.cs

@@ -65,7 +65,7 @@ namespace DCGO.CardEffects.EX6
                 }
 
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 Digimon from hand", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Play 1 Digimon from hand, Then -4k DP for each digimon", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 activateClass.SetHashString("Play1Digimon_EX6_035");
                 cardEffects.Add(activateClass);
@@ -203,7 +203,7 @@ namespace DCGO.CardEffects.EX6
                 }
 
                 ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Play 1 Digimon from hand, Then -6k DP for each digimon", CanUseCondition, card);
+                activateClass.SetUpICardEffect("Play 1 Digimon from hand, Then -4k DP for each digimon", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 activateClass.SetHashString("Play1Digimon_EX6_035");
                 cardEffects.Add(activateClass);

+ 4 - 4
Assets/CardEffect/EX6/Purple/Barbamon_EX6_059.cs

@@ -79,8 +79,8 @@ namespace DCGO.CardEffects.EX6
                         canEndNotMax: false,
                         isShowOpponent: false,
                         mode: SelectCardEffect.Mode.Discard,
-                        root: SelectCardEffect.Root.Custom,
-                        customRootCardList: card.Owner.Enemy.HandCards,
+                        root: SelectCardEffect.Root.EnemyHand,
+                        customRootCardList: null,
                         canLookReverseCard: false,
                         selectPlayer: card.Owner,
                         cardEffect: activateClass);
@@ -159,8 +159,8 @@ namespace DCGO.CardEffects.EX6
                         canEndNotMax: false,
                         isShowOpponent: false,
                         mode: SelectCardEffect.Mode.Discard,
-                        root: SelectCardEffect.Root.Custom,
-                        customRootCardList: card.Owner.Enemy.HandCards,
+                        root: SelectCardEffect.Root.EnemyHand,
+                        customRootCardList: null,
                         canLookReverseCard: false,
                         selectPlayer: card.Owner,
                         cardEffect: activateClass);

+ 1 - 1
Assets/CardEffect/EX6/Red/Durandamon_EX6_010.cs

@@ -300,7 +300,7 @@ namespace DCGO.CardEffects.EX6
                     {
                         if (CardEffectCommons.IsOwnerTurn(card))
                         {
-                            if (card.PermanentOfThisCard().TopCard.ContainsCardName("RagnaLoardmon"))
+                            if (card.PermanentOfThisCard().TopCard.EqualsCardName("RagnaLoardmon"))
                             {
                                 return true;
                             }

+ 1 - 1
Assets/CardEffect/EX6/White/UltimateChaosmon_EX6_062.cs

@@ -221,7 +221,7 @@ namespace DCGO.CardEffects.EX6
                                 canEndSelectCondition: CanEndSelectCondition,
                                 maxCount: maxCount,
                                 canNoSelect: false,
-                                canEndNotMax: true,
+                                canEndNotMax: false,
                                 selectPermanentCoroutine: null,
                                 afterSelectPermanentCoroutine: null,
                                 mode: SelectPermanentEffect.Mode.PutLibraryBottom,

+ 14 - 27
Assets/CardEffect/EX6/Yellow/ArkhaiAngemon_EX6_021.cs

@@ -11,33 +11,6 @@ namespace DCGO.CardEffects.EX6
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
             
-            #region Rule Text
-            
-            if (timing == EffectTiming.None)
-            {
-                ChangeTraitsClass changeTraitsClass = new ChangeTraitsClass();
-                changeTraitsClass.SetUpICardEffect("Trait: Has [Angel] Type", CanUseCondition, card);
-                changeTraitsClass.SetUpChangeTraitsClass(changeeTraits: ChangeTraits);
-                cardEffects.Add(changeTraitsClass);
-                
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-                
-                List<string> ChangeTraits(CardSource cardSource, List<string> cardTraits)
-                {
-                    if (cardSource == card)
-                    {
-                        cardTraits.Add("Angel");
-                    }
-                    
-                    return cardTraits;
-                }
-            }
-            
-            #endregion
-            
             #region On Play/ When Digivolving Shared
 
             bool CanSelectPermanentSharedCondition(Permanent permanent)
@@ -134,6 +107,20 @@ namespace DCGO.CardEffects.EX6
                                 ? "From Top Of Security"
                                 : "From Bottom Of Security";
 
+                            #region Log
+                            if (chosenSecurityCard != null)
+                            {
+                                string log = "";
+
+                                log += $"\nAdded Card {placementValue} to Hand:";
+                                log += $"\n{chosenSecurityCard.BaseENGCardNameFromEntity}({chosenSecurityCard.CardID})";
+
+                                log += "\n";
+
+                                GManager.instance.playLog.AddLogString(log);
+                            }
+                            #endregion
+
                             yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(new List<CardSource>() { chosenSecurityCard }, $"Added Hand Card {placementValue}", true, true));
                             yield return ContinuousController.instance.StartCoroutine(
                                 CardObjectController.AddHandCards(new List<CardSource>() { chosenSecurityCard }, false,

+ 0 - 27
Assets/CardEffect/EX6/Yellow/Dominimon_EX6_030.cs

@@ -11,33 +11,6 @@ namespace DCGO.CardEffects.EX6
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
 
-            #region Rule Text
-
-            if (timing == EffectTiming.None)
-            {
-                ChangeTraitsClass changeTraitsClass = new ChangeTraitsClass();
-                changeTraitsClass.SetUpICardEffect("Trait: Has [Angel] Type", CanUseCondition, card);
-                changeTraitsClass.SetUpChangeTraitsClass(changeeTraits: ChangeTraits);
-                cardEffects.Add(changeTraitsClass);
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return true;
-                }
-
-                List<string> ChangeTraits(CardSource cardSource, List<string> cardTraits)
-                {
-                    if (cardSource == card)
-                    {
-                        cardTraits.Add("Angel");
-                    }
-
-                    return cardTraits;
-                }
-            }
-
-            #endregion
-
             #region When Digivolving
 
             if (timing == EffectTiming.OnEnterFieldAnyone)

+ 1 - 1
Assets/CardEffect/EX7/Black/Gigadramon_EX7_044.cs

@@ -15,7 +15,7 @@ namespace DCGO.CardEffects.EX7
             {
                 bool PermanentCondition(Permanent targetPermanent)
                 {
-                    return targetPermanent.TopCard.IsLevel4 && targetPermanent.TopCard.ContainsTraits("Three Musketeers");
+                    return targetPermanent.TopCard.IsLevel4 && targetPermanent.TopCard.HasText("Three Musketeers");
                 }
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(

+ 18 - 2
Assets/CardEffect/EX7/Black/Gundramon_EX7_048.cs

@@ -80,6 +80,8 @@ namespace DCGO.CardEffects.EX7
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
+                    CardSource selectedCard = null;
+
                     yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.SimplifiedRevealDeckTopCardsAndSelect(
                         revealCount: 6,
                         simplifiedSelectCardConditions:
@@ -98,10 +100,16 @@ namespace DCGO.CardEffects.EX7
                     ));
 
                     IEnumerator SelectCardCoroutine(CardSource cardSource)
+                    {
+                        selectedCard = cardSource;
+                        yield return null;
+                    }
+
+                    if (selectedCard != null)
                     {
                         yield return ContinuousController.instance.StartCoroutine(
                             CardEffectCommons.PlayOptionCards(
-                                cardSources: new List<CardSource>() { cardSource },
+                                cardSources: new List<CardSource>() { selectedCard },
                                 activateClass: activateClass,
                                 payCost: false,
                                 root: SelectCardEffect.Root.Library
@@ -135,6 +143,8 @@ namespace DCGO.CardEffects.EX7
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
+                    CardSource selectedCard = null;
+
                     yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.SimplifiedRevealDeckTopCardsAndSelect(
                         revealCount: 6,
                         simplifiedSelectCardConditions:
@@ -153,10 +163,16 @@ namespace DCGO.CardEffects.EX7
                     ));
 
                     IEnumerator SelectCardCoroutine(CardSource cardSource)
+                    {
+                        selectedCard = cardSource;
+                        yield return null;
+                    }
+
+                    if (selectedCard != null)
                     {
                         yield return ContinuousController.instance.StartCoroutine(
                             CardEffectCommons.PlayOptionCards(
-                                cardSources: new List<CardSource>() { cardSource },
+                                cardSources: new List<CardSource>() { selectedCard },
                                 activateClass: activateClass,
                                 payCost: false,
                                 root: SelectCardEffect.Root.Library

+ 7 - 1
Assets/CardEffect/EX7/Blue/ShogunGekomon_EX7_022.cs

@@ -50,7 +50,13 @@ namespace DCGO.CardEffects.EX7
 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 {
-                    return CardEffectCommons.IsPermanentExistsOnOpponentBattleArea(permanent, card);
+                    if(CardEffectCommons.IsPermanentExistsOnOpponentBattleArea(permanent, card))
+                    {
+                        if(permanent.IsDigimon || permanent.IsTamer)
+                            return true;
+                    }
+
+                    return false;
                 }
 
                 bool CanUseCondition(Hashtable hashtable)

+ 2 - 2
Assets/CardEffect/EX7/Green/GrandGalemon_EX7_034.cs

@@ -31,7 +31,7 @@ namespace DCGO.CardEffects.EX7
                 string EffectDescription()
                 {
                     return
-                        "[When Digivolving] Suspend 1 Digimon. If this effect suspends your Digimon, this Digimon isn't affected by your opponent's Digimon's effects until the end of their turn.";
+                        "[When Digivolving] You may suspend 1 Digimon. If this effect suspended your Digimon, this Digimon isn't affected by the effect of your opponent's Digimon's until the end of their turn.";
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -65,7 +65,7 @@ namespace DCGO.CardEffects.EX7
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
                             maxCount: 1,
-                            canNoSelect: false,
+                            canNoSelect: true,
                             canEndNotMax: false,
                             selectPermanentCoroutine: SelectPermanentCoroutine,
                             afterSelectPermanentCoroutine: null,

+ 2 - 2
Assets/CardEffect/EX7/Purple/BeelStarmonXAntibody_EX7_073.cs

@@ -16,7 +16,7 @@ namespace DCGO.CardEffects.EX7
             {
                 bool PermanentCondition(Permanent targetPermanent)
                 {
-                    return targetPermanent.TopCard.HasText("Three Musketeers") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 6 || targetPermanent.TopCard.HasText("ThreeMusketeers") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 6;
+                    return targetPermanent.TopCard.EqualsTraits("Three Musketeers") && targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 6 && targetPermanent.TopCard.EqualsTraits("X Antibody");
                 }
 
                 cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 1, ignoreDigivolutionRequirement: false, card: card, condition: null));
@@ -63,7 +63,7 @@ namespace DCGO.CardEffects.EX7
                 {
                     if (cardSource.IsOption)
                     {
-                        if (cardSource.EqualsTraits("Three Musketeers"))
+                        if (cardSource.HasText("Three Musketeers"))
                         {
                             if (cardSource.HasUseCost)
                             {

+ 3 - 3
Assets/CardEffect/EX7/Purple/Loudmon_EX7_057.cs

@@ -18,7 +18,7 @@ namespace DCGO.CardEffects.EX7
                 {
                     if (targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.Level == 4)
                     {
-                        if (targetPermanent.TopCard.CardTraits.Contains("Dark Dragon") || targetPermanent.TopCard.CardTraits.Contains("Evil Dragon"))
+                        if (targetPermanent.TopCard.EqualsTraits("Dark Dragon") || targetPermanent.TopCard.EqualsTraits("Evil Dragon"))
                         {
                             return true;
                         }
@@ -60,7 +60,7 @@ namespace DCGO.CardEffects.EX7
                 {
                     if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
                     {
-                        if (permanent.DP <= 7000)
+                        if (permanent.DP <= card.Owner.MaxDP_DeleteEffect(7000, activateClass))
                         {
                             return true;
                         }
@@ -162,7 +162,7 @@ namespace DCGO.CardEffects.EX7
                 {
                     if (CardEffectCommons.IsPermanentExistsOnOpponentBattleAreaDigimon(permanent, card))
                     {
-                        if (permanent.DP <= 7000)
+                        if (permanent.DP <= card.Owner.MaxDP_DeleteEffect(7000, activateClass))
                         {
                             return true;
                         }

+ 1 - 0
Assets/CardEffect/EX7/Purple/SeventhFascination_EX7_072.cs

@@ -156,6 +156,7 @@ namespace DCGO.CardEffects.EX7
                             ActivateClass activateClass1 = new ActivateClass();
                             activateClass1.SetUpICardEffect("Delete 1 of your Digimon", CanUseCondition2, cardSource);
                             activateClass1.SetUpActivateClass(CanActivateCondition2, ActivateCoroutine1, -1, false, EffectDiscription1());
+                            activateClass1.SetEffectSourceCard(cardSource);
                             cardEffects.Add(activateClass1);
 
                             if (cardSource.PermanentOfThisCard() != null)

+ 13 - 31
Assets/CardEffect/EX7/Red/ChaosTriangular_EX7_066.cs

@@ -17,7 +17,7 @@ namespace DCGO.CardEffects.EX7
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("+3000DP", CanUseCondition, card);
-                activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
 
@@ -36,6 +36,12 @@ namespace DCGO.CardEffects.EX7
                     return CardEffectCommons.CanTriggerOnTrashSelfDigivolutionCard(hashtable, cardEffect => cardEffect != null, card);
                 }
 
+                bool CanActivateCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.IsExistOnTrash(card) &&
+                           CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition);
+                }
+
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 {
                     if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
@@ -81,7 +87,7 @@ namespace DCGO.CardEffects.EX7
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (card.Owner.GetBattleAreaDigimons().Count(permanent => permanent.TopCard.CardTraits.Contains("Three Musketeers")) >= 1 || card.Owner.GetBattleAreaDigimons().Count(permanent => permanent.TopCard.CardTraits.Contains("ThreeMusketeers")) >= 1)
+                    if (card.Owner.GetBattleAreaDigimons().Count(permanent => permanent.TopCard.EqualsTraits("Three Musketeers")) >= 1)
                     {
                         return true;
                     }
@@ -106,38 +112,14 @@ namespace DCGO.CardEffects.EX7
             {
                 int count()
                 {
-                    List<Permanent> cards = card.Owner.GetBattleAreaPermanents();
-
-                    bool end = false;
+                    List<Permanent> cards = new List<Permanent>();
 
-                    while (true)
+                    foreach (Permanent card in card.Owner.GetBattleAreaPermanents().Filter(permanent => permanent.TopCard.EqualsTraits("Three Musketeers")))
                     {
-                        if (cards.Count == 0)
-                        {
-                            end = true;
-                        }
-
-                        if (end)
-                        {
-                            break;
-                        }
-
-                        for (int i = 0; i < cards.Count; i++)
-                        {
-                            Permanent searchTargetPermanent = cards[i];
-
-                            if (cards.Some(permanent => permanent != searchTargetPermanent && permanent.TopCard.HasSameCardName(searchTargetPermanent.TopCard)))
-                            {
-                                cards.Remove(searchTargetPermanent);
-                                break;
-                            }
-
-                            if (i == cards.Count - 1)
-                            {
-                                end = true;
-                            }
-                        }
+                        if (cards.Some(permanent => !permanent.TopCard.HasSameCardName(card.TopCard)))
+                            cards.Add(card);
                     }
+
                     return cards.Count;
                 }
 

+ 1 - 9
Assets/CardEffect/EX7/Red/ToyAgumon_EX7_008.cs

@@ -36,15 +36,7 @@ namespace DCGO.CardEffects.EX7
 
                 bool CanSelectCardCondition(CardSource cardSource)
                 {
-                    if (cardSource.IsDigimon)
-                    {
-                        if (cardSource.HasText("Three Musketeers"))
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
+                    return cardSource.HasText("Three Musketeers");
                 }
 
                 bool CanSelectCardCondition1(CardSource cardSource)

+ 4 - 3
Assets/CardEffect/LM/Blue/TeslaJellymon_LM_003.cs

@@ -43,14 +43,15 @@ namespace DCGO.CardEffects.LM
                     {
                         return true;
                     }
+
                     return false;
                 }
 
                 bool PermanentCondition(Permanent permanent)
                 {
-                    if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
+                    if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(permanent))
                     {
-                        if(permanent.TopCard == card)
+                        if(permanent.cardSources.Contains(card))
                         {
                             return true;
                         }
@@ -113,7 +114,7 @@ namespace DCGO.CardEffects.LM
                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotBeDeletedPlayerEffect(
                             permanentCondition: PermanentCondition,
                             canNotBeDestroyedByBattleCondition: CanNotBeDestroyedByBattleCondition,
-                            effectDuration: EffectDuration.UntilOwnerTurnEnd,
+                            effectDuration: EffectDuration.UntilEachTurnEnd,
                             activateClass: activateClass,
                             effectName: "Can't be deleted by battle"));
                     }

+ 2 - 7
Assets/CardEffect/LM/Blue/Thetismon_LM_004.cs

@@ -258,7 +258,7 @@ namespace DCGO.CardEffects.LM
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.CanTriggerOnTrashHand(hashtable, null, CardCondition))
                         {
@@ -271,12 +271,7 @@ namespace DCGO.CardEffects.LM
 
                 bool CanActivateAllTurnsCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)

+ 1 - 0
Assets/CardEffect/LM/Purple/Gammamon_LM_016.cs

@@ -26,6 +26,7 @@ namespace DCGO.CardEffects.LM
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Digivolve from trash", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
+                activateClass.SetHashString("AllTurns_LM_016");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()

+ 1 - 0
Assets/CardEffect/LM/Red/Siriusmon_LM_001.cs

@@ -305,6 +305,7 @@ namespace DCGO.CardEffects.LM
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Gain Memory", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
+                activateClass.SetHashString("AllTurn_LM_001");
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()

+ 1 - 1
Assets/CardEffect/ST10/Yellow/Mustymon_ST10_06.cs

@@ -307,7 +307,7 @@ public class Mustymon_ST10_06 : CEntity_Effect
 
             bool PermanentCondition(Permanent permanent)
             {
-                if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card))
+                if (permanent.IsDigimon)
                 {
                     if (permanent != card.PermanentOfThisCard())
                     {

+ 1 - 1
Assets/CardEffect/ST17/Green/HenryWong_ST17_10.cs

@@ -296,7 +296,7 @@ namespace DCGO.CardEffects.ST17
                                 cardCondition: CanSelectCardCondition2,
                                 payCost: true,
                                 reduceCostTuple: null,
-                                fixedCostTuple: (fixedCost: 4, fixedCostCardCondition: null),
+                                fixedCostTuple: null,
                                 ignoreDigivolutionRequirementFixedCost: 4,
                                 isHand: true,
                                 activateClass: activateClass,

+ 6 - 2
Assets/CardEffect/ST17/Green/MegaGargomonAce_ST17_08.cs

@@ -199,7 +199,10 @@ namespace DCGO.CardEffects.ST17
                                     {
                                         if (permanent.IsDigimon || permanent.IsTamer)
                                         {
-                                            return true;
+                                            if (!permanent.TopCard.CanNotBeAffected(canNotPutFieldClass))
+                                            {
+                                                return true;
+                                            }
                                         }
                                     }
                                 }
@@ -214,7 +217,8 @@ namespace DCGO.CardEffects.ST17
                                 {
                                     if (cardSource.IsDigimon || cardSource.IsTamer)
                                     {
-                                        if (!cardSource.CanNotBeAffected(canNotPutFieldClass)){
+                                        if (!cardSource.CanNotBeAffected(canNotPutFieldClass))
+                                        {
                                             return true;
                                         }
                                     }

+ 3 - 9
Assets/CardEffect/ST17/Green/Rapidmon_ST17_06.cs

@@ -82,21 +82,15 @@ namespace DCGO.CardEffects.ST17
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.CanTriggerWhenPermanentSuspends(hashtable, (permanent) => permanent == card.PermanentOfThisCard());
-            }
+                    return CardEffectCommons.CanTriggerWhenSelfPermanentSuspends(hashtable, card);
+                }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
 
-
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                     if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))

+ 1 - 0
Assets/CardEffect/ST18/Green/AnemoiEmbrace_ST18_15.cs

@@ -134,6 +134,7 @@ namespace DCGO.CardEffects.ST18
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Return 1 of your opponent's suspended Digimon to the bottom of the deck", CanUseCondition, card);
                 activateClass.SetUpActivateClass(null, ActivateCoroutine, -1, false, EffectDescription());
+                activateClass.SetIsSecurityEffect(true);
                 cardEffects.Add(activateClass);
 
                 string EffectDescription()

+ 8 - 0
Assets/Scripts/SelectCardEffect.cs

@@ -168,6 +168,7 @@ public class SelectCardEffect : MonoBehaviourPunCallbacks
         Recollection,
         Execution,
         DigivolutionCards,
+        EnemyHand,
         None,
     }
 
@@ -223,6 +224,13 @@ public class SelectCardEffect : MonoBehaviourPunCallbacks
                     RootCardList.Add(cardSource);
                 }
                 break;
+            case Root.EnemyHand:
+                _selectPlayer.Enemy.HandCards = RandomUtility.ShuffledDeckCards(_selectPlayer.Enemy.HandCards);
+                foreach (CardSource cardSource in _selectPlayer.Enemy.HandCards)
+                {
+                    RootCardList.Add(cardSource);
+                }
+                break;
 
             case Root.Custom:
                 foreach (CardSource cardSource in _customRootCardList)