Beispiel #1
0
    public override void AnnouceInvokeJudge(PGame Game, PPlayer Player, PCard Card)
    {
        base.AnnouceInvokeJudge(Game, Player, Card);
        int Result = Game.Judge(Player, new Func <int>(() => {
            if (Player.Area.EquipmentCardArea.CardNumber > 0)
            {
                return(6);
            }
            else
            {
                return(5);
            }
        })());

        if (Result != 6)
        {
            if (Player.Area.EquipmentCardArea.CardNumber > 0)
            {
                Game.ThrowCard(Player, Player, false, true);
            }
            if (Game.GetNextPlayer(Player).Area.AmbushCardArea.CardList.Exists((PCard _Card) => _Card.Model is P_HsienChing))
            {
                Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.GetNextPlayer(Game.GetNextPlayer(Player)).Area.AmbushCardArea);
            }
            else
            {
                Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.GetNextPlayer(Player).Area.AmbushCardArea);
            }
        }
        else
        {
            Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.CardManager.ThrownCardHeap);
        }
    }
Beispiel #2
0
    public override void AnnouceInvokeJudge(PGame Game, PPlayer Player, PCard Card)
    {
        base.AnnouceInvokeJudge(Game, Player, Card);
        int Result = Game.Judge(Player, new Func <int>(() => {
            if (Game.Enemies(Player).Count > Game.Teammates(Player, false).Count&& !(Game.Teammates(Player, false).Exists((PPlayer _Player) => _Player.Money <= 1000)))
            {
                return(6);
            }
            return(2);
        })());

        if (Result != 2)
        {
            Game.LoseMoney(Player, 1000);
            if (Game.GetNextPlayer(Player).Area.AmbushCardArea.CardList.Exists((PCard _Card) => _Card.Model is P_WevnI))
            {
                Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.GetNextPlayer(Game.GetNextPlayer(Player)).Area.AmbushCardArea);
            }
            else
            {
                Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.GetNextPlayer(Player).Area.AmbushCardArea);
            }
        }
        else
        {
            Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.CardManager.ThrownCardHeap);
        }
    }
 public override void AnnouceInvokeJudge(PGame Game, PPlayer Player, PCard Card) {
     base.AnnouceInvokeJudge(Game, Player, Card);
     int Result = Game.Judge(Player, new Func<int>(() => {
         if (Player.HasHouse) {
             return 4;
         }
         return 6;
     })());
     if (Result != 4) {
         Game.ThrowHouse(Player, Player, CardName);
     }
     Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.CardManager.ThrownCardHeap);
 }
Beispiel #4
0
    public override void AnnouceInvokeJudge(PGame Game, PPlayer Player, PCard Card)
    {
        base.AnnouceInvokeJudge(Game, Player, Card);
        int Result1 = Game.Judge(Player, 6);
        int Result2 = Game.Judge(Player, 6);

        if (Result1 + Result2 <= 5)
        {
            Game.Injure(null, Player, 6000, Card);
            Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.CardManager.ThrownCardHeap);
        }
        else
        {
            if (Game.GetNextPlayer(Player).Area.AmbushCardArea.CardList.Exists((PCard _Card) => _Card.Model is P_ShanTien))
            {
                Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.GetNextPlayer(Game.GetNextPlayer(Player)).Area.AmbushCardArea);
            }
            else
            {
                Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.GetNextPlayer(Player).Area.AmbushCardArea);
            }
        }
    }
    public override void AnnouceInvokeJudge(PGame Game, PPlayer Player, PCard Card)
    {
        base.AnnouceInvokeJudge(Game, Player, Card);
        int Result = Game.Judge(Player, new Func <int>(() => {
            if (AIExpect(Game, Player, Player.Position) < -1000)
            {
                return(1);
            }
            return(6);
        })());

        if (Result != 1)
        {
            PBlock Block = Player.Position;
            int[]  dx = { 1, -1, 0, 0 };
            int[]  dy = { 0, 0, 1, -1 };
            int    OriginalX = Block.X;
            int    OriginalY = Block.Y;
            int    x, y;
            Game.GetHouse(Block, 1);
            for (int i = 0; i < 4; ++i)
            {
                x = OriginalX;
                y = OriginalY;
                do
                {
                    x += dx[i];
                    y += dy[i];
                    PBlock TempBlock = Game.Map.FindBlockByCoordinate(x, y);
                    if (TempBlock != null)
                    {
                        if (TempBlock.Lord != null)
                        {
                            Game.GetHouse(TempBlock, 1);
                        }
                    }
                    else
                    {
                        break;
                    }
                } while (true);
            }
        }
        Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.CardManager.ThrownCardHeap);
    }
Beispiel #6
0
    public override void AnnouceInvokeJudge(PGame Game, PPlayer Player, PCard Card)
    {
        base.AnnouceInvokeJudge(Game, Player, Card);
        int Result = Game.Judge(Player, new Func <int>(() => {
            if (Player.Area.HandCardArea.CardNumber <= 1)
            {
                return(6);
            }
            return(3);
        })());

        if (Result != 3)
        {
            int ThrowNumber = Player.Area.HandCardArea.CardNumber / 2;
            for (int i = 0; i < ThrowNumber; ++i)
            {
                Game.ThrowCard(Player, Player, true, false);
            }
        }
        Game.CardManager.MoveCard(Card, Player.Area.AmbushCardArea, Game.CardManager.ThrownCardHeap);
    }