private void StartResolvingOneCard(IPlayedCard played) { BattleLog.Write($"Began resolving {played.Card.Name}"); if (physicalZone.Count == 0) { Log.Info($"Weird Physical Zone Draw bug."); } else { physicalZone.DrawOneCard(); } var card = played.Card; if (card.Owner.IsStunnedForCard()) { BattleLog.Write($"{card.Owner.Name} was stunned, so {card.Name} does not resolve."); card.Owner.Apply(m => m.ApplyTemporaryAdditive(AdjustedStats.CreateIndefinite(new StatAddends().With(TemporalStatType.CardStun, -1), true))); WrapupCard(played, card); Message.Publish(new CardResolutionFinished()); } else { AllConditions.InitCardPlaying(battleState.GetSnapshot()); played.Perform(); WrapupCard(played, card); } }
private void WrapupCard(IPlayedCard played, Card physicalCard) { LastPlayed = played; if (played.Member.TeamType.Equals(TeamType.Party)) { playedDiscardZone.PutOnBottom(physicalCard.RevertedToStandard()); } isResolving = moves.Any(); }
public void Add(IPlayedCard played) { moves.Add(played); physicalZone.PutOnBottom(played.Card); played.Member.Apply(m => { m.Lose(played.Spent); m.Gain(played.Gained); }); BattleLog.Write($"{played.Member.Name} Played {played.Card.Name} - Spent {played.Spent} - Gained {played.Gained}"); }