//override flip response to remove resetting token pools public override IEnumerator BeforeFlipCardImmediateResponse(FlipCardAction flip) { if (base.CardWithoutReplacements.IsFlipped) { yield break; } IEnumerable <Card> enumerable = from c in base.TurnTakerControllerWithoutReplacements.TurnTaker.GetAllCards() where c.Location.IsEnvironment && (c.Location.IsDeck || c.Location.IsTrash) select c; if (enumerable.Count() > 0) { IEnumerator coroutine = RemoveCardsFromGame(enumerable); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine)); } else { base.GameController.ExhaustCoroutine(coroutine); } } if (base.CardWithoutReplacements.IsTarget) { RemoveTargetAction action = new RemoveTargetAction(base.GameController, base.CardWithoutReplacements); IEnumerator coroutine2 = DoAction(action); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine2)); } else { base.GameController.ExhaustCoroutine(coroutine2); } } if (base.TurnTakerControllerWithoutReplacements.IsIncapacitatedOrOutOfGame) { base.GameController.RemoveTriggers((ITrigger t) => t.CardSource != null && t.CardSource.CardController.TurnTakerControllerWithoutReplacements == base.TurnTakerControllerWithoutReplacements && !t.IsStatusEffect && !t.IsOutOfPlayTrigger && t.CardSource != null && (t.CardSource.CardController == this || !t.CardSource.Card.IsInPlayAndNotUnderCard)); IEnumerable <Card> cards = base.TurnTakerControllerWithoutReplacements.TurnTaker.GetAllCards(); List <Card> list = new List <Card>(); list.AddRange(cards.Where((Card c) => !c.IsHeroCharacterCard).SelectMany((Card c) => c.UnderLocation.Cards.Where((Card co) => co.Owner != base.TurnTakerControllerWithoutReplacements.TurnTaker))); if (base.TurnTakerControllerWithoutReplacements.TurnTaker.IsHero) { HeroTurnTaker heroTurnTaker = base.TurnTakerControllerWithoutReplacements.ToHero().HeroTurnTaker; list.AddRange(from c in heroTurnTaker.Hand.Cards.Union(heroTurnTaker.Deck.Cards).Union(heroTurnTaker.Trash.Cards) where c.Owner != base.TurnTakerControllerWithoutReplacements.TurnTaker select c); } foreach (Card item in list) { MoveCardDestination trashDestination = FindCardController(item).GetTrashDestination(); IEnumerator coroutine3 = base.GameController.MoveCard(base.TurnTakerController, item, trashDestination.Location, trashDestination.ToBottom); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine3)); } else { base.GameController.ExhaustCoroutine(coroutine3); } } if (base.Game.IsOblivAeonMode) { IEnumerable <Card> enumerable2 = FindCardsWhere((Card c) => c.IsObjective && c.IsInLocation(base.TurnTakerControllerWithoutReplacements.TurnTaker.PlayArea)); Log.Debug("Objectives: " + enumerable2.ToRecursiveString()); if (enumerable2.Count() > 0) { TurnTaker turnTaker = FindTurnTakersWhere((TurnTaker tt) => tt.Identifier == "OblivAeon", ignoreBattleZone: true).FirstOrDefault(); IEnumerator coroutine4 = base.GameController.BulkMoveCards(base.TurnTakerController, enumerable2, turnTaker.FindSubDeck("MissionDeck"), toBottom: true, performBeforeDestroyActions: true, null, isDiscard: false, GetCardSource()); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine4)); } else { base.GameController.ExhaustCoroutine(coroutine4); } } IEnumerable <Card> enumerable3 = FindCardsWhere((Card c) => c.DoKeywordsContain("reward", evenIfUnderCard: true, evenIfFaceDown: true) && !c.IsOutOfGame && c.Owner == base.TurnTakerControllerWithoutReplacements.TurnTaker && (!c.IsUnderCard || !c.Location.OwnerCard.IsIncapacitated), realCardsOnly: false, null, ignoreBattleZone: true); if (enumerable3.Count() > 0) { IEnumerator coroutine5 = base.GameController.BulkMoveCards(base.TurnTakerController, enumerable3, base.Card.UnderLocation); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine5)); } else { base.GameController.ExhaustCoroutine(coroutine5); } } } IEnumerator coroutine6 = RemoveCardsFromGame(cards); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine6)); } else { base.GameController.ExhaustCoroutine(coroutine6); } IEnumerator coroutine7 = base.GameController.UpdateTurnPhasesForTurnTaker(base.TurnTakerControllerWithoutReplacements, incapacitated: true); if (base.UseUnityCoroutines) { yield return(base.GameController.StartCoroutine(coroutine7)); } else { base.GameController.ExhaustCoroutine(coroutine7); } } else { RemoveAllTriggers(); } }