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; }
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; }