|
|
@@ -180,124 +180,14 @@ namespace DCGO.CardEffects.EX3
|
|
|
{
|
|
|
if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, (permanent) => permanent.IsDigimon && permanent != card.PermanentOfThisCard()))
|
|
|
{
|
|
|
- if (card.Owner.HandCards.Count(CanSelectCardCondition1) >= 1)
|
|
|
- {
|
|
|
- List<CardSource> selectedCards = new List<CardSource>();
|
|
|
-
|
|
|
- int maxCount = 1;
|
|
|
-
|
|
|
- SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
|
|
|
-
|
|
|
- selectHandEffect.SetUp(
|
|
|
- selectPlayer: card.Owner,
|
|
|
- canTargetCondition: CanSelectCardCondition1,
|
|
|
- canTargetCondition_ByPreSelecetedList: null,
|
|
|
- canEndSelectCondition: null,
|
|
|
- maxCount: maxCount,
|
|
|
- canNoSelect: true,
|
|
|
- canEndNotMax: false,
|
|
|
- isShowOpponent: true,
|
|
|
- selectCardCoroutine: SelectCardCoroutine,
|
|
|
- afterSelectCardCoroutine: null,
|
|
|
- mode: SelectHandEffect.Mode.Custom,
|
|
|
- cardEffect: activateClass);
|
|
|
-
|
|
|
- selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
|
|
|
- selectHandEffect.SetNotShowCard();
|
|
|
-
|
|
|
- yield return StartCoroutine(selectHandEffect.Activate());
|
|
|
-
|
|
|
- IEnumerator SelectCardCoroutine(CardSource cardSource)
|
|
|
- {
|
|
|
- selectedCards.Add(cardSource);
|
|
|
-
|
|
|
- yield return null;
|
|
|
- }
|
|
|
-
|
|
|
- if (selectedCards.Count >= 1)
|
|
|
- {
|
|
|
- foreach (CardSource selectedCard in selectedCards)
|
|
|
- {
|
|
|
- if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs = new int[0];
|
|
|
-
|
|
|
- yield return GManager.instance.photonWaitController.StartWait("Shadramon_EX3_058");
|
|
|
-
|
|
|
- if (card.Owner.isYou || GManager.instance.IsAI)
|
|
|
- {
|
|
|
- GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
|
|
|
- (card: selectedCard,
|
|
|
- isLocal: true,
|
|
|
- isPayCost: true,
|
|
|
- canNoSelect: true,
|
|
|
- endSelectCoroutine_SelectDigivolutionRoots: EndSelectCoroutine_SelectDigivolutionRoots,
|
|
|
- noSelectCoroutine: null);
|
|
|
-
|
|
|
- GManager.instance.selectJogressEffect.SetUpCustomPermanentConditions(new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() });
|
|
|
-
|
|
|
- yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
|
|
|
-
|
|
|
- IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
|
|
|
- {
|
|
|
- permanents = permanents.Distinct().ToList();
|
|
|
-
|
|
|
- if (permanents.Count == 2)
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs = new int[2];
|
|
|
-
|
|
|
- for (int i = 0; i < permanents.Count; i++)
|
|
|
- {
|
|
|
- if (i < JogressEvoRootsFrameIDs.Length)
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!permanents.Contains(card.PermanentOfThisCard()))
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs = new int[0];
|
|
|
- }
|
|
|
-
|
|
|
- yield return null;
|
|
|
- }
|
|
|
-
|
|
|
- photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
|
|
|
- }
|
|
|
-
|
|
|
- else
|
|
|
- {
|
|
|
- GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
|
|
|
- }
|
|
|
-
|
|
|
- yield return new WaitWhile(() => !endSelect);
|
|
|
- endSelect = false;
|
|
|
-
|
|
|
- GManager.instance.commandText.CloseCommandText();
|
|
|
- yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
|
|
|
-
|
|
|
- if (JogressEvoRootsFrameIDs.Length == 2)
|
|
|
- {
|
|
|
- yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(new List<CardSource>() { selectedCard }, "Played Card", true, true));
|
|
|
-
|
|
|
- PlayCardClass playCard = new PlayCardClass(
|
|
|
- cardSources: new List<CardSource>() { selectedCard },
|
|
|
- hashtable: CardEffectCommons.CardEffectHashtable(activateClass),
|
|
|
- payCost: true,
|
|
|
- targetPermanent: null,
|
|
|
- isTapped: false,
|
|
|
- root: SelectCardEffect.Root.Hand,
|
|
|
- activateETB: true);
|
|
|
-
|
|
|
- playCard.SetJogress(JogressEvoRootsFrameIDs);
|
|
|
-
|
|
|
- yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ yield return ContinuousController.instance.StartCoroutine(
|
|
|
+ CardEffectCommons.DNADigivolvePermanentsIntoHandOrTrashCard(
|
|
|
+ CanSelectCardCondition,
|
|
|
+ payCost: true,
|
|
|
+ isHand: true,
|
|
|
+ activateClass,
|
|
|
+ permanentConditions: new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() }
|
|
|
+ ));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -374,142 +264,19 @@ namespace DCGO.CardEffects.EX3
|
|
|
{
|
|
|
if (isExistOnField(card))
|
|
|
{
|
|
|
- if (card.Owner.GetBattleAreaDigimons().Contains(card.PermanentOfThisCard()))
|
|
|
- {
|
|
|
- if (card.Owner.HandCards.Count(CanSelectCardCondition) >= 1)
|
|
|
- {
|
|
|
- List<CardSource> selectedCards = new List<CardSource>();
|
|
|
-
|
|
|
- int maxCount = 1;
|
|
|
-
|
|
|
- SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
|
|
|
-
|
|
|
- selectHandEffect.SetUp(
|
|
|
- selectPlayer: card.Owner,
|
|
|
- canTargetCondition: CanSelectCardCondition,
|
|
|
- canTargetCondition_ByPreSelecetedList: null,
|
|
|
- canEndSelectCondition: null,
|
|
|
- maxCount: maxCount,
|
|
|
- canNoSelect: true,
|
|
|
- canEndNotMax: false,
|
|
|
- isShowOpponent: true,
|
|
|
- selectCardCoroutine: SelectCardCoroutine,
|
|
|
- afterSelectCardCoroutine: null,
|
|
|
- mode: SelectHandEffect.Mode.Custom,
|
|
|
- cardEffect: activateClass);
|
|
|
-
|
|
|
- selectHandEffect.SetUpCustomMessage("Select 1 card to DNA digivolve.", "The opponent is selecting 1 card to DNA digivolve.");
|
|
|
- selectHandEffect.SetNotShowCard();
|
|
|
-
|
|
|
- yield return StartCoroutine(selectHandEffect.Activate());
|
|
|
-
|
|
|
- IEnumerator SelectCardCoroutine(CardSource cardSource)
|
|
|
- {
|
|
|
- selectedCards.Add(cardSource);
|
|
|
-
|
|
|
- yield return null;
|
|
|
- }
|
|
|
-
|
|
|
- if (selectedCards.Count >= 1)
|
|
|
- {
|
|
|
- foreach (CardSource selectedCard in selectedCards)
|
|
|
- {
|
|
|
- if (selectedCard.CanPlayJogress(true) && selectedCard.CanJogressFromTargetPermanent(card.PermanentOfThisCard(), true))
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs = new int[0];
|
|
|
-
|
|
|
- yield return GManager.instance.photonWaitController.StartWait("Flaedramon_EX3_008");
|
|
|
-
|
|
|
- if (card.Owner.isYou || GManager.instance.IsAI)
|
|
|
- {
|
|
|
- GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
|
|
|
- (card: selectedCard,
|
|
|
- isLocal: true,
|
|
|
- isPayCost: true,
|
|
|
- canNoSelect: true,
|
|
|
- endSelectCoroutine_SelectDigivolutionRoots: EndSelectCoroutine_SelectDigivolutionRoots,
|
|
|
- noSelectCoroutine: null);
|
|
|
-
|
|
|
- GManager.instance.selectJogressEffect.SetUpCustomPermanentConditions(new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() });
|
|
|
-
|
|
|
- yield return ContinuousController.instance.StartCoroutine(GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
|
|
|
-
|
|
|
- IEnumerator EndSelectCoroutine_SelectDigivolutionRoots(List<Permanent> permanents)
|
|
|
- {
|
|
|
- permanents = permanents.Distinct().ToList();
|
|
|
-
|
|
|
- if (permanents.Count == 2)
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs = new int[2];
|
|
|
-
|
|
|
- for (int i = 0; i < permanents.Count; i++)
|
|
|
- {
|
|
|
- if (i < JogressEvoRootsFrameIDs.Length)
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs[i] = permanents[i].PermanentFrame.FrameID;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!permanents.Contains(card.PermanentOfThisCard()))
|
|
|
- {
|
|
|
- JogressEvoRootsFrameIDs = new int[0];
|
|
|
- }
|
|
|
-
|
|
|
- yield return null;
|
|
|
- }
|
|
|
-
|
|
|
- photonView.RPC("SetJogressEvoRootsFrameIDs", RpcTarget.All, JogressEvoRootsFrameIDs);
|
|
|
- }
|
|
|
-
|
|
|
- else
|
|
|
- {
|
|
|
- GManager.instance.commandText.OpenCommandText("The opponent is choosing a card to DNA digivolve.");
|
|
|
- }
|
|
|
-
|
|
|
- yield return new WaitWhile(() => !endSelect);
|
|
|
- endSelect = false;
|
|
|
-
|
|
|
- GManager.instance.commandText.CloseCommandText();
|
|
|
- yield return new WaitWhile(() => GManager.instance.commandText.gameObject.activeSelf);
|
|
|
-
|
|
|
- if (JogressEvoRootsFrameIDs.Length == 2)
|
|
|
- {
|
|
|
- yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(new List<CardSource>() { selectedCard }, "Played Card", true, true));
|
|
|
-
|
|
|
- PlayCardClass playCard = new PlayCardClass(
|
|
|
- cardSources: new List<CardSource>() { selectedCard },
|
|
|
- hashtable: CardEffectCommons.CardEffectHashtable(activateClass),
|
|
|
- payCost: true,
|
|
|
- targetPermanent: null,
|
|
|
- isTapped: false,
|
|
|
- root: SelectCardEffect.Root.Hand,
|
|
|
- activateETB: true);
|
|
|
-
|
|
|
- playCard.SetJogress(JogressEvoRootsFrameIDs);
|
|
|
-
|
|
|
- yield return ContinuousController.instance.StartCoroutine(playCard.PlayCard());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ yield return ContinuousController.instance.StartCoroutine(
|
|
|
+ CardEffectCommons.DNADigivolvePermanentsIntoHandOrTrashCard(
|
|
|
+ CanSelectCardCondition,
|
|
|
+ payCost: true,
|
|
|
+ isHand: true,
|
|
|
+ activateClass,
|
|
|
+ permanentConditions: new Func<Permanent, bool>[] { (permanent) => permanent == card.PermanentOfThisCard() }
|
|
|
+ ));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return cardEffects;
|
|
|
}
|
|
|
-
|
|
|
- bool endSelect = false;
|
|
|
- int[] JogressEvoRootsFrameIDs = new int[0];
|
|
|
-
|
|
|
- [PunRPC]
|
|
|
- public void SetJogressEvoRootsFrameIDs(int[] JogressEvoRootsFrameIDs)
|
|
|
- {
|
|
|
- this.JogressEvoRootsFrameIDs = JogressEvoRootsFrameIDs;
|
|
|
- endSelect = true;
|
|
|
- }
|
|
|
}
|
|
|
}
|