Prechádzať zdrojové kódy

updates for live patch

mbunch_kascope 2 rokov pred
rodič
commit
8174a0b3e7
29 zmenil súbory, kde vykonal 239 pridanie a 274 odobranie
  1. 2 2
      Assets/CardBaseEntity/P/Yellow/Option/Recharge_Plug-In_Q-P-146.asset
  2. 2 2
      Assets/CardBaseEntity/P/Yellow/Option/Recharge_Plug-In_Q-P-146_P1.asset
  3. 7 9
      Assets/CardEffect/BT11/Black/Analogman_BT11_092.cs
  4. 9 12
      Assets/CardEffect/BT12/Purple/BaalmonXAntibody_BT12_082.cs
  5. 7 73
      Assets/CardEffect/BT16/Black/Publimon_BT16_056.cs
  6. 4 33
      Assets/CardEffect/BT16/Green/GranKuwagamonAce_BT16_046.cs
  7. 2 5
      Assets/CardEffect/BT16/Green/ShineOfBee_BT16_095.cs
  8. 11 11
      Assets/CardEffect/BT16/Purple/MaloMyotismon_BT16_081.cs
  9. 4 14
      Assets/CardEffect/BT16/Purple/Sethmon_BT16_070.cs
  10. 1 1
      Assets/CardEffect/BT16/Yellow/DragonBreath_BT16_094.cs
  11. 20 11
      Assets/CardEffect/EX6/Blue/Xiangpengmon_EX6_015.cs
  12. 1 1
      Assets/CardEffect/EX6/Green/Turuiemon_EX6_033.cs
  13. 4 4
      Assets/CardEffect/EX6/Purple/Barbamon_EX6_059.cs
  14. 2 8
      Assets/CardEffect/EX6/Purple/Witchmon_EX6_048.cs
  15. 14 0
      Assets/CardEffect/EX6/Yellow/ArkhaiAngemon_EX6_021.cs
  16. 0 6
      Assets/CardEffect/EX6/Yellow/MastemonAce_EX6_029.cs
  17. 50 28
      Assets/CardEffect/EX6/Yellow/Sanzomon_EX6_025.cs
  18. 1 1
      Assets/CardEffect/EX6/Yellow/Shakamon_EX6_031.cs
  19. 1 1
      Assets/CardEffect/P/Black/GotsumonXAntibody_P_144.cs
  20. 6 5
      Assets/CardEffect/P/Yellow/RechargePlug_InQ_P_146.cs
  21. 2 12
      Assets/CardEffect/ST17/Green/Cherubimon_ST17_09.cs
  22. 2 2
      Assets/Scripts/CardController.cs
  23. 1 1
      Assets/Scripts/CardEffectCommons/GiveEffect/GiveEffectToPermanent/CanNotUnsuspend.cs
  24. 3 1
      Assets/Scripts/CardEffectCommons/MinMax_DP_Cost_Level/DP/IsMinDP.cs
  25. 61 21
      Assets/Scripts/CardEffectCommons/RevealLibrary.cs
  26. 10 4
      Assets/Scripts/CardEffectFactory/KeyWordEffects/BlastDNADigivolution.cs
  27. 1 1
      Assets/Scripts/CardObjectController.cs
  28. 2 1
      Assets/Scripts/CardSource.cs
  29. 9 4
      Assets/Scripts/TurnStateMachine.cs

+ 2 - 2
Assets/CardBaseEntity/P/Yellow/Option/Recharge_Plug-In_Q-P-146.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c3ce7c0478df081d529091dc3fcd1a8ef4a7ca38c3f19139f08010b333cf44e8
-size 1478
+oid sha256:e0ebb0f5edf2c5e0639d6ce66dae443ea17ebd9e0c7cff0477b9c1b9235f2929
+size 1675

+ 2 - 2
Assets/CardBaseEntity/P/Yellow/Option/Recharge_Plug-In_Q-P-146_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:13f557e956546e58a5efb16d4d901ca5feb3293847b208e122a65a4eecbaa63d
-size 1484
+oid sha256:02291144f27c14be8cb0661118bf13094c7d8b8f762502e542d094bda217f20e
+size 1681

+ 7 - 9
Assets/CardEffect/BT11/Black/Analogman_BT11_092.cs

@@ -143,25 +143,21 @@ public class Analogman_BT11_092 : CEntity_Effect
 
             bool PermanentCondition(Permanent permanent)
             {
-                if(CardEffectCommons.IsOpponentPermanent(permanent, card))
-                {
-                    if(GManager.instance.attackProcess.AttackingPermanent == permanent)
-                    {
-                        return true;
-                    }
-                }
-
-                return false;
+                return CardEffectCommons.IsOpponentPermanent(permanent, card);
             }
 
             bool CanUseCondition(Hashtable hashtable)
             {
+                Debug.Log($"CanUseCondition: {CardEffectCommons.IsExistOnBattleArea(card)}");
                 if (CardEffectCommons.IsExistOnBattleArea(card))
                 {
+                    Debug.Log($"CanUseCondition: {CardEffectCommons.IsOpponentTurn(card)}");
                     if (CardEffectCommons.IsOpponentTurn(card))
                     {
+                        Debug.Log($"CanUseCondition: {CardEffectCommons.CanTriggerOnPermanentAttack(hashtable, PermanentCondition)}");
                         if (CardEffectCommons.CanTriggerOnPermanentAttack(hashtable, PermanentCondition))
                         {
+                            Debug.Log($"CanUseCondition: {GManager.instance.attackProcess.DefendingPermanent}");
                             if (GManager.instance.attackProcess.DefendingPermanent == null)
                             {
                                 return true;
@@ -175,8 +171,10 @@ public class Analogman_BT11_092 : CEntity_Effect
 
             bool CanActivateCondition(Hashtable hashtable)
             {
+                Debug.Log($"CanActivateCondition: {CardEffectCommons.IsExistOnBattleArea(card)}");
                 if (CardEffectCommons.IsExistOnBattleArea(card))
                 {
+                    Debug.Log($"CanActivateCondition: {CardEffectCommons.CanActivateSuspendCostEffect(card)}");
                     if (CardEffectCommons.CanActivateSuspendCostEffect(card))
                     {
                         return true;

+ 9 - 12
Assets/CardEffect/BT12/Purple/BaalmonXAntibody_BT12_082.cs

@@ -145,24 +145,21 @@ public class BaalmonXAntibody_BT12_082 : CEntity_Effect
 
             bool CanActivateCondition(Hashtable hashtable)
             {
-                if (CardEffectCommons.IsExistOnBattleArea(card))
+                if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                 {
-                    if (card.Owner.GetBattleAreaDigimons().Contains(card.PermanentOfThisCard()))
+                    if (card.PermanentOfThisCard().DigivolutionCards.Count((cardSource) => cardSource.CardNames.Contains("Baalmon") || cardSource.CardNames.Contains("X Antibody") || cardSource.CardNames.Contains("XAntibody")) >= 1)
                     {
-                        if (card.PermanentOfThisCard().DigivolutionCards.Count((cardSource) => cardSource.ContainsCardName("Baalmon") || cardSource.ContainsCardName("X Antibody") || cardSource.ContainsCardName("XAntibody")) >= 1)
+                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                         {
-                            if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                            {
-                                return true;
-                            }
+                            return true;
                         }
+                    }
 
-                        else
+                    else
+                    {
+                        if (card.Owner.LibraryCards.Count >= 1)
                         {
-                            if (card.Owner.LibraryCards.Count >= 1)
-                            {
-                                return true;
-                            }
+                            return true;
                         }
                     }
                 }

+ 7 - 73
Assets/CardEffect/BT16/Black/Publimon_BT16_056.cs

@@ -84,48 +84,15 @@ namespace DCGO.CardEffects.BT16
                             {
                                 if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                                 {
-                                    List<SelectionElement<bool>> selectionElements = new List<SelectionElement<bool>>()
-                                {
-                                    new SelectionElement<bool>(message: $"Security Top", value : true, spriteIndex: 0),
-                                    new SelectionElement<bool>(message: $"Security Bottom", value : false, spriteIndex: 1),
-                                };
-
-                                    string selectPlayerMessage = "Will you place the card on the top or bottom of the security?";
-                                    string notSelectPlayerMessage = "The opponent is selecting whether to place the card on the top or bottom of security.";
-
-                                    GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
-
-                                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
-
-                                    bool toTop = GManager.instance.userSelectionManager.SelectedBoolValue;
-
-                                    if (toTop)
-                                    {
-                                        GManager.instance.commandText.OpenCommandText("\"Place to the top of security\" was selected.");
-
-                                        GManager.instance.playLog.AddLogString($"\n{card.BaseENGCardNameFromEntity}({card.CardID}):Place the Digimon to the top of security\n");
-                                    }
-
-                                    else
-                                    {
-                                        GManager.instance.commandText.OpenCommandText("\"Place to the bottom of security\" was selected.");
-
-                                        GManager.instance.playLog.AddLogString($"\n{card.BaseENGCardNameFromEntity}({card.CardID}):Place the Digimon to the bottom of security\n");
-                                    }
-
-                                    yield return new WaitForSeconds(0.4f);
-                                    GManager.instance.commandText.CloseCommandText();
-                                    yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
-
                                     Permanent securityPermanent = selectedPermanent;
                                     CardSource securityCard = securityPermanent.TopCard;
 
-                                    if(securityPermanent.DigivolutionCards.Count < 0)
+                                    if(securityPermanent.DigivolutionCards.Count < 1)
                                     {
                                         yield return ContinuousController.instance.StartCoroutine(new IPutSecurityPermanent(
                                             securityPermanent,
                                             CardEffectCommons.CardEffectHashtable(activateClass),
-                                            toTop).PutSecurity());
+                                            true).PutSecurity());
                                     }
                                     else
                                     {
@@ -137,7 +104,7 @@ namespace DCGO.CardEffects.BT16
 
                                         if (!permanent.TopCard.IsToken)
                                         {
-                                            yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(permanent.TopCard, toTop));
+                                            yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(permanent.TopCard, true));
 
                                             yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateRecoveryEffect(permanent.TopCard.Owner));
 
@@ -193,7 +160,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition) >= 1)
                             return true;
@@ -235,48 +202,15 @@ namespace DCGO.CardEffects.BT16
                             {
                                 if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                                 {
-                                    List<SelectionElement<bool>> selectionElements = new List<SelectionElement<bool>>()
-                                {
-                                    new SelectionElement<bool>(message: $"Security Top", value : true, spriteIndex: 0),
-                                    new SelectionElement<bool>(message: $"Security Bottom", value : false, spriteIndex: 1),
-                                };
-
-                                    string selectPlayerMessage = "Will you place the card on the top or bottom of the security?";
-                                    string notSelectPlayerMessage = "The opponent is selecting whether to place the card on the top or bottom of security.";
-
-                                    GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: selectionElements, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
-
-                                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
-
-                                    bool toTop = GManager.instance.userSelectionManager.SelectedBoolValue;
-
-                                    if (toTop)
-                                    {
-                                        GManager.instance.commandText.OpenCommandText("\"Place to the top of security\" was selected.");
-
-                                        GManager.instance.playLog.AddLogString($"\n{card.BaseENGCardNameFromEntity}({card.CardID}):Place the Digimon to the top of security\n");
-                                    }
-
-                                    else
-                                    {
-                                        GManager.instance.commandText.OpenCommandText("\"Place to the bottom of security\" was selected.");
-
-                                        GManager.instance.playLog.AddLogString($"\n{card.BaseENGCardNameFromEntity}({card.CardID}):Place the Digimon to the bottom of security\n");
-                                    }
-
-                                    yield return new WaitForSeconds(0.4f);
-                                    GManager.instance.commandText.CloseCommandText();
-                                    yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
-
                                     Permanent securityPermanent = selectedPermanent;
                                     CardSource securityCard = securityPermanent.TopCard;
 
-                                    if (securityPermanent.DigivolutionCards.Count < 0)
+                                    if (securityPermanent.DigivolutionCards.Count < 1)
                                     {
                                         yield return ContinuousController.instance.StartCoroutine(new IPutSecurityPermanent(
                                             securityPermanent,
                                             CardEffectCommons.CardEffectHashtable(activateClass),
-                                            toTop).PutSecurity());
+                                            true).PutSecurity());
                                     }
                                     else
                                     {
@@ -288,7 +222,7 @@ namespace DCGO.CardEffects.BT16
 
                                         if (!permanent.TopCard.IsToken)
                                         {
-                                            yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(permanent.TopCard, toTop));
+                                            yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(permanent.TopCard, true));
 
                                             yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateRecoveryEffect(permanent.TopCard.Owner));
 

+ 4 - 33
Assets/CardEffect/BT16/Green/GranKuwagamonAce_BT16_046.cs

@@ -78,12 +78,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
@@ -92,8 +87,6 @@ namespace DCGO.CardEffects.BT16
                     {
                         int maxCount = Math.Min(2, CardEffectCommons.MatchConditionPermanentCount(PermanentCondition));
 
-                        Permanent selectedPermanent = null;
-
                         SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                         selectPermanentEffect.SetUp(
@@ -104,7 +97,7 @@ namespace DCGO.CardEffects.BT16
                             maxCount: maxCount,
                             canNoSelect: false,
                             canEndNotMax: false,
-                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            selectPermanentCoroutine: null,
                             afterSelectPermanentCoroutine: AfterSelectPermanentCoroutine,
                             mode: SelectPermanentEffect.Mode.Tap,
                             cardEffect: activateClass);
@@ -113,13 +106,6 @@ namespace DCGO.CardEffects.BT16
 
                         yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                        {
-                            selectedPermanent = permanent;
-
-                            yield return null;
-                        }
-
                         IEnumerator AfterSelectPermanentCoroutine(List<Permanent> permanents)
                         {
                             foreach (Permanent selectedPermanent in permanents)
@@ -139,7 +125,6 @@ namespace DCGO.CardEffects.BT16
                                 }
                             }
                         }
-
                     }
 
                     if(CardEffectCommons.HasMatchConditionPermanent(CanSelectTamerToDelete))
@@ -214,12 +199,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
@@ -228,8 +208,6 @@ namespace DCGO.CardEffects.BT16
                     {
                         int maxCount = Math.Min(2, CardEffectCommons.MatchConditionPermanentCount(PermanentCondition));
 
-                        Permanent selectedPermanent = null;
-
                         SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                         selectPermanentEffect.SetUp(
@@ -240,7 +218,7 @@ namespace DCGO.CardEffects.BT16
                             maxCount: maxCount,
                             canNoSelect: false,
                             canEndNotMax: false,
-                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            selectPermanentCoroutine: null,
                             afterSelectPermanentCoroutine: AfterSelectPermanentCoroutine,
                             mode: SelectPermanentEffect.Mode.Tap,
                             cardEffect: activateClass);
@@ -249,13 +227,6 @@ namespace DCGO.CardEffects.BT16
 
                         yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                        {
-                            selectedPermanent = permanent;
-
-                            yield return null;
-                        }
-
                         IEnumerator AfterSelectPermanentCoroutine(List<Permanent> permanents)
                         {
                             foreach (Permanent selectedPermanent in permanents)

+ 2 - 5
Assets/CardEffect/BT16/Green/ShineOfBee_BT16_095.cs

@@ -37,11 +37,8 @@ namespace DCGO.CardEffects.BT16
                 }
 
                 bool CanSelectPermanentsToBotDeck(Permanent permanent)
-                {
-                    if (!permanent.IsSuspended)
-                        return false;
-                    
-                    return CardEffectCommons.IsMinDP(permanent, card.Owner.Enemy);
+                {                    
+                    return CardEffectCommons.IsMinDP(permanent, card.Owner.Enemy,(permanent) => permanent.IsSuspended);
                 }
 
                 bool CanUseCondition(Hashtable hashtable)

+ 11 - 11
Assets/CardEffect/BT16/Purple/MaloMyotismon_BT16_081.cs

@@ -19,12 +19,12 @@ namespace DCGO.CardEffects.BT16
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Delete your Digimon or Tamer to delete an opponent's unsuspended Digimon. Otherwise delete 1 of your opponent's tamers.", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
                 {
-                    return "[When Digivolving] [When Attacking] By deleting one of your Digimon or Tamers, delete 1 of your opponent's unsuspended Digimon. If no Digimon is deleted by this effect, delete one of your opponent's tamers.";
+                    return "[When Digivolving] By deleting one of your Digimon or Tamers, delete 1 of your opponent's unsuspended Digimon. If no Digimon is deleted by this effect, delete one of your opponent's tamers.";
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -70,7 +70,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                         {
@@ -98,7 +98,7 @@ namespace DCGO.CardEffects.BT16
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
                             maxCount: maxCount,
-                            canNoSelect: false,
+                            canNoSelect: true,
                             canEndNotMax: false,
                             selectPermanentCoroutine: null,
                             afterSelectPermanentCoroutine: AfterSelectPermanentCoroutine,
@@ -122,7 +122,7 @@ namespace DCGO.CardEffects.BT16
 
                     yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DeletePeremanentAndProcessAccordingToResult(targetPermanents: deleteTargetPermanents, activateClass: activateClass, successProcess: permanents => SuccessProcess(), failureProcess: null));
 
-                    //Was this successful
+                    //Did I delete my Digimon/Tamer successfully
                     IEnumerator SuccessProcess()
                     {
                         List<Permanent> targetPermanents = new List<Permanent>();
@@ -165,7 +165,7 @@ namespace DCGO.CardEffects.BT16
                         }
                         else
                         {
-                            yield return StartCoroutine("FailureProcess");
+                            yield return ContinuousController.instance.StartCoroutine("FailureProcess");
                         }
 
                         IEnumerator FailureProcess()
@@ -209,7 +209,7 @@ namespace DCGO.CardEffects.BT16
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Delete your Digimon or Tamer to delete an opponent's unsuspended Digimon. Otherwise delete 1 of your opponent's tamers.", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()
@@ -260,7 +260,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                         {
@@ -288,7 +288,7 @@ namespace DCGO.CardEffects.BT16
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
                             maxCount: maxCount,
-                            canNoSelect: false,
+                            canNoSelect: true,
                             canEndNotMax: false,
                             selectPermanentCoroutine: null,
                             afterSelectPermanentCoroutine: AfterSelectPermanentCoroutine,
@@ -312,7 +312,7 @@ namespace DCGO.CardEffects.BT16
 
                     yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DeletePeremanentAndProcessAccordingToResult(targetPermanents: deleteTargetPermanents, activateClass: activateClass, successProcess: permanents => SuccessProcess(), failureProcess: null));
 
-                    //Was this successful
+                    //Did I delete my Digimon/Tamer successfully
                     IEnumerator SuccessProcess()
                     {
                         List<Permanent> targetPermanents = new List<Permanent>();
@@ -355,7 +355,7 @@ namespace DCGO.CardEffects.BT16
                         }
                         else
                         {
-                            yield return StartCoroutine("FailureProcess");
+                            yield return ContinuousController.instance.StartCoroutine("FailureProcess");
                         }
 
                         IEnumerator FailureProcess()

+ 4 - 14
Assets/CardEffect/BT16/Purple/Sethmon_BT16_070.cs

@@ -63,11 +63,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
@@ -174,11 +170,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
-                    {
-                        return true;
-                    }
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
@@ -225,8 +217,6 @@ namespace DCGO.CardEffects.BT16
 
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectOpponentPermanentCondition))
                         {
-                            Permanent permanentToDelete = null;
-
                             int maxCount = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectOpponentPermanentCondition));
 
                             SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
@@ -237,7 +227,7 @@ namespace DCGO.CardEffects.BT16
                                 canTargetCondition_ByPreSelecetedList: null,
                                 canEndSelectCondition: null,
                                 maxCount: maxCount,
-                                canNoSelect: true,
+                                canNoSelect: false,
                                 canEndNotMax: false,
                                 selectPermanentCoroutine: SelectPermanentToDeleteCoroutine,
                                 afterSelectPermanentCoroutine: null,
@@ -250,7 +240,7 @@ namespace DCGO.CardEffects.BT16
 
                             IEnumerator SelectPermanentToDeleteCoroutine(Permanent permanent)
                             {
-                                permanentToDelete = permanent;
+                                destroyTargetPermanents.Add(permanent);
 
                                 yield return null;
                             }

+ 1 - 1
Assets/CardEffect/BT16/Yellow/DragonBreath_BT16_094.cs

@@ -278,7 +278,7 @@ namespace DCGO.CardEffects.BT16
                                         yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.ChangeDigimonDP(
                                             selectedPermanent,
                                             -7000,
-                                            EffectDuration.UntilOpponentTurnEnd,
+                                            EffectDuration.UntilEachTurnEnd,
                                             activateClass)
                                             );
                                     }

+ 20 - 11
Assets/CardEffect/EX6/Blue/Xiangpengmon_EX6_015.cs

@@ -179,11 +179,12 @@ namespace DCGO.CardEffects.EX6
                             }
                         }
                     }
+
                     bool BouncePermanentCondition(Permanent permanent)
                     {
                         if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
                         {
-                            if (permanent.TopCard.CanNotBeAffected(activateClass))
+                            if (!permanent.TopCard.CanNotBeAffected(activateClass))
                             {
                                 return permanent.TopCard.HasLevel && permanent.Level <= 4 + cardsAdded;
                             }
@@ -212,16 +213,14 @@ namespace DCGO.CardEffects.EX6
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect(
-                    "Place digvolution cards and activate effects",
-                    CanUseCondition, card);
+                    "Place digvolution cards and activate effects", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false,
                     EffectDescription());
                 cardEffects.Add(activateClass);
 
                 string EffectDescription()
                 {
-                    return
-                        "[When Digivolving] You may place up to 3 of your other blue Digimon as this Digimon's bottom digivolution cards. Then, return all other level 4 or lower Digimon to the hand. For each card placed in this Digimon's digivolution cards, add 1 to the level this effect may return.";
+                    return "[On Play] You may place up to 3 of your other blue Digimon as this Digimon's bottom digivolution cards. Then, return all other level 4 or lower Digimon to the hand. For each card placed in this Digimon's digivolution cards, add 1 to the level this effect may return.";
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -245,7 +244,6 @@ namespace DCGO.CardEffects.EX6
                     return false;
                 }
 
-
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                     int cardsAdded = 0;
@@ -327,14 +325,25 @@ namespace DCGO.CardEffects.EX6
                             }
                         }
                     }
-                    bool PermanentConditionEnemy(Permanent enemyPermanent)
+
+                    bool BouncePermanentCondition(Permanent permanent)
                     {
-                        return enemyPermanent.Level <= 4 + cardsAdded;
+                        if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
+                        {
+                            if (!permanent.TopCard.CanNotBeAffected(activateClass))
+                            {
+                                return permanent.TopCard.HasLevel && permanent.Level <= 4 + cardsAdded;
+                            }
+                        }
+
+                        return false;
                     }
 
+                    // Return all Digimon with a level lower or equal to 4 plus the number of chosen Digimon
+                    List<Permanent> bounceTargetPermanents = new List<Permanent>();
 
-                    // Return all opponent's Digimon with a level lower or equal to 4 plus the number of chosen Digimon
-                    List<Permanent> bounceTargetPermanents = card.Owner.Enemy.GetBattleAreaDigimons().Filter(PermanentConditionEnemy);
+                    bounceTargetPermanents.AddRange(card.Owner.Enemy.GetBattleAreaDigimons().Filter(BouncePermanentCondition));
+                    bounceTargetPermanents.AddRange(card.Owner.GetBattleAreaDigimons().Filter(BouncePermanentCondition));
 
                     yield return ContinuousController.instance.StartCoroutine(
                         new HandBounceClaass(bounceTargetPermanents,
@@ -401,7 +410,7 @@ namespace DCGO.CardEffects.EX6
                 
                 bool CanActivateCondition(Hashtable hashtable)
                 {                   
-                    return CardEffectCommons.IsExistOnBattleArea(card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
                 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)

+ 1 - 1
Assets/CardEffect/EX6/Green/Turuiemon_EX6_033.cs

@@ -104,7 +104,7 @@ namespace DCGO.CardEffects.EX6
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.CanTriggerOnPlay(hashtable, card);
+                    return CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)

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

@@ -41,7 +41,7 @@ namespace DCGO.CardEffects.EX6
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if(CardEffectCommons.IsExistOnBattleArea(card))
+                    if(CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if(card.Owner.Enemy.HandCards.Count >= 1)
                         {
@@ -119,7 +119,7 @@ namespace DCGO.CardEffects.EX6
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (card.Owner.Enemy.HandCards.Count >= 1)
                         {
@@ -193,7 +193,7 @@ namespace DCGO.CardEffects.EX6
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.CanTriggerOnTrashHand(hashtable, cardEffect => true, cardSource => cardSource.Owner == card.Owner.Enemy))
                         {
@@ -224,7 +224,7 @@ namespace DCGO.CardEffects.EX6
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if(CardEffectCommons.IsExistOnBattleArea(card))
+                    if(CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         return true;
                     }

+ 2 - 8
Assets/CardEffect/EX6/Purple/Witchmon_EX6_048.cs

@@ -147,10 +147,7 @@ namespace DCGO.CardEffects.EX6
                                                 {
                                                     if (GManager.instance.turnStateMachine.gameContext.TurnPlayer == selectedPermanent.TopCard.Owner)
                                                     {
-                                                        if (CardEffectCommons.CanTriggerOnEndAttack(hashtable, selectedPermanent.TopCard))
-                                                        {
-                                                            return true;
-                                                        }
+                                                        return true;
                                                     }
                                                 }
                                             }
@@ -333,10 +330,7 @@ namespace DCGO.CardEffects.EX6
                                                 {
                                                     if (GManager.instance.turnStateMachine.gameContext.TurnPlayer == selectedPermanent.TopCard.Owner)
                                                     {
-                                                        if (CardEffectCommons.CanTriggerOnEndAttack(hashtable, selectedPermanent.TopCard))
-                                                        {
-                                                            return true;
-                                                        }
+                                                        return true;
                                                     }
                                                 }
                                             }

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

@@ -282,6 +282,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 - 6
Assets/CardEffect/EX6/Yellow/MastemonAce_EX6_029.cs

@@ -423,12 +423,6 @@ namespace DCGO.CardEffects.EX6
                         {
                             return true;
                         }
-                        
-                        if (CardEffectCommons.HasMatchConditionOpponentsPermanent(card,
-                                CanSelectPermanentSharedCondition))
-                        {
-                            return true;
-                        }
                     }
                     
                     return false;

+ 50 - 28
Assets/CardEffect/EX6/Yellow/Sanzomon_EX6_025.cs

@@ -2,6 +2,7 @@ using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
 using System;
+using System.Diagnostics;
 
 namespace DCGO.CardEffects.EX6
 {
@@ -185,38 +186,59 @@ namespace DCGO.CardEffects.EX6
 
                     if (CardEffectCommons.IsDijiXros(hashtable, count => count >= 1))
                     {
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.SimplifiedRevealDeckTopCardsAndSelect(
+                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.RevealDeckTopCardsAndSelect(
                             revealCount: 4,
-                            simplifiedSelectCardConditions:
-                            new SimplifiedSelectCardConditionClass[]
+                            selectCardConditions:
+                            new SelectCardConditionClass[]
                             {
-                            new SimplifiedSelectCardConditionClass(
-                                canTargetCondition:HasGokuumonInName,
-                                message: "Select 1 Gokuumon.",
-                                mode: SelectCardEffect.Mode.AddHand,
-                                maxCount: 1,
-                                selectCardCoroutine: null),
-                            new SimplifiedSelectCardConditionClass(
-                                canTargetCondition:HasSagomonInName,
-                                message: "Select 1 Sagomon.",
-                                mode: SelectCardEffect.Mode.AddHand,
-                                maxCount: 1,
-                                selectCardCoroutine: null),
-                            new SimplifiedSelectCardConditionClass(
-                                canTargetCondition:HasChoHakkaimonInName,
-                                message: "Select 1 Cho-Hakkaimon.",
-                                mode: SelectCardEffect.Mode.AddHand,
-                                maxCount: 1,
-                                selectCardCoroutine: null),
-                            new SimplifiedSelectCardConditionClass(
-                                canTargetCondition:HasShakamonInName,
-                                message: "Select 1 Shakamon.",
-                                mode: SelectCardEffect.Mode.AddHand,
-                                maxCount: 1,
-                                selectCardCoroutine: null),
+                                new SelectCardConditionClass(
+                                    canTargetCondition:HasGokuumonInName,
+                                    canTargetCondition_ByPreSelecetedList:null,
+                                    canEndSelectCondition:null,
+                                    canNoSelect:false,
+                                    selectCardCoroutine: null,
+                                    message: "Select 1 card with [Gokuumon] in its name.",
+                                    maxCount: 1,
+                                    canEndNotMax:false,
+                                    mode: SelectCardEffect.Mode.AddHand
+                                    ),
+                                new SelectCardConditionClass(
+                                    canTargetCondition:HasSagomonInName,
+                                    canTargetCondition_ByPreSelecetedList:null,
+                                    canEndSelectCondition:null,
+                                    canNoSelect:false,
+                                    selectCardCoroutine: null,
+                                    message: "Select 1 card with [Sagomon] in its name.",
+                                    maxCount: 1,
+                                    canEndNotMax:false,
+                                    mode: SelectCardEffect.Mode.AddHand
+                                    ),
+                                new SelectCardConditionClass(
+                                    canTargetCondition:HasChoHakkaimonInName,
+                                    canTargetCondition_ByPreSelecetedList:null,
+                                    canEndSelectCondition:null,
+                                    canNoSelect:false,
+                                    selectCardCoroutine: null,
+                                    message: "Select 1 card with [Cho-Hakkaimon] in its name.",
+                                    maxCount: 1,
+                                    canEndNotMax:false,
+                                    mode: SelectCardEffect.Mode.AddHand
+                                    ),
+                                new SelectCardConditionClass(
+                                    canTargetCondition:HasShakamonInName,
+                                    canTargetCondition_ByPreSelecetedList:null,
+                                    canEndSelectCondition:null,
+                                    canNoSelect:false,
+                                    selectCardCoroutine: null,
+                                    message: "Select 1 card with [Shakamon] in its name.",
+                                    maxCount: 1,
+                                    canEndNotMax:false,
+                                    mode: SelectCardEffect.Mode.AddHand
+                                    ),
                             },
                             remainingCardsPlace: RemainingCardsPlace.DeckBottom,
-                            activateClass: activateClass
+                            activateClass: activateClass,
+                            canNoAction: false
                         ));
                     }
                 }

+ 1 - 1
Assets/CardEffect/EX6/Yellow/Shakamon_EX6_031.cs

@@ -261,7 +261,7 @@ namespace DCGO.CardEffects.EX6
             
             #region All Turns
             
-            if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
+            if (timing == EffectTiming.WhenPermanentWouldBeDeleted || timing == EffectTiming.WhenReturntoHandAnyone || timing == EffectTiming.WhenReturntoLibraryAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect(

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

@@ -45,7 +45,7 @@ namespace DCGO.CardEffects.P
                 {
                     if (CardEffectCommons.IsOwnerTurn(card))
                     {
-                        return card.PermanentOfThisCard().cardSources.Count(HasGotsumonOrXAntibody) == 0;
+                        return card.PermanentOfThisCard().DigivolutionCards.Count(HasGotsumonOrXAntibody) == 0;
                     }
 
                     return false;

+ 6 - 5
Assets/CardEffect/P/Yellow/RechargePlug_InQ_P_146.cs

@@ -74,7 +74,7 @@ namespace DCGO.CardEffects.P
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
                             maxCount: maxCount,
-                            canNoSelect: true,
+                            canNoSelect: false,
                             canEndNotMax: false,
                             selectPermanentCoroutine: SelectPermanentCoroutine,
                             afterSelectPermanentCoroutine: null,
@@ -182,7 +182,7 @@ namespace DCGO.CardEffects.P
             #endregion
 
             #region All Turns- When would be destoryed - ESS
-            if (timing == EffectTiming.OnDestroyedAnyone)
+            if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Place card from digivolution sources to security, to prevent deletion by battle", CanUseCondition, card);
@@ -207,11 +207,12 @@ namespace DCGO.CardEffects.P
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (CardEffectCommons.CanTriggerWhenRemoveField(hashtable, card))
                         {
-                            return true;
+                            if(CardEffectCommons.IsByBattle(hashtable))
+                                return true;
                         }
                     }
 
@@ -220,7 +221,7 @@ namespace DCGO.CardEffects.P
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleArea(card))
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
                         if (card.PermanentOfThisCard().DigivolutionCards.Count(CanSelectCardCondition) >= 1)
                         {

+ 2 - 12
Assets/CardEffect/ST17/Green/Cherubimon_ST17_09.cs

@@ -131,24 +131,14 @@ namespace DCGO.CardEffects.ST17
                             maxCount: maxCount,
                             canNoSelect: true,
                             canEndNotMax: false,
-                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            selectPermanentCoroutine: null,
                             afterSelectPermanentCoroutine: null,
-                            mode: SelectPermanentEffect.Mode.Custom,
+                            mode: SelectPermanentEffect.Mode.Destroy,
                             cardEffect: activateClass);
 
                         selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to delete.", "The opponent is selecting 1 Digimon to delete.");
 
                         yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                        {
-                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DeletePeremanentAndProcessAccordingToResult(targetPermanents: new List<Permanent>() { permanent }, activateClass: activateClass, successProcess: permanents => SuccessProcess(), failureProcess: null));
-
-                            IEnumerator SuccessProcess()
-                            {
-                                yield return null;
-                            }
-                        }
                     }
 
 

+ 2 - 2
Assets/Scripts/CardController.cs

@@ -2908,12 +2908,12 @@ public class ISecurityCheck
                         yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().EnterSecurityCardEffect(brokenSecurityCard));
                         #endregion
 
+                        yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(brokenSecurityCard));
+
                         yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(
                             player: brokenSecurityCard.Owner,
                             refSkillInfos: ref triggeredSkillInfos).ReduceSecurity());
 
-                        yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(brokenSecurityCard));
-
                         #region security effect
                         List<SkillInfo> secuityEffectSkillInfos = new List<SkillInfo>();
 

+ 1 - 1
Assets/Scripts/CardEffectCommons/GiveEffect/GiveEffectToPermanent/CanNotUnsuspend.cs

@@ -33,7 +33,7 @@ public partial class CardEffectCommons
 
         yield return ContinuousController.instance.StartCoroutine(GainCanNotUnsuspend(
             targetPermanent: targetPermanent,
-            effectDuration: EffectDuration.UntilNextUntap,
+            effectDuration: EffectDuration.UntilOpponentTurnEnd,
             activateClass: activateClass,
             condition: CanUseCondition,
             effectName: effectName

+ 3 - 1
Assets/Scripts/CardEffectCommons/MinMax_DP_Cost_Level/DP/IsMinDP.cs

@@ -7,12 +7,14 @@ using System.Security;
 
 public partial class CardEffectCommons
 {
-    public static bool IsMinDP(Permanent permanent, Player owner)
+    public static bool IsMinDP(Permanent permanent, Player owner, Func<Permanent,bool> condition = null)
     {
         if (permanent == null) return false;
         if (permanent.TopCard == null) return false;
         if (permanent.TopCard.Owner != owner) return false;
         if (!IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, permanent.TopCard)) return false;
+        if(condition == null) return false;
+        if(!condition(permanent)) return false;
         if (!permanent.TopCard.HasDP && (permanent.BaseDP <= 0)) return false;
 
         List<int> DPs = permanent.TopCard.Owner.GetBattleAreaDigimons()

+ 61 - 21
Assets/Scripts/CardEffectCommons/RevealLibrary.cs

@@ -282,10 +282,50 @@ public partial class CardEffectCommons
         {
             SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
 
-            SelectCardConditionClass selectCardCondition = selectCardConditions[0];
+            foreach(SelectCardConditionClass selectCondition in selectCardConditions)
+            {
+                int maxCount = Math.Min(selectCondition.MaxCount, revealedCards.Count(selectCondition.CanTargetCondition));
 
-            int maxCount = Math.Min(selectCardCondition.MaxCount, revealedCards.Count(selectCardCondition.CanTargetCondition));
+                if (maxCount >= 1)
+                {
+                    selectCardEffect.SetUp(
+                        canTargetCondition: selectCondition.CanTargetCondition,
+                        canTargetCondition_ByPreSelecetedList: selectCondition.CanTargetCondition_ByPreSelecetedList,
+                        canEndSelectCondition: selectCondition.CanEndSelectCondition,
+                        canNoSelect: () => selectCondition.CanNoSelect,
+                        selectCardCoroutine: selectCondition.SelectCardCoroutine,
+                        afterSelectCardCoroutine: AfterSelectCardCoroutine,
+                        message: selectCondition.Message,
+                        maxCount: maxCount,
+                        canEndNotMax: selectCondition.CanEndNotMax,
+                        isShowOpponent: true,
+                        mode: selectCondition.Mode,
+                        root: SelectCardEffect.Root.Custom,
+                        customRootCardList: revealedCards,
+                        canLookReverseCard: true,
+                        selectPlayer: selectPlayer,
+                        cardEffect: activateClass);
+
+                    yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
+                }
 
+                IEnumerator AfterSelectCardCoroutine(List<CardSource> cardSources)
+                {
+                    foreach (CardSource cardSource in cardSources)
+                    {
+                        revealedCards.Remove(cardSource);
+                    }
+
+                    yield return null;
+                }
+            }
+
+            remainingCards = revealedCards.Clone();
+
+            /*SelectCardConditionClass selectCardCondition = selectCardConditions[0];
+
+            int maxCount = Math.Min(selectCardCondition.MaxCount, revealedCards.Count(selectCardCondition.CanTargetCondition));
+            //TODO: Clean this up - MBunch
             if (maxCount >= 1)
             {
                 selectCardEffect.SetUp(
@@ -312,7 +352,7 @@ public partial class CardEffectCommons
                 {
                     foreach (CardSource cardSource in cardSources)
                     {
-                        revealedCards.Remove(cardSource);
+                        remainingCards = revealedCards.Filter(cardSource => !cardSources.Contains(cardSource));
                     }
 
                     yield return null;
@@ -321,7 +361,7 @@ public partial class CardEffectCommons
 
             remainingCards = revealedCards.Clone();
 
-            if (selectCardConditions.Length == 2)
+            if (selectCardConditions.Length >= 2)
             {
                 SelectCardConditionClass selectCardCondition1 = selectCardConditions[1];
 
@@ -356,7 +396,7 @@ public partial class CardEffectCommons
                         yield return null;
                     }
                 }
-            }
+            }*/
         }
 
         if (isSendAllCardsToSamePlace)
@@ -427,22 +467,22 @@ public partial class CardEffectCommons
             SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
 
             selectCardEffect.SetUp(
-        canTargetCondition: (cardSource) => true,
-        canTargetCondition_ByPreSelecetedList: null,
-        canEndSelectCondition: null,
-        canNoSelect: () => false,
-        selectCardCoroutine: null,
-        afterSelectCardCoroutine: AfterSelectCardCoroutine1,
-        message: "Specify the order to place the card at the bottom of the deck\n(cards will be placed back to the bottom of the deck so that cards with lower numbers are on top).",
-        maxCount: remainingCards.Count,
-        canEndNotMax: false,
-        isShowOpponent: false,
-        mode: SelectCardEffect.Mode.Custom,
-        root: SelectCardEffect.Root.Custom,
-        customRootCardList: remainingCards,
-        canLookReverseCard: true,
-        selectPlayer: selectPlayer,
-        cardEffect: activateClass);
+                canTargetCondition: (cardSource) => true,
+                canTargetCondition_ByPreSelecetedList: null,
+                canEndSelectCondition: null,
+                canNoSelect: () => false,
+                selectCardCoroutine: null,
+                afterSelectCardCoroutine: AfterSelectCardCoroutine1,
+                message: "Specify the order to place the card at the bottom of the deck\n(cards will be placed back to the bottom of the deck so that cards with lower numbers are on top).",
+                maxCount: remainingCards.Count,
+                canEndNotMax: false,
+                isShowOpponent: false,
+                mode: SelectCardEffect.Mode.Custom,
+                root: SelectCardEffect.Root.Custom,
+                customRootCardList: remainingCards,
+                canLookReverseCard: true,
+                selectPlayer: selectPlayer,
+                cardEffect: activateClass);
 
             selectCardEffect.SetNotShowCard();
             selectCardEffect.SetNotAddLog();

+ 10 - 4
Assets/Scripts/CardEffectFactory/KeyWordEffects/BlastDNADigivolution.cs

@@ -48,19 +48,19 @@ public partial class CardEffectFactory
         void FilterDNAPermanents()
         {
             if (blastDNAConditions[0].Permanents.Count == 1)
-                blastDNAConditions[1].Permanents = blastDNAConditions[0].Permanents.Except(blastDNAConditions[1].Permanents).ToList();
+                blastDNAConditions[1].Permanents = blastDNAConditions[1].Permanents.Except(blastDNAConditions[0].Permanents).ToList();
 
             if (blastDNAConditions[1].Permanents.Count == 1)
-                blastDNAConditions[0].Permanents = blastDNAConditions[1].Permanents.Except(blastDNAConditions[0].Permanents).ToList();
+                blastDNAConditions[0].Permanents = blastDNAConditions[0].Permanents.Except(blastDNAConditions[1].Permanents).ToList();
         }
 
         void FilterDNAHandSources()
         {
             if (blastDNAConditions[0].CardSources.Count == 1)
-                blastDNAConditions[1].CardSources = blastDNAConditions[0].CardSources.Except(blastDNAConditions[1].CardSources).ToList();
+                blastDNAConditions[1].CardSources = blastDNAConditions[1].CardSources.Except(blastDNAConditions[0].CardSources).ToList();
 
             if (blastDNAConditions[1].CardSources.Count == 1)
-                blastDNAConditions[0].CardSources = blastDNAConditions[1].CardSources.Except(blastDNAConditions[0].CardSources).ToList();
+                blastDNAConditions[0].CardSources = blastDNAConditions[0].CardSources.Except(blastDNAConditions[1].CardSources).ToList();
         }
 
         bool HasValidDNATargets()
@@ -224,6 +224,12 @@ public partial class CardEffectFactory
                     playCard.SetJogress(JogressEvoRootsFrameIDs);
 
                     yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
+
+                    foreach (BlastDNACondition DNACondition in blastDNAConditions)
+                    {
+                        DNACondition.Permanents = new List<Permanent>();
+                        DNACondition.CardSources = new List<CardSource>();
+                    }
                 }
                 else
                 {

+ 1 - 1
Assets/Scripts/CardObjectController.cs

@@ -571,7 +571,7 @@ public class CardObjectController : MonoBehaviour
         }
 
         List<CardSource> eggCards = cardSources.Filter(cardSource => cardSource.IsDigiEgg);
-        List<CardSource> addedCards = cardSources.Filter(cardSource => !cardSource.IsToken);
+        List<CardSource> addedCards = cardSources.Filter(cardSource => !cardSource.IsDigiEgg || !cardSource.IsToken);
 
         if (eggCards.Count <= 0)
             yield return ContinuousController.instance.StartCoroutine(AddLibraryBottomCards(eggCards));

+ 2 - 1
Assets/Scripts/CardSource.cs

@@ -1083,7 +1083,8 @@ public class CardSource : MonoBehaviour
     #endregion
 
     #region Whether target other card's name has same name as this
-    public bool HasSameCardName(CardSource cardSource) => cardSource.CardNames.Count((cardName) => cardSource.EqualsCardName(cardName)) >= 1;
+    public bool HasSameCardName(CardSource cardSource) => cardSource.CardNames.Count((cardName) => EqualsCardName(cardName)) >= 1;
+    //public bool HasSameCardName(CardSource cardSource) => cardSource.CardNames.Count((cardName) => CardNames.Contains(cardName)) >= 1;
     #endregion
 
     #region whether this card has at least 1 card name that equals the string

+ 9 - 4
Assets/Scripts/TurnStateMachine.cs

@@ -581,7 +581,7 @@ public class TurnStateMachine : MonoBehaviourPunCallbacks
 
         #region Unsuspend
 
-        #region 場のパーマネントのアンタップ
+        #region Untap permanents in play
 
         List<Permanent> unsuspendPermanents = new List<Permanent>();
 
@@ -597,14 +597,19 @@ public class TurnStateMachine : MonoBehaviourPunCallbacks
             }
         }
 
-        //Add raising area Permanents to unsuspend list
+        //Unsuspend raising area Permanents
         foreach (Permanent permanent in gameContext.You.GetBreedingAreaPermanents())
         {
-            if (permanent.IsSuspended && permanent.CanUnsuspend)
+            if (permanent.IsSuspended)
             {
                 if (permanent.TopCard.Owner == gameContext.TurnPlayer)
                 {
-                    unsuspendPermanents.Add(permanent);
+                    permanent.IsSuspended = false;
+
+                    if (permanent.ShowingPermanentCard != null)
+                    {
+                        permanent.ShowingPermanentCard.ShowPermanentData(true);
+                    }
                 }
             }
         }