Exemple #1
0
 void Run(Player owner, GameEvent gameEvent, GameEventArgs eventArgs)
 {
     DeckType FuHunDeck = new DeckType("FuHun");
     CardsMovement move = new CardsMovement();
     move.Cards = new List<Card>();
     int toDraw = 2;
     for (int i = 0; i < toDraw; i++)
     {
         Game.CurrentGame.SyncImmutableCardAll(Game.CurrentGame.PeekCard(0));
         Card c = Game.CurrentGame.DrawCard();
         c.Log.SkillAction = this;
         c.Log.Source = owner;
         move.Cards.Add(c);
         Game.CurrentGame.NotificationProxy.NotifyShowCard(null, c);
     }
     move.To = new DeckPlace(null, FuHunDeck);
     var result = from c in move.Cards select c.SuitColor;
     bool success = result.Distinct().Count() == toDraw;
     if (success) FuHunEffect = 0;
     else FuHunEffect = 1;
     NotifySkillUse();
     Game.CurrentGame.MoveCards(move, false, Core.Utils.GameDelayTypes.Draw);
     Game.CurrentGame.HandleCardTransferToHand(null, owner, Game.CurrentGame.Decks[null, FuHunDeck]);
     if (success)
     {
         Trigger tri = new RemoveShengPao(owner, fhWuSheng, fhPaoXiao);
         Game.CurrentGame.PlayerAcquireAdditionalSkill(owner, fhWuSheng, HeroTag);
         Game.CurrentGame.PlayerAcquireAdditionalSkill(owner, fhPaoXiao, HeroTag);
         Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, tri);
     }
     Game.CurrentGame.CurrentPhaseEventIndex++;
     throw new TriggerResultException(TriggerResult.End);
 }
Exemple #2
0
            public FuHunPassiveSkill()
            {
                var trigger = new AutoNotifyPassiveSkillTrigger(
                    this,
                    (p, e, a) => { return(fhWuSheng == null && a.ReadonlyCard != null && a.ReadonlyCard[FuHunSha] == 1 && Game.CurrentGame.PhasesOwner == p && Game.CurrentGame.CurrentPhase == TurnPhase.Play); },
                    (p, e, a) =>
                {
                    fhWuSheng   = new WuSheng();
                    fhPaoXiao   = new PaoXiao();
                    Trigger tri = new RemoveShengPao(p, this);
                    Game.CurrentGame.PlayerAcquireAdditionalSkill(p, fhWuSheng, HeroTag);
                    Game.CurrentGame.PlayerAcquireAdditionalSkill(p, fhPaoXiao, HeroTag);
                    Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, tri);
                },
                    TriggerCondition.OwnerIsSource
                    )
                {
                    AskForConfirmation = false
                };

                Triggers.Add(GameEvent.AfterDamageCaused, trigger);

                var trigger2 = new AutoNotifyPassiveSkillTrigger(
                    this,
                    (p, e, a) => { return(a.Card[FuHunSha] == 1); },
                    (p, e, a) => { throw new TriggerResultException(TriggerResult.Fail); },
                    TriggerCondition.OwnerIsSource
                    )
                {
                    AskForConfirmation = false, IsAutoNotify = false
                };

                Triggers.Add(GameEvent.PlayerCanPlayCard, trigger2);
            }
Exemple #3
0
            public FuHunPassiveSkill()
            {
                var trigger = new AutoNotifyPassiveSkillTrigger(
                    this,
                    (p, e, a) => { return fhWuSheng == null && a.ReadonlyCard != null && a.ReadonlyCard[FuHunSha] == 1 && Game.CurrentGame.PhasesOwner == p && Game.CurrentGame.CurrentPhase == TurnPhase.Play; },
                    (p, e, a) =>
                    {
                        fhWuSheng = new WuSheng();
                        fhPaoXiao = new PaoXiao();
                        Trigger tri = new RemoveShengPao(p, this);
                        Game.CurrentGame.PlayerAcquireAdditionalSkill(p, fhWuSheng, HeroTag);
                        Game.CurrentGame.PlayerAcquireAdditionalSkill(p, fhPaoXiao, HeroTag);
                        Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, tri);
                    },
                    TriggerCondition.OwnerIsSource
                ) { AskForConfirmation = false };
                Triggers.Add(GameEvent.AfterDamageCaused, trigger);

                var trigger2 = new AutoNotifyPassiveSkillTrigger(
                    this,
                    (p, e, a) => { return a.Card[FuHunSha] == 1; },
                    (p, e, a) => { throw new TriggerResultException(TriggerResult.Fail); },
                    TriggerCondition.OwnerIsSource
                ) { AskForConfirmation = false, IsAutoNotify = false };
                Triggers.Add(GameEvent.PlayerCanPlayCard, trigger2);
            }