예제 #1
0
 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);
                 })
             });
         });
     }
 }
예제 #2
0
 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);
                 }
             }
         }
     });
 }
예제 #3
0
 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())
     });
 }
예제 #4
0
    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);
                        }
                    });
                }
            });
        }));
    }