فهرست منبع

Cleanup + Scraped changes

Lewisaaronwelch 1 سال پیش
والد
کامیت
67cf47cc8f
1فایلهای تغییر یافته به همراه79 افزوده شده و 164 حذف شده
  1. 79 164
      Assets/CardEffect/EX8/Yellow/EX8_033.cs

+ 79 - 164
Assets/CardEffect/EX8/Yellow/EX8_033.cs

@@ -10,9 +10,9 @@ namespace DCGO.CardEffects.EX8
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
             List<ICardEffect> cardEffects = new List<ICardEffect>();
-            
+
             #region Alternate Digivolution Conditions
-            
+
             if (timing == EffectTiming.None)
             {
                 bool PermanentCondition(Permanent targetPermanent)
@@ -31,11 +31,11 @@ namespace DCGO.CardEffects.EX8
                     condition: null)
                 );
             }
-            
+
             #endregion
 
             #region DNA Digivolution
-            
+
             if (timing == EffectTiming.None)
             {
                 AddJogressConditionClass addJogressConditionClass = new AddJogressConditionClass();
@@ -123,149 +123,124 @@ namespace DCGO.CardEffects.EX8
                     return null;
                 }
             }
-            
-            #endregion
 
-            #region On Play
-            
-            if (timing == EffectTiming.OnEnterFieldAnyone)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Return 1 card from trash to hand", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDescription());
-                cardEffects.Add(activateClass);
+            #endregion
 
-                string EffectDescription()
-                {
-                    return "[On Play] Return 1 [NSo] trait card from your trash to the hand.";
-                }
+            #region Shared OP/WD Methods
 
-                bool CanSelectCardCondition(CardSource cardSource)
+            bool SharedCanSelectCardCondition(CardSource cardSource)
+            {
+                if (cardSource != null)
                 {
-                    if (cardSource != null)
+                    if (cardSource.Owner == card.Owner)
                     {
-                        if (cardSource.Owner == card.Owner)
+                        if (cardSource.ContainsTraits("NSo"))
                         {
-                            if (cardSource.ContainsTraits("NSo"))
-                            {
-                                return true;
-                            }
+                            return true;
                         }
                     }
-
-                    return false;
                 }
 
-                bool CanUseCondition(Hashtable hashtable)
+                return false;
+            }
+
+            bool SharedActivateCondition(Hashtable hashtable)
+            {
+                if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                 {
-                    if(CardEffectCommons.IsExistOnBattleAreaDigimon(card))
+                    if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, SharedCanSelectCardCondition))
                     {
-                        if (CardEffectCommons.CanTriggerOnPlay(hashtable, card))
-                        {
-                            return true;
-                        }
+                        return true;
                     }
-
-                    return false;
                 }
 
-                bool CanActivateCondition(Hashtable hashtable)
+                return false;
+            }
+
+            IEnumerator SharedActivateCoroutine(Hashtable _hashtable, ActivateClass activateClass)
+            {
+                if (isExistOnField(card))
                 {
-                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
+                    if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, SharedCanSelectCardCondition))
                     {
-                        if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
-                        {
-                            return true;
-                        }
-                    }
+                        int maxCount = Math.Min(1, card.Owner.TrashCards.Count(SharedCanSelectCardCondition));
 
-                    return false;
-                }
+                        SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
 
-                IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {
-                    if (isExistOnField(card))
-                    {
-                        if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
-                        {
-                            int maxCount = Math.Min(1, card.Owner.TrashCards.Count(CanSelectCardCondition));
-
-                            SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-
-                            selectCardEffect.SetUp(
-                                canTargetCondition: CanSelectCardCondition,
-                                canTargetCondition_ByPreSelecetedList: null,
-                                canEndSelectCondition: null,
-                                canNoSelect: () => false,
-                                selectCardCoroutine: null,
-                                afterSelectCardCoroutine: null,
-                                message: "Select 1 card to add to your hand.",
-                                maxCount: maxCount,
-                                canEndNotMax: false,
-                                isShowOpponent: true,
-                                mode: SelectCardEffect.Mode.AddHand,
-                                root: SelectCardEffect.Root.Trash,
-                                customRootCardList: null,
-                                canLookReverseCard: true,
-                                selectPlayer: card.Owner,
-                                cardEffect: activateClass);
-
-                            yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-                        }
+                        selectCardEffect.SetUp(
+                            canTargetCondition: SharedCanSelectCardCondition,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canEndSelectCondition: null,
+                            canNoSelect: () => false,
+                            selectCardCoroutine: null,
+                            afterSelectCardCoroutine: null,
+                            message: "Select 1 card to add to your hand.",
+                            maxCount: maxCount,
+                            canEndNotMax: false,
+                            isShowOpponent: true,
+                            mode: SelectCardEffect.Mode.AddHand,
+                            root: SelectCardEffect.Root.Trash,
+                            customRootCardList: null,
+                            canLookReverseCard: true,
+                            selectPlayer: card.Owner,
+                            cardEffect: activateClass);
+
+                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
                     }
                 }
             }
-            
+
             #endregion
 
-            #region When Digivolving
-            
+            #region On Play
+
             if (timing == EffectTiming.OnEnterFieldAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Return 1 card from trash to hand", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDescription());
+                activateClass.SetUpActivateClass(SharedActivateCondition, (hashtable => SharedActivateCoroutine(hashtable, activateClass)), -1, false, EffectDescription());
                 cardEffects.Add(activateClass);
 
                 string EffectDescription()
                 {
-                    return "[When Digivolving] Return 1 [NSo] trait card from your trash to the hand.";
+                    return "[On Play] Return 1 [NSo] trait card from your trash to the hand.";
                 }
 
-                bool CanSelectCardCondition(CardSource cardSource)
+                bool CanUseCondition(Hashtable hashtable)
                 {
-                    if (cardSource != null)
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
-                        if (cardSource.Owner == card.Owner)
+                        if (CardEffectCommons.CanTriggerOnPlay(hashtable, card))
                         {
-                            if (cardSource.ContainsTraits("NSo"))
-                            {
-                                return true;
-                            }
+                            return true;
                         }
                     }
 
                     return false;
                 }
+            }
 
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    if(CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                    {
-                        if (CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card))
-                        {
-                            return true;
-                        }
-                    }
+            #endregion
 
-                    return false;
+            #region When Digivolving
+
+            if (timing == EffectTiming.OnEnterFieldAnyone)
+            {
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("Return 1 card from trash to hand", CanUseCondition, card);
+                activateClass.SetUpActivateClass(SharedActivateCondition, (hashtable => SharedActivateCoroutine(hashtable, activateClass)), -1, false, EffectDescription());
+                cardEffects.Add(activateClass);
+
+                string EffectDescription()
+                {
+                    return "[When Digivolving] Return 1 [NSo] trait card from your trash to the hand.";
                 }
 
-                bool CanActivateCondition(Hashtable hashtable)
+                bool CanUseCondition(Hashtable hashtable)
                 {
                     if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
                     {
-                        if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
+                        if (CardEffectCommons.CanTriggerWhenDigivolving(hashtable, card))
                         {
                             return true;
                         }
@@ -273,72 +248,12 @@ namespace DCGO.CardEffects.EX8
 
                     return false;
                 }
-
-                IEnumerator ActivateCoroutine(Hashtable _hashtable)
-                {
-                    if (isExistOnField(card))
-                    {
-                        if (CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectCardCondition))
-                        {
-                            CardSource selectedCard = null;
-
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCard = cardSource;
-
-                                yield return null;
-                            }
-
-                            int maxCount = Math.Min(1, card.Owner.TrashCards.Count(CanSelectCardCondition));
-
-                            SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
-
-                            selectCardEffect.SetUp(
-                                canTargetCondition: CanSelectCardCondition,
-                                canTargetCondition_ByPreSelecetedList: null,
-                                canEndSelectCondition: null,
-                                canNoSelect: () => false,
-                                selectCardCoroutine: null,
-                                afterSelectCardCoroutine: AfterSelectCardCoroutine,
-                                message: "Select 1 card to add to your hand.",
-                                maxCount: maxCount,
-                                canEndNotMax: false,
-                                isShowOpponent: true,
-                                mode: SelectCardEffect.Mode.Custom,
-                                root: SelectCardEffect.Root.Custom,
-                                customRootCardList: card.Owner.TrashCards,
-                                canLookReverseCard: true,
-                                selectPlayer: card.Owner,
-                                cardEffect: activateClass);
-
-                            yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-
-                            IEnumerator AfterSelectCardCoroutine(List<CardSource> cardSources)
-                            {
-                                if (cardSources.Count == 1)
-                                {
-                                    var card = cardSources[0];
-                                    var message = card.IsDigiEgg ? "Sent Digi-Egg to egg deck" : "Sent Card to Hand";
-                                    if (card.IsDigiEgg)
-                                    {
-                                        yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddLibraryBottomCards(cardSources));
-                                    }
-                                    else
-                                    {
-                                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.AddThisCardToHand(selectedCard, activateClass));
-                                    }
-                                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(cardSources, message, true, true));
-                                }
-                            }
-                        }
-                    }
-                }
             }
-            
+
             #endregion
-            
+
             #region On Deletion
-            
+
             if (timing == EffectTiming.OnDestroyedAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -402,11 +317,11 @@ namespace DCGO.CardEffects.EX8
                     }
                 }
             }
-            
+
             #endregion
 
             #region Inherited Effect
-            
+
             if (timing == EffectTiming.OnDestroyedAnyone)
             {
                 ActivateClass activateClass = new ActivateClass();
@@ -443,7 +358,7 @@ namespace DCGO.CardEffects.EX8
                     yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
                 }
             }
-            
+
             #endregion
 
             return cardEffects;