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)) )); }
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 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 async Task Act(TargetSpaceCtx ctx) { // you may gather 1 dahan await ctx.GatherUpToNDahan(1); // Each dahan destroys 1 explorer await ctx.Invaders.Destroy(ctx.Dahan.Count, Invader.Explorer); }
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)) )); }
static public async Task OptionAsync(TargetSpaceCtx ctx) { var elements = ctx.Self.Elements; int gatherCount = elements[Element.Air]; int pushCount = elements[Element.Sun]; await ctx.GatherUpToNDahan(gatherCount); await ctx.PushUpToNDahan(pushCount); }
static public async Task ActAsync(TargetSpaceCtx ctx) { // Gather up to 1 Dahan. await ctx.GatherUpToNDahan(1); // Then, if Dahan are present, either: if (ctx.Dahan.Any) { await ctx.SelectActionOption(Cmd.Defend1PerDahan, DamageAddedOrMovedInvaders); } }
static public async Task ActionAsync(TargetSpaceCtx ctx) { // Gather up to 2 Dahan await ctx.GatherUpToNDahan(2); // If there are now at least 2 dahan, then add 1 dahan and gain 1 energy if (2 <= ctx.Dahan.Count) { await ctx.Dahan.Add(1); ++ctx.Self.Energy; } }
static public async Task Act(TargetSpaceCtx ctx) { // gather up to 4 dahan await ctx.GatherUpToNDahan(4); // if invaders are present and dahan now out numberthem, 3 fear var invaderCount = ctx.Tokens.InvaderTotal(); if (0 < invaderCount && invaderCount < ctx.Dahan.Count) { ctx.AddFear(3); } }
static public async Task ActAsync(TargetSpaceCtx ctx) { // You may Gather 1 dahan await ctx.GatherUpToNDahan(1); // If the Terro Level is 2 or lower if (ctx.GameState.Fear.TerrorLevel <= 2) { // Gather 1 town await ctx.Gather(1, Invader.Town); // And the first ravage in target land becomes a build there instead. FirstRavageBecomesABuild(ctx); } }
static public async Task ActAsync(TargetSpaceCtx ctx) { // if you have 2 sun, 2 air, 2 animal, // First Gather up to 3 dahan if (await ctx.YouHave("2 sun,2 air,2 animal")) { await ctx.GatherUpToNDahan(3); } // move up to 5 dahan from target land to any land. Space destination = await ctx.MoveTokensOut(max : 5, TokenType.Dahan, range : 100); // defend 5 in that land if (destination != null) { ctx.Target(destination).Defend(5); } }
static public async Task ActAsync(TargetSpaceCtx ctx) { // A Spirit with presence on target board may add 1 of their Destroyed presence. var spiritOptions = ctx.GameState.Spirits.Where(s => s.Presence.Spaces.Any(s => s.Board == ctx.Space.Board) && 0 < s.Presence.Destroyed).ToArray(); var other = await ctx.Decision(new Select.Spirit(Name, spiritOptions, Present.AutoSelectSingle)); if (other != null) { await ctx.TargetSpirit(other).OtherCtx.Target(ctx.Space).Presence.PlaceDestroyedHere(); } // Gather up to 2 dahan. await ctx.GatherUpToNDahan(2); // Push 1 blight. await ctx.Push(1, TokenType.Blight); }
static public async Task ActAsync(TargetSpaceCtx ctx) { await ctx.GatherUpToNDahan(2); await DahanHelper.BoostDahanHealthForRound(ctx, 2); }
static public async Task ActAsync(TargetSpaceCtx ctx) { await ctx.GatherUpToNDahan(3); await ctx.PushUpToNDahan(3); }
static public async Task Act(TargetSpaceCtx ctx) { await ctx.GatherUpTo(2, Invader.Explorer); await ctx.GatherUpToNDahan(2); }
static Task OneFearAndGatherUpTo2Dahan(TargetSpaceCtx ctx) { ctx.AddFear(1); return(ctx.GatherUpToNDahan(2)); }