public static async Task RavageCard(IInvaderCard invaderCard, GameState gameState) { if (invaderCard != null) { await invaderCard.Ravage(gameState); } }
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); }
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); } }
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); }
public TriggerCommandBeasts(IInvaderCard inner) { this.inner = inner; }