static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( Cmd.DamageToTownOrExplorer(3), Cmd.AddStrife(1) )); }
static public async Task ActAsync(TargetSpaceCtx ctx) { switch (ctx.GameState.Fear.TerrorLevel) { case 1: ctx.AddFear(3); break; case 2: await ctx.SelectActionOption(Cmd.AddFear(2), Cmd.AddStrife(1)); break; case 3: await ctx.AddStrife(); break; } }
static public ActionOption <GameState> EachPlayerAddsStrifeToNonRavageLand(int strifeCount) => Cmd.EachSpirit( Cmd.AddStrife(strifeCount).To(DoesNotMatchRavageCard, "land that does not match Ravage card") );
public static async Task ActAsync(TargetSpaceCtx ctx) { // 6 damage. await ctx.DamageInvaders(6); // Add 2 badlands/strife var addBadlandsOrStrife = Cmd.Pick1("Add badlands/strife", Cmd.AddBadlands(1), Cmd.AddStrife(1)); await addBadlandsOrStrife.Repeat(2).Execute(ctx); // and 1 blight. await ctx.AddBlight(1); await TakeActionInUpToNLands(ctx // In up to 3 adjacent lands with blight , 3, ctx.Adjacent.Where(s => ctx.Target(s).HasBlight) // add 1 badland/strife. , addBadlandsOrStrife ); // if you have 3 fire 3 water: if (await ctx.YouHave("3 fire,3 water")) { await TakeActionInUpToNLands(ctx // in up to 3 adjacent lands, , 3, ctx.Adjacent // 1 damage to each invader. , new SpaceAction("1 damage to each invader", ctx => ctx.DamageEachInvader(1)) ); } }