Пример #1
0
        public QianXi()
        {
            var trigger = new AutoNotifyPassiveSkillTrigger(
                this,
                (p, e, a) =>
            {
                var card = Game.CurrentGame.Judge(Owner, this);
                if (!Game.CurrentGame.AlivePlayers.Any(player => Game.CurrentGame.DistanceTo(p, player) == 1))
                {
                    return;
                }
                ISkill skill;
                List <Card> cards;
                List <Player> players;
                if (Owner.AskForCardUsage(new CardUsagePrompt("QianXi"), new QianXiVerifier(), out skill, out cards, out players))
                {
                    if (card.SuitColor == SuitColorType.Red)
                    {
                        QianXiEffect          = 0;
                        players[0][QianXiRed] = 1;
                    }
                    else if (card.SuitColor == SuitColorType.Black)
                    {
                        QianXiEffect            = 1;
                        players[0][QianXiBlack] = 1;
                    }
                    NotifySkillUse(players);
                    Trigger tri = new QianXiCannotUsedAndPlayCard(players[0], card.SuitColor);
                    Game.CurrentGame.RegisterTrigger(GameEvent.PlayerCanUseCard, tri);
                    Game.CurrentGame.RegisterTrigger(GameEvent.PlayerCanPlayCard, tri);
                    Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, new QianXiEffectRemoval(Owner, players[0], tri));
                }
            },
                TriggerCondition.OwnerIsSource
                )
            {
                IsAutoNotify = false
            };

            Triggers.Add(GameEvent.PhaseBeginEvents[TurnPhase.Start], trigger);
            IsAutoInvoked = false;
        }
Пример #2
0
 public QianXi()
 {
     var trigger = new AutoNotifyPassiveSkillTrigger(
         this,
         (p, e, a) =>
         {
             var card = Game.CurrentGame.Judge(Owner, this);
             if (!Game.CurrentGame.AlivePlayers.Any(player => Game.CurrentGame.DistanceTo(p, player) == 1))
             {
                 return;
             }
             ISkill skill;
             List<Card> cards;
             List<Player> players;
             if (Owner.AskForCardUsage(new CardUsagePrompt("QianXi"), new QianXiVerifier(), out skill, out cards, out players))
             {
                 if (card.SuitColor == SuitColorType.Red)
                 {
                     QianXiEffect = 0;
                     players[0][QianXiRed] = 1;
                 }
                 else if (card.SuitColor == SuitColorType.Black)
                 {
                     QianXiEffect = 1;
                     players[0][QianXiBlack] = 1;
                 }
                 NotifySkillUse(players);
                 Trigger tri = new QianXiCannotUsedAndPlayCard(players[0], card.SuitColor);
                 Game.CurrentGame.RegisterTrigger(GameEvent.PlayerCanUseCard, tri);
                 Game.CurrentGame.RegisterTrigger(GameEvent.PlayerCanPlayCard, tri);
                 Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, new QianXiEffectRemoval(Owner, players[0], tri));
             }
         },
         TriggerCondition.OwnerIsSource
     ) { IsAutoNotify = false };
     Triggers.Add(GameEvent.PhaseBeginEvents[TurnPhase.Start], trigger);
     IsAutoInvoked = false;
 }