private void CheckForPlayerResponseWindow(IEffect effect) { if (effect is IResponseEffect && effect.CanBeTriggered(this)) { var responseEffect = effect as IResponseEffect; IPlayer player = null; IPlayer owner = null; var controller = GetController(responseEffect.CardSource.Id); if (responseEffect.CardSource is IPlayerCard) { var playerCard = responseEffect.CardSource as IPlayerCard; owner = playerCard.Owner; } player = controller != null ? controller : owner; if (player == null) { throw new InvalidOperationException("Could not determine the controller of this effect: " + effect.ToString()); } var responseWindow = new PlayerResponseWindow(this, player, responseEffect); TriggerImmediately(responseWindow); } }
private static void EffectAddedCallback(IEffect effect) { try { if (effect is IResponseEffect && effect.CanBeTriggered(game)) { if (PromptForBool("You have a response that can be triggered right now.\r\n\r\n{0}\r\n\r\nWould you like to trigger this repsonse?", effect)) { var handle = effect.GetHandle(game); game.TriggerEffect(handle); } } } catch (Exception ex) { WriteLine("\r\nError in effect added callback: {0}\r\n{1}", ex.Message, ex.StackTrace); } }