public override bool Commit(GameEventArgs arg) { Owner[XianZhenUsed] = 1; var result = Game.CurrentGame.PinDian(Owner, arg.Targets[0], this); if (result != true) { var trigger = new XianZhenPassiveLose(Owner); Game.CurrentGame.RegisterTrigger(GameEvent.PlayerCanUseCard, trigger); Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, new XianZhenLoseRemoval(Owner, trigger)); } else { arg.Targets[0][Armor.PlayerIgnoreArmor[Owner]] = 1; var trigger = new XianZhenPassiveWin1(Owner, arg.Targets[0]); Game.CurrentGame.RegisterTrigger(Sha.PlayerShaTargetValidation, trigger); var trigger2 = new XianZhenPassiveWin2(Owner); Game.CurrentGame.RegisterTrigger(Sha.PlayerNumberOfShaCheck, trigger2); var trigger3 = new XianZhenPassiveWin3(Owner, arg.Targets[0]); Game.CurrentGame.RegisterTrigger(GameEvent.PlayerDistanceOverride, trigger3); Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, new XianZhenWinRemoval(Owner, arg.Targets[0], trigger, trigger2, trigger3)); } return true; }
public override bool Commit(GameEventArgs arg) { Owner[XianZhenUsed] = 1; var result = Game.CurrentGame.PinDian(Owner, arg.Targets[0], this); if (result != true) { var trigger = new XianZhenPassiveLose(Owner); Game.CurrentGame.RegisterTrigger(GameEvent.PlayerCanUseCard, trigger); Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, new XianZhenLoseRemoval(Owner, trigger)); } else { arg.Targets[0][Armor.PlayerIgnoreArmor[Owner]] = 1; var trigger = new XianZhenPassiveWin1(Owner, arg.Targets[0]); Game.CurrentGame.RegisterTrigger(Sha.PlayerShaTargetValidation, trigger); var trigger2 = new XianZhenPassiveWin2(Owner); Game.CurrentGame.RegisterTrigger(Sha.PlayerNumberOfShaCheck, trigger2); var trigger3 = new XianZhenPassiveWin3(Owner, arg.Targets[0]); Game.CurrentGame.RegisterTrigger(GameEvent.PlayerDistanceOverride, trigger3); Game.CurrentGame.RegisterTrigger(GameEvent.PhasePostEnd, new XianZhenWinRemoval(Owner, arg.Targets[0], trigger, trigger2, trigger3)); } return(true); }