예제 #1
0
 public static async Task RavageCard(IInvaderCard invaderCard, GameState gameState)
 {
     if (invaderCard != null)
     {
         await invaderCard.Ravage(gameState);
     }
 }
예제 #2
0
    static public async Task Option1(SelfCtx ctx)
    {
        var          deck    = ctx.GameState.InvaderDeck.unrevealedCards;
        IInvaderCard topCard = deck[0];
        await ctx.Self.SelectText(topCard.Text, new string[] { "Shuffle with next top card." }, Present.Always);

        deck.RemoveAt(0);
        InsertIntoTop2(deck, topCard);
    }
예제 #3
0
    static public async Task Option2(SelfCtx ctx)
    {
        var          deck    = ctx.GameState.InvaderDeck.unrevealedCards;
        IInvaderCard topCard = deck[0];

        deck.RemoveAt(0);

        if (await ctx.Self.UserSelectsFirstText(topCard.Text, new string[] { "Shuffle with next top card.", "Move to bottom of deck." }))
        {
            InsertIntoTop2(deck, topCard);
        }
        else
        {
            deck.Add(topCard);
        }
    }
예제 #4
0
    static void InsertIntoTop2(List <IInvaderCard> deck, IInvaderCard topCard)
    {
        int index = new System.Random().Next(2);          // !!! use the Shuffle # instead of a random one

        deck.Insert(index, topCard);
    }
예제 #5
0
 public TriggerCommandBeasts(IInvaderCard inner)
 {
     this.inner = inner;
 }