|
|
@@ -176,144 +176,14 @@ namespace DCGO.CardEffects.BT17
|
|
|
{
|
|
|
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 = Array.Empty<int>();
|
|
|
-
|
|
|
- yield return GManager.instance.photonWaitController.StartWait(
|
|
|
- "Gabumon_BT17_019");
|
|
|
-
|
|
|
- if (card.Owner.isYou || GManager.instance.IsAI)
|
|
|
- {
|
|
|
- GManager.instance.selectJogressEffect.SetUp_SelectDigivolutionRoots
|
|
|
- (card: selectedCard,
|
|
|
- isLocal: true,
|
|
|
- isPayCost: true,
|
|
|
- canNoSelect: true,
|
|
|
- endSelectCoroutine_SelectDigivolutionRoots:
|
|
|
- EndSelectCoroutineSelectDigivolutionRoots,
|
|
|
- noSelectCoroutine: null);
|
|
|
-
|
|
|
- GManager.instance.selectJogressEffect.SetUpCustomPermanentConditions(
|
|
|
- new Func<Permanent, bool>[]
|
|
|
- { (permanent) => permanent == card.PermanentOfThisCard() });
|
|
|
-
|
|
|
- yield return ContinuousController.instance.StartCoroutine(
|
|
|
- GManager.instance.selectJogressEffect.SelectDigivolutionRoots());
|
|
|
-
|
|
|
- IEnumerator EndSelectCoroutineSelectDigivolutionRoots(
|
|
|
- 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 = Array.Empty<int>();
|
|
|
- }
|
|
|
-
|
|
|
- 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() }
|
|
|
+ ));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -322,19 +192,5 @@ namespace DCGO.CardEffects.BT17
|
|
|
|
|
|
return cardEffects;
|
|
|
}
|
|
|
-
|
|
|
- #region Photon DNA ESS
|
|
|
-
|
|
|
- bool endSelect;
|
|
|
- int[] JogressEvoRootsFrameIDs = Array.Empty<int>();
|
|
|
-
|
|
|
- [PunRPC]
|
|
|
- public void SetJogressEvoRootsFrameIDs(int[] jogressEvoRootsFrameIDs)
|
|
|
- {
|
|
|
- this.JogressEvoRootsFrameIDs = jogressEvoRootsFrameIDs;
|
|
|
- endSelect = true;
|
|
|
- }
|
|
|
-
|
|
|
- #endregion
|
|
|
}
|
|
|
}
|