示例#1
0
        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);
            }
        }
示例#2
0
 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);
     }
 }