Jelajahi Sumber

aegisdramon, skadimon, security option effects

mbunch_kascope 1 tahun lalu
induk
melakukan
65268ab0d1

+ 2 - 8
Assets/CardEffect/EX8/Blue/Aegisdramon_EX8_029.cs

@@ -329,15 +329,9 @@ namespace DCGO.CardEffects.EX8
 
                 bool CardCondition(CardSource cardSource)
                 {
-                    if (cardSource == card)
+                    if (CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(cardSource.PermanentOfThisCard(), card))
                     {
-                        if (CardEffectCommons.IsExistOnBattleArea(card))
-                        {
-                            if (cardSource == card.PermanentOfThisCard().TopCard)
-                            {
-                                return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(cardSource.PermanentOfThisCard(), card);
-                            }
-                        }
+                        return cardSource.EqualsTraits("DS");
                     }
 
                     return false;

+ 4 - 2
Assets/CardEffect/EX8/Blue/Skadimon_EX8_028.cs

@@ -160,10 +160,11 @@ namespace DCGO.CardEffects.EX8
 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 {
-                    if (permanent.IsDigimon)
+                    if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(permanent))
                     {
                         if (permanent.DigivolutionCards.Count == 0)
                         {
+                            
                             return true;
                         }
                     }
@@ -250,10 +251,11 @@ namespace DCGO.CardEffects.EX8
 
                 bool CanSelectPermanentCondition(Permanent permanent)
                 {
-                    if (permanent.IsDigimon)
+                    if (CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(permanent))
                     {
                         if (permanent.DigivolutionCards.Count == 0)
                         {
+
                             return true;
                         }
                     }

+ 35 - 6
Assets/CardEffect/EX8/Purple/NightmareSoldiers_EX8_071.cs

@@ -36,7 +36,13 @@ namespace DCGO.CardEffects.EX8
 
             if (timing == EffectTiming.None)
             {
-                bool CanUseCondition()
+                AddSkillClass addSkillClass = new AddSkillClass();
+                addSkillClass.SetUpICardEffect("Your NSo trait Digimon gain Scapegoat", CanUseCondition, card);
+                addSkillClass.SetUpAddSkillClass(cardSourceCondition: CardSourceCondition, getEffects: GetEffects);
+                addSkillClass.SetIsInheritedEffect(true);
+                cardEffects.Add(addSkillClass);
+
+                bool CanUseCondition(Hashtable hashtable)
                 {
                     return CardEffectCommons.IsExistInSecurity(card, false);
                 }
@@ -47,11 +53,34 @@ namespace DCGO.CardEffects.EX8
                            permanent.TopCard.EqualsTraits("NSo");
                 }
 
-                cardEffects.Add(CardEffectFactory.ScapegoatStaticEffect(
-                    permanentCondition: PermanentCondition,
-                    isInheritedEffect: false,
-                    card: card,
-                    condition: CanUseCondition));
+                bool CardSourceCondition(CardSource cardSource)
+                {
+                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(cardSource))
+                    {
+                        if (cardSource.Owner == card.Owner)
+                        {
+                            if (cardSource == cardSource.PermanentOfThisCard().TopCard)
+                            {
+                                if (PermanentCondition(cardSource.PermanentOfThisCard()))
+                                {
+                                    return true;
+                                }
+                            }
+                        }
+                    }
+
+                    return false;
+                }
+
+                List<ICardEffect> GetEffects(CardSource cardSource, List<ICardEffect> cardEffects, EffectTiming _timing)
+                {
+                    if (_timing == EffectTiming.WhenPermanentWouldBeDeleted)
+                    {
+                        cardEffects.Add(CardEffectFactory.ScapegoatSelfEffect(isInheritedEffect: false, card: card, condition: null, effectName: "<Scapegoat>", effectDiscription: null));
+                    }
+
+                    return cardEffects;
+                }
             }
 
             #endregion

+ 46 - 2
Assets/Scripts/Permanent.cs

@@ -2151,7 +2151,7 @@ public class Permanent
     }
     #endregion
 
-    #region 道連れを持つ個数
+    #region Retaliation Count
     public int RetaliationCount
     {
         get
@@ -2336,6 +2336,28 @@ public class Permanent
                         }
                     }
                     #endregion
+
+                    #region Effects of faceup security
+                    foreach (CardSource source in player.SecurityCards)
+                    {
+                        if (source.IsFlipped)
+                            continue;
+
+                        foreach (ICardEffect cardEffect in permanent.EffectList(EffectTiming.OnAllyAttack))
+                        {
+                            if (cardEffect is IAllianceEffect)
+                            {
+                                if (cardEffect.CanTrigger(null))
+                                {
+                                    if (((IAllianceEffect)cardEffect).HasAlliance(this))
+                                    {
+                                        return true;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    #endregion
                 }
 
                 #region Player Effects
@@ -2480,7 +2502,7 @@ public class Permanent
     }
     #endregion
 
-    #region このデジモンが戦闘によって消滅するか
+    #region Can Be Destroyed By Battle
     public bool CanBeDestroyedByBattle(Permanent AttackingPermanent, Permanent DefendingPermanent, CardSource DefendingCard)
     {
         if (!CanBeDestroyed())
@@ -2510,6 +2532,28 @@ public class Permanent
                 #endregion
             }
 
+            #region Effects of faceup security
+            foreach (CardSource source in player.SecurityCards)
+            {
+                if (source.IsFlipped)
+                    continue;
+
+                foreach (ICardEffect cardEffect in source.EffectList(EffectTiming.None))
+                {
+                    if (cardEffect is ICanNotBeDestroyedByBattleEffect)
+                    {
+                        if (cardEffect.CanUse(null))
+                        {
+                            if (((ICanNotBeDestroyedByBattleEffect)cardEffect).CanNotBeDestroyedByBattle(this, AttackingPermanent, DefendingPermanent, DefendingCard))
+                            {
+                                return true;
+                            }
+                        }
+                    }
+                }
+            }
+            #endregion
+
             #region プレイヤーの効果
             foreach (ICardEffect cardEffect in player.EffectList(EffectTiming.None))
             {