Jelajahi Sumber

Refactor permanent selection and de-digivolve logic

x89rt2 5 bulan lalu
induk
melakukan
1a776ac9af
1 mengubah file dengan 15 tambahan dan 24 penghapusan
  1. 15 24
      Assets/Scripts/CardEffect/BT16/Black/BT16_055.cs

+ 15 - 24
Assets/Scripts/CardEffect/BT16/Black/BT16_055.cs

@@ -43,15 +43,23 @@ namespace DCGO.CardEffects.BT16
                 return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
             }
 
-            Permanent selectedPermanent = null;
-
             bool CanSelectPermanentCondition(Permanent permanent)
             {
                 return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card);
             }
-            
+
+            Permanent selectedPermanent = null;
+
             #region Can't Be De-Digivolved
 
+            IEnumerator AfterSelectPermanent(List<Permanent> permanents)
+            {
+                if (permanents.Count >= 1)
+                    selectedPermanent = permanents[0];
+
+                yield return null;
+            }
+
             void ActivateDeDigivolveProtection()
             {
                 ImmuneFromDeDigivolveClass immuneFromDeDigivolveClass = new ImmuneFromDeDigivolveClass();
@@ -62,22 +70,12 @@ namespace DCGO.CardEffects.BT16
 
             bool CanUseDeDigivolveCondition(Hashtable hashtable1)
             {
-                if (selectedPermanent.TopCard != null)
-                {
-                    return true;
-                }
-
-                return false;
+                return selectedPermanent.TopCard != null;
             }
 
             bool PermanentDeDigivolveCondition(Permanent permanent)
             {
-                if (permanent == selectedPermanent)
-                {
-                    return true;
-                }
-
-                return false;
+                return permanent == selectedPermanent;
             }
             #endregion
 
@@ -95,8 +93,8 @@ namespace DCGO.CardEffects.BT16
                             maxCount: 1,
                             canNoSelect: false,
                             canEndNotMax: false,
-                            selectPermanentCoroutine: SelectPermanentCoroutine,
-                            afterSelectPermanentCoroutine: null,
+                            selectPermanentCoroutine: null,
+                            afterSelectPermanentCoroutine: AfterSelectPermanent,
                             mode: SelectPermanentEffect.Mode.Custom,
                             cardEffect: activateClass);
 
@@ -106,13 +104,6 @@ namespace DCGO.CardEffects.BT16
 
                     yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                    {
-                        selectedPermanent = permanent;
-
-                        yield return null;
-                    }
-
                     if (selectedPermanent != null)
                     {
                         ActivateDeDigivolveProtection();