public P_ChiaTaoFaKuo() : base(CardName) { Point = 4; Index = 24; foreach (PTime Time in new PTime[] { PPeriod.EndTurnStage.During }) { MoveInHandTriggerList.Add((PPlayer Player, PCard Card) => { return(new PTrigger(CardName) { IsLocked = false, Player = Player, Time = Time, AIPriority = 100, Condition = (PGame Game) => { PChiaTaoFaKuoTag ChiaTaoFaKuoTag = Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); return Player.Equals(Game.NowPlayer) && ChiaTaoFaKuoTag.LordList.Count >= 2; }, AICondition = (PGame Game) => { return AIEmitTargets(Game, Player)[0] != null && !Player.OutOfGame && P_PanYue.XianJuTest(Game, Player); }, Effect = MakeNormalEffect(Player, Card, AIEmitTargets, (PGame _Game, PPlayer _Player) => { PChiaTaoFaKuoTag ChiaTaoFaKuoTag = _Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); return ChiaTaoFaKuoTag.LordList.Contains(_Player); }, (PGame Game, PPlayer User, PPlayer Target) => { Game.Injure(User, Target, 1000, Card); }) }); }); } }
public PChiaTaoFaKuoTriggerInstaller() : base("假道伐虢的记录") { TriggerList.Add(new PTrigger("假道伐虢[开始记录]") { IsLocked = true, Time = PPeriod.StartTurn.During, Effect = (PGame Game) => { Game.TagManager.PopTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); Game.TagManager.CreateTag(new PChiaTaoFaKuoTag(new List <PPlayer>())); } }); TriggerList.Add(new PTrigger("假道伐虢[经过土地]") { IsLocked = true, Time = PTime.MovePositionTime, Effect = (PGame Game) => { PTransportTag TransportTag = Game.TagManager.FindPeekTag <PTransportTag>(PTransportTag.TagName); PPlayer Lord = TransportTag.Destination.Lord; if (Lord != null && !Lord.Equals(Game.NowPlayer)) { PChiaTaoFaKuoTag ChiaTaoFaKuoTag = Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); if (!ChiaTaoFaKuoTag.LordList.Contains(Lord)) { ChiaTaoFaKuoTag.LordList.Add(Lord); } } } }); }
private List <PPlayer> AIEmitTargets(PGame Game, PPlayer Player) { return(new List <PPlayer> { PAiTargetChooser.InjureTarget(Game, Player, Player, (PGame _Game, PPlayer _Player) => { PChiaTaoFaKuoTag ChiaTaoFaKuoTag = _Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); return ChiaTaoFaKuoTag.LordList.Contains(_Player) && Player.TeamIndex != _Player.TeamIndex; }, 1000, Instantiate()) }); }
public P_BaiHu() : base("白虎") { Sex = PSex.Male; Age = PAge.Ancient; Index = 1002; Cost = 1; Tips = string.Empty; CanBeChoose = false; //PSkill ShenShou = new PSkill("神兽") { // Lock = true //}; //SkillList.Add(ShenShou // .AddTrigger( // (PPlayer Player, PSkill Skill) => { // return new PTrigger(ShenShou.Name) { // IsLocked = true, // Player = Player, // Time = PTime.StartGameTime, // AIPriority = 100, // Effect = (PGame Game) => { // ShenShou.AnnouceUseSkill(Player); // Game.GetMoney(Player, 30000); // } // }; // }) // .AddTrigger( // (PPlayer Player, PSkill Skill) => { // return new PTrigger(ShenShou.Name) { // IsLocked = true, // Player = Player, // Time = PPeriod.StartTurn.During, // AIPriority = 100, // Condition = (PGame Game) => { // return Player.Equals(Game.NowPlayer); // }, // Effect = (PGame Game) => { // ShenShou.AnnouceUseSkill(Player); // Game.GetMoney(Player, 500); // } // }; // })); PSkill BaiHu = new PSkill("白虎") { Lock = true }; SkillList.Add(BaiHu .AddTrigger( (PPlayer Player, PSkill Skill) => { return(new PTrigger(BaiHu.Name) { IsLocked = true, Player = Player, Time = PPeriod.EndTurn.During, AIPriority = 250, Condition = (PGame Game) => { PChiaTaoFaKuoTag ChiaTaoFaKuoTag = Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); return Player.Equals(Game.NowPlayer) && ChiaTaoFaKuoTag.LordList.Count >= 1; }, Effect = (PGame Game) => { BaiHu.AnnouceUseSkill(Player); PInjureTag InjureTag = Game.TagManager.FindPeekTag <PInjureTag>(PInjureTag.TagName); PChiaTaoFaKuoTag ChiaTaoFaKuoTag = Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName); ChiaTaoFaKuoTag.LordList.ForEach((PPlayer _Player) => { if (!_Player.Tags.ExistTag(PTag.LockedTag.Name)) { _Player.Tags.CreateTag(PTag.LockedTag); } }); } }); })); }