mbunch_kascope пре 1 година
родитељ
комит
b6cbeacdf4

+ 2 - 2
Assets/CardBaseEntity/P/Black/Digimon/Coelamon-P-162.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c8d8ce4d01961d590a21d46d14108eac56a1b715e5f433dd52586e752657181c
-size 1266
+oid sha256:0682390e6bd35c87bc67319388321e3fdc3e0fff5002d45a342bc5f0ed1d7c89
+size 1311

+ 1 - 1
Assets/CardBaseEntity/P/Black/Tamer/Close-P-169.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:0935fe18c5bcc9b14423f7154ddb3d4cfc52e491c8cfae11a0b317f3738f7dc0
+oid sha256:ed8346fb4009e55df0b6aed0e75b35c63ed90937600798068d69dd98c7ee3c8f
 size 1372

+ 1 - 1
Assets/CardBaseEntity/P/Black/Tamer/Close-P-169_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:93106bf7d79b80a4225cc3bf3342257daedcc1b5b1046353abf5c0bdca792842
+oid sha256:dffc9e00d089094253f4b5e02f4a53131414b1109d4952b12c1f12e335054f55
 size 1378

+ 1 - 1
Assets/CardBaseEntity/P/Blue/Tamer/YaoQinglan-P-168.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:286b775c2870fe03b8a642789ab450c4400dd4ebe1e7a66244cd0e71ffeaf633
+oid sha256:36f3c5da47c204048a2baa6c02604128d0a1006ab820189f6ebd03058fe19f29
 size 1456

+ 1 - 1
Assets/CardBaseEntity/P/Blue/Tamer/YaoQinglan-P-168_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:5696d758069a28f629cf3d770c591e9f9a80567db9d4d883e7d55d0f72ea3083
+oid sha256:2cefbb6a63367b07f5dcd1ca78887cfb785f45a7407fe4d0fba3b42580a413d0
 size 1462

+ 2 - 2
Assets/CardBaseEntity/P/Green/Digimon/Dokugumon-P-163.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:a2ff3d22ff0aae219de5689271d0f2b2a572cb324d157fafd47f501bf0a5dd01
-size 1132
+oid sha256:8fef8ce2faa0e1883b524604cc8f4fd86810c763d06b63855465361dd42f5f62
+size 1177

+ 2 - 2
Assets/CardEffect/EX8/Black/Sunarizamon_EX8_047.cs

@@ -24,12 +24,12 @@ namespace DCGO.CardEffects.EX8
 
                 bool HasMineralOrRock(CardSource source)
                 {
-                    return source.ContainsTraits("Mineral") || source.ContainsTraits("Rock");
+                    return source.EqualsTraits("Mineral") || source.EqualsTraits("Rock");
                 }
 
                 bool HasLiberator(CardSource source)
                 {
-                    return source.ContainsTraits("LIBERATOR");
+                    return source.EqualsTraits("LIBERATOR");
                 }
 
                 bool CanUseCondition(Hashtable hashtable)

+ 10 - 7
Assets/CardEffect/EX8/Blue/DeepSavers_EX8_068.cs

@@ -91,15 +91,18 @@ namespace DCGO.CardEffects.EX8
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    // Add your bottom security card to the hand
-                    CardSource bottomCard = card.Owner.SecurityCards[^1];
+                    if (card.Owner.SecurityCards.Count > 1)
+                    {
+                        // Add your bottom security card to the hand
+                        CardSource bottomCard = card.Owner.SecurityCards[^1];
 
-                    yield return ContinuousController.instance.StartCoroutine(
-                        CardObjectController.AddHandCards(new List<CardSource>() { bottomCard }, false, activateClass));
+                        yield return ContinuousController.instance.StartCoroutine(
+                            CardObjectController.AddHandCards(new List<CardSource>() { bottomCard }, false, activateClass));
 
-                    yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(
-                        player: card.Owner,
-                        refSkillInfos: ref ContinuousController.instance.nullSkillInfos).ReduceSecurity());
+                        yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(
+                            player: card.Owner,
+                            refSkillInfos: ref ContinuousController.instance.nullSkillInfos).ReduceSecurity());
+                    }
 
                     // Place this card face up as the bottom security card
                     yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(

+ 26 - 23
Assets/CardEffect/EX8/Blue/Frigimon_EX8-022.cs

@@ -134,34 +134,37 @@ namespace DCGO.CardEffects.EX8
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+                    if (CardEffectCommons.HasMatchConditionPermanent(OpponentsDigimon))
+                    {
+                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
-                    selectPermanentEffect.SetUp(
-                        selectPlayer: card.Owner,
-                        canTargetCondition: OpponentsDigimon,
-                        canTargetCondition_ByPreSelecetedList: null,
-                        canEndSelectCondition: null,
-                        maxCount: 1,
-                        canNoSelect: false,
-                        canEndNotMax: false,
-                        selectPermanentCoroutine: SelectPermanentCoroutine,
-                        afterSelectPermanentCoroutine: null,
-                        mode: SelectPermanentEffect.Mode.Custom,
-                        cardEffect: activateClass);
+                        selectPermanentEffect.SetUp(
+                            selectPlayer: card.Owner,
+                            canTargetCondition: OpponentsDigimon,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canEndSelectCondition: null,
+                            maxCount: 1,
+                            canNoSelect: false,
+                            canEndNotMax: false,
+                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            afterSelectPermanentCoroutine: null,
+                            mode: SelectPermanentEffect.Mode.Custom,
+                            cardEffect: activateClass);
 
-                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will trash digivolution cards.", "The opponent is selecting 1 Digimon that will trash digivolution cards.");
+                        selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will trash digivolution cards.", "The opponent is selecting 1 Digimon that will trash digivolution cards.");
 
-                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                    {
-                        Permanent selectedPermanent = permanent;
+                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        {
+                            Permanent selectedPermanent = permanent;
 
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.TrashDigivolutionCardsFromTopOrBottom(
-                            targetPermanent: selectedPermanent,
-                            trashCount: 2,
-                            isFromTop: false,
-                            activateClass: activateClass));
+                            yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.TrashDigivolutionCardsFromTopOrBottom(
+                                targetPermanent: selectedPermanent,
+                                trashCount: 2,
+                                isFromTop: false,
+                                activateClass: activateClass));
+                        }
                     }
 
                     if (card.Owner.Enemy.GetBattleAreaDigimons().Count(permanent => permanent.DigivolutionCards.Count > 0) == 0)

+ 10 - 7
Assets/CardEffect/EX8/Purple/NightmareSoldiers_EX8_071.cs

@@ -106,15 +106,18 @@ namespace DCGO.CardEffects.EX8
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    // Add your bottom security card to the hand
-                    CardSource bottomCard = card.Owner.SecurityCards[^1];
+                    if(card.Owner.SecurityCards.Count > 1)
+                    {
+                        // Add your bottom security card to the hand
+                        CardSource bottomCard = card.Owner.SecurityCards[^1];
 
-                    yield return ContinuousController.instance.StartCoroutine(
-                        CardObjectController.AddHandCards(new List<CardSource>() { bottomCard }, false, activateClass));
+                        yield return ContinuousController.instance.StartCoroutine(
+                            CardObjectController.AddHandCards(new List<CardSource>() { bottomCard }, false, activateClass));
 
-                    yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(
-                        player: card.Owner,
-                        refSkillInfos: ref ContinuousController.instance.nullSkillInfos).ReduceSecurity());
+                        yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(
+                            player: card.Owner,
+                            refSkillInfos: ref ContinuousController.instance.nullSkillInfos).ReduceSecurity());
+                    }                    
 
                     // Place this card face up as the bottom security card
                     yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(

+ 2 - 2
Assets/CardEffect/EX8/Yellow/Pumpkinmon_EX8_033.cs

@@ -111,8 +111,8 @@ namespace DCGO.CardEffects.EX8
 
                         JogressConditionElement[] elements =
                         {
-                            new(YellowDigimonTarget, "a level 5 Yellow Digimon"),
-                            new(PurpleRedDigimonTarget, "a level 5 Purple or Red Digimon")
+                            new(YellowDigimonTarget, "a level 4 Yellow Digimon"),
+                            new(PurpleRedDigimonTarget, "a level 4 Purple or Red Digimon")
                         };
 
                         JogressCondition jogressCondition = new JogressCondition(elements, 0);

+ 59 - 50
Assets/CardEffect/P/Black/Close_P_169.cs

@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 
 namespace DCGO.CardEffects.P
@@ -49,7 +50,7 @@ namespace DCGO.CardEffects.P
             
             if (timing == EffectTiming.OnDigivolutionCardDiscarded)
             {
-                List<Permanent> trashedFromPermanents = new List<Permanent>();
+                Permanent trashedFromPermanent = null;
                 
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Place 1 digivolution card", CanUseCondition, card);
@@ -63,36 +64,35 @@ namespace DCGO.CardEffects.P
 
                 bool IsRockMineralDigimon(Permanent permanent)
                 {
-                    return permanent.TopCard.EqualsTraits("Mineral") || permanent.TopCard.EqualsTraits("Rock");
+                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleAreaDigimon(permanent, card) &&
+                           permanent.TopCard.EqualsTraits("Mineral") || permanent.TopCard.EqualsTraits("Rock");
                 }
 
                 bool HasProperTraits(CardSource source)
                 {
-                    return source.IsDigimon && (source.EqualsTraits("Mineral") || source.EqualsTraits("Rock"));
+                    return (source.EqualsTraits("Mineral") || source.EqualsTraits("Rock"));
                 }
 
                 bool CanSelectDigimonToAddSources(Permanent permanent)
                 {
-                    return trashedFromPermanents.Contains(permanent);
+                    return permanent == trashedFromPermanent;
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    List<Permanent> trashedPermanents = CardEffectCommons.GetPermanentsFromHashtable(hashtable).Filter(IsRockMineralDigimon);
-                    return
-                        trashedPermanents.Any(p => p.TopCard.EqualsTraits("Mineral")) ||
-                        trashedPermanents.Any(p => p.TopCard.EqualsTraits("Rock"));
+                    trashedFromPermanent = CardEffectCommons.GetPermanentFromHashtable(hashtable);
+                    return isExistOnField(card) &&
+                            IsRockMineralDigimon(trashedFromPermanent);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
-                {
-                    trashedFromPermanents = CardEffectCommons.GetPermanentsFromHashtable(hashtable).Filter(IsRockMineralDigimon);
-                    
+                {                    
                     return isExistOnField(card) && CardEffectCommons.CanActivateSuspendCostEffect(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
+                    Permanent selectedPermanent = null;
                     List<CardSource> selectedCards = new List<CardSource>();
 
                     yield return ContinuousController.instance.StartCoroutine(
@@ -121,53 +121,62 @@ namespace DCGO.CardEffects.P
                     IEnumerator SelectPermanentCoroutine(Permanent permanent)
                     {
                         if (permanent != null)
+                            selectedPermanent = permanent;
+
+                        yield return null;
+
+                    }
+
+                    if(selectedPermanent != null)
+                    {
+                        if(CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, HasProperTraits))
                         {
                             SelectCardEffect selectCardEffect = GManager.instance.GetComponent<SelectCardEffect>();
 
-                            selectCardEffect.SetUp(
-                                canTargetCondition: HasProperTraits,
-                                canTargetCondition_ByPreSelecetedList: null,
-                                canEndSelectCondition: CanEndSelectCondition,
-                                canNoSelect: () => true,
-                                selectCardCoroutine: SelectCardCoroutine,
-                                afterSelectCardCoroutine: null,
-                                message: "Select [Mineral] or [Rock] to place on bottom of digivolution cards.",
-                                maxCount: 1,
-                                canEndNotMax: true,
-                                isShowOpponent: true,
-                                mode: SelectCardEffect.Mode.Custom,
-                                root: SelectCardEffect.Root.Trash,
-                                customRootCardList: null,
-                                canLookReverseCard: true,
-                                selectPlayer: card.Owner,
-                                cardEffect: activateClass);
-                            
-                            selectCardEffect.SetUpCustomMessage_ShowCard("Digivolution Card");
-                            selectCardEffect.SetUpCustomMessage("Select [Mineral] or [Rock] to place on bottom of digivolution cards.", "The opponent is selecting [Mineral] or [Rock] to place on bottom of digivolution cards.");
-
-                            yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
-
-                            bool CanEndSelectCondition(List<CardSource> cardSources)
+                        selectCardEffect.SetUp(
+                            canTargetCondition: HasProperTraits,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canEndSelectCondition: CanEndSelectCondition,
+                            canNoSelect: () => true,
+                            selectCardCoroutine: SelectCardCoroutine,
+                            afterSelectCardCoroutine: null,
+                            message: "Select [Mineral] or [Rock] to place on bottom of digivolution cards.",
+                            maxCount: 1,
+                            canEndNotMax: true,
+                            isShowOpponent: true,
+                            mode: SelectCardEffect.Mode.Custom,
+                            root: SelectCardEffect.Root.Trash,
+                            customRootCardList: null,
+                            canLookReverseCard: true,
+                            selectPlayer: card.Owner,
+                            cardEffect: activateClass);
+
+                        selectCardEffect.SetUpCustomMessage_ShowCard("Digivolution Card");
+                        selectCardEffect.SetUpCustomMessage("Select [Mineral] or [Rock] to place on bottom of digivolution cards.", "The opponent is selecting [Mineral] or [Rock] to place on bottom of digivolution cards.");
+
+                        yield return ContinuousController.instance.StartCoroutine(selectCardEffect.Activate());
+
+                        bool CanEndSelectCondition(List<CardSource> cardSources)
+                        {
+                            if (CardEffectCommons.HasNoElement(cardSources))
                             {
-                                if (CardEffectCommons.HasNoElement(cardSources))
-                                {
-                                    return false;
-                                }
-
-                                return true;
+                                return false;
                             }
 
-                            IEnumerator SelectCardCoroutine(CardSource cardSource)
-                            {
-                                selectedCards.Add(cardSource);
+                            return true;
+                        }
 
-                                yield return null;
-                            }
+                        IEnumerator SelectCardCoroutine(CardSource cardSource)
+                        {
+                            selectedCards.Add(cardSource);
 
-                            if (selectedCards.Count >= 1)
-                            {
-                                yield return ContinuousController.instance.StartCoroutine(permanent.AddDigivolutionCardsBottom(selectedCards, activateClass));
-                            }
+                            yield return null;
+                        }
+
+                        if (selectedCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(selectedPermanent.AddDigivolutionCardsBottom(selectedCards, activateClass));
+                        }
                         }
                     }
                 }

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

@@ -97,7 +97,7 @@ namespace DCGO.CardEffects.P
                         mode: SelectPermanentEffect.Mode.Custom,
                         cardEffect: activateClass);
 
-                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will digivolve.", "The opponent is selecting 1 Digimon that will digivolve.");
+                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will gain effects.", "The opponent is selecting 1 Digimon that will gain effects.");
 
                     IEnumerator SelectPermanentCoroutine(Permanent permanent)
                     {

+ 1 - 1
Assets/CardEffect/P/Red/TyrannomonXAntibody_P_160.cs

@@ -21,7 +21,7 @@ namespace DCGO.CardEffects.P
                            !targetPermanent.TopCard.EqualsTraits("X Antibody");
                 }
 
-                cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 1, ignoreDigivolutionRequirement: false, card: card, condition: null));
+                cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 0, ignoreDigivolutionRequirement: false, card: card, condition: null));
             }
             
             #endregion