static public Task ActionAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Push 1 town", ctx => ctx.Push(1, Invader.Town)).Matches(x => x.Tokens.Has(Invader.Town)), new SpaceAction("Push 3 dahan", ctx => ctx.PushDahan(3)).Matches(x => x.Dahan.Any) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Defend 4", ctx => ctx.Defend(4)), new SpaceAction("Invaders added to target are immediately pushed", PushFutureInvadersFromLands) )); }
static public async Task ActAsync(TargetSpaceCtx ctx) { await ctx.SelectActionOption( new SpaceAction("Add 1 disease and 1 strife", AddDiseaseAndStrife ), new SpaceAction("Remove any # of beast/disease/strife/wilds for 1 fear + 3 damage each", RemoveTokensForFearAndDamage ) ); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Gather up to 3 dahan", ctx => ctx.GatherUpToNDahan(3)), new SpaceAction("1 fear and push 1 explorer and 1 town", FearAndPushExplorerAndTown).Matches(x => x.Dahan.Any) )); }
static public Task Act(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( Cmd.PushNDahan(1), Cmd.PushExplorersOrTowns(ctx.Dahan.Count) )); }
public static Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Gather 1 explorer/town", ctx => ctx.GatherUpTo(1, Invader.Explorer, Invader.Town)), new SpaceAction("Gather up to 2 dahan", ctx => ctx.GatherUpToNDahan(2)) )); }
static public Task Option1(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( Cmd.PushUpToNExplorers(2), Cmd.PushUpToNTowns(1) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("2 Damage", ctx => ctx.DamageInvaders(2)).Matches(x => x.HasInvaders), new SpaceAction("Remove 1 Blight", ctx => ctx.RemoveBlight()).Matches(x => x.HasBlight) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( Cmd.Destroy2FewerDahan, // !! The next time dahan would be destroyed in target land, Destroy 2 fewer dahan. Cmd.PushUpToNDahan(3) // Push up to 3 dahan )); }
static public Task Act(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction($"Each dahan deals 1 damage to a different invader", ctx => ctx.Apply1DamageToDifferentInvaders(ctx.Dahan.Count)), new SpaceAction("push up to 3 dahan", ctx => ctx.PushUpToNDahan(3)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Draw Major Power", DrawMajorOrGetEnergy).Matches(x => x.Dahan.Any), // if target land has dahan new SpaceAction("2 fear", ctx => ctx.AddFear(2)).Matches(x => x.HasInvaders) )); }
static public Task ActionAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Push 1 Explorer", ctx => ctx.Push(1, Invader.Explorer)), new SpaceAction("2 fear", ctx => ctx.AddFear(2)) )); }
static async Task DoPower(TargetSpaceCtx ctx) { await ctx.SelectActionOption( new SpaceAction( "Push explorers and towns toward nearest ocean", PushExplorersAndTownsTowardsOcean ), new SpaceAction( "Destroy all explorers and towns", ctx => ctx.Invaders.DestroyAny(int.MaxValue, Invader.Explorer, Invader.Town)).Matches(x => x.IsCoastal) ); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("1 fear, add beast", FearAndBeast), new SpaceAction("destroy 1 explorer/town", DestroyExplorerTown).Matches(x => x.Beasts.Any) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("remove 1 blight", ctx => ctx.RemoveBlight()), new SpaceAction("push up to 3 dahan", ctx => ctx.PushUpToNDahan(3)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("1 damage", ctx => ctx.DamageInvaders(1)), new SpaceAction("Defend 4", ctx => ctx.Defend(4)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( Cmd.AddWilds(1), Cmd.PushUpToNExplorers(1) )); }
static public Task Act(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("1 damage per dahan", ctx => ctx.DamageInvaders(ctx.Dahan.Count)), new SpaceAction("gather up to 3 dahan", ctx => ctx.GatherUpToNDahan(3)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("1 fear, Destroy 1 explorer", FearAndExplorer), new SpaceAction("add 1 wilds", ctx => ctx.Wilds.Add(1)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( Cmd.DamageToTownOrExplorer(3), Cmd.AddStrife(1) )); }
static public Task Option2(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( DahanDamage, Cmd.PushUpToNDahan(3) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Add 1 disease", ctx => ctx.Disease.Add(1)), new SpaceAction("2 fear, +1(if disease) +1(if blight)", AddFear).Matches(x => x.Tokens.HasInvaders()) )); }
static public Task Act(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("push up to 4 dahan", ctx => ctx.PushUpToNDahan(4)).Matches(x => x.Dahan.Any), new SpaceAction("2 fear", ctx => ctx.AddFear(2)).Matches(x => x.Tokens.HasInvaders()) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("add disease ", ctx => ctx.Disease.Add(1)), new SpaceAction("1 fear and 1 strife", FearAndStrife) )); }
public static Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("+1 badland, +1 wilds", ctx => { ctx.Badlands.Add(1); ctx.Wilds.Add(1); }), new SpaceAction("1 damage", ctx => ctx.DamageInvaders(1)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("1 damage to each town/city", ctx => ctx.DamageEachInvader(1, Invader.City, Invader.Town)), new SpaceAction("defend 10", ctx => ctx.Defend(10)) )); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("For each dahan, 1 Damage to town/city.", EachDahanDamagesTownOrCity), new SpaceAction("1 Fear. Gather up to 2 Dahan", OneFearAndGatherUpTo2Dahan) )); }
static public async Task ActAsync(TargetSpaceCtx ctx) { await ctx.SelectActionOption( new SpaceAction("1 fear, add 1 beast", ctx => { ctx.AddFear(1); ctx.Beasts.Add(1); } ), new SpaceAction("3 fear", ctx => ctx.AddFear(3)) .Matches(x => ctx.Tokens.HasInvaders() && x.Beasts.Any) ); }
static public async Task ActAsync(TargetSpaceCtx ctx) { // Gather or Push 1 Explorer. await ctx.SelectActionOption(Cmd.GatherUpToNExplorers(1), Cmd.PushUpToNExplorers(1)); // Isolate target land. ctx.Isolate(); }
static public Task ActAsync(TargetSpaceCtx ctx) { return(ctx.SelectActionOption( new SpaceAction("Gather up to 2 dahan", ctx => ctx.GatherUpToNDahan(2)), new SpaceAction("1 fear/dahan, max 3", ctx => ctx.AddFear(Math.Min(3, ctx.Dahan.Count))) .Matches(x => x.Tokens.HasAny(Invader.City, Invader.Town)) )); }