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

016 and added link effects to disable effect class

mbunch_kascope 9 месяцев назад
Родитель
Сommit
04fc753c24

+ 1 - 0
Assets/CardEffect/BT23/Blue/BT23_016.cs

@@ -147,6 +147,7 @@ namespace DCGO.CardEffects.BT23
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Draw 1", CanUseCondition, card);
                 activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                activateClass.SetIsLinkedEffect(true);
                 cardEffects.Add(activateClass);
 
                 string EffectDiscription()

+ 28 - 3
Assets/Scripts/CheckEffectDisabledClass.cs

@@ -95,7 +95,7 @@ public static class CheckEffectDisabledClass
             {
                 foreach (Permanent permanent in player.GetBattleAreaPermanents())
                 {
-                    #region 
+                    #region Permanent Effects
 
                     foreach (ICardEffect cardEffect in permanent.EffectList_Added(EffectTiming.None))
                     {
@@ -117,7 +117,32 @@ public static class CheckEffectDisabledClass
                         {
                             foreach (ICardEffect cardEffect in cardSource.cEntity_EffectController.cEntity_Effect.GetCardEffects(EffectTiming.None, cardSource))
                             {
-                                if ((cardSource == permanent.TopCard) == (cardEffect.IsInheritedEffect) || (cardSource.IsFlipped))
+                                if (((cardSource == permanent.TopCard) == (cardEffect.IsInheritedEffect))  || (!cardSource.IsLinked == cardEffect.IsLinkedEffect) || (cardSource.IsFlipped))
+                                {
+                                    continue;
+                                }
+
+                                if (cardEffect != targetCardEffect && tree.Count((element) => element.cardEffect == cardEffect) == 0)
+                                {
+                                    if (cardEffect is IDisableCardEffect)
+                                    {
+                                        if (((IDisableCardEffect)cardEffect).IsDisabled(targetCardEffect))
+                                        {
+                                            PotentiallyDisablingEffects.Add(cardEffect);
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    foreach (CardSource cardSource in permanent.LinkedCards)
+                    {
+                        if (cardSource.cEntity_EffectController.cEntity_Effect != null)
+                        {
+                            foreach (ICardEffect cardEffect in cardSource.cEntity_EffectController.cEntity_Effect.GetCardEffects(EffectTiming.None, cardSource))
+                            {
+                                if ((!cardEffect.IsLinkedEffect) || (cardSource.IsFlipped))
                                 {
                                     continue;
                                 }
@@ -138,7 +163,7 @@ public static class CheckEffectDisabledClass
                     #endregion
                 }
 
-                #region
+                #region Player Effects
                 foreach (ICardEffect cardEffect in player.EffectList(EffectTiming.None))
                 {
                     if (cardEffect is IDisableCardEffect)