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)) ); } }
static public async Task ActAsync(TargetSpaceCtx ctx) { // 6 fear ctx.AddFear(6); // 20 damage. await ctx.DamageInvaders(20); // Destroy all dahan and beast. await DestroyDahanAndBeasts(ctx); // Add 1 blight await ctx.AddBlight(1); // if you have 4 fire, 3 earth: if (await ctx.YouHave("4 fire,3 earth")) { // Destroy all invaders. await ctx.Invaders.DestroyAny(int.MaxValue, Invader.City, Invader.Town, Invader.Explorer); // Add 1 wilds. await ctx.Wilds.Add(1); // In each adjacent land: foreach (var adj in ctx.Adjacent.Select(ctx.Target)) { await EffectAdjacentLand(adj); } } }
static public async Task ActAsync(TargetSpaceCtx ctx) { await ctx.Invaders.Destroy(3, Invader.Town); await ctx.Invaders.Destroy(int.MaxValue, Invader.Explorer); await ctx.AddBlight(1); }
static async Task EffectAdjacentLand(TargetSpaceCtx adj) { // 10 damage, await adj.DamageInvaders(10); // destroy all dahan and beast. await DestroyDahanAndBeasts(adj); // IF there are no blight, add 1 blight if (adj.Blight.Count == 0) { await adj.AddBlight(1); } }
static public async Task Act(TargetSpaceCtx ctx) { // Destroy 3 towns. await ctx.Invaders.Destroy(3, Invader.Town); // 1 damage to each town/city await ctx.DamageEachInvader(1, Invader.Town, Invader.City); // add 1 blight await ctx.AddBlight(1); // if you have 3 sun, destroy 1 city if (await ctx.YouHave("3 sun")) { await ctx.Invaders.Destroy(1, Invader.City); } }
static public async Task ActionAsync(TargetSpaceCtx ctx) { int fear = 3; int damage = 5; // if you have 4 fire if (await ctx.YouHave("4 fire")) { fear += 2; damage += 5; } // if target is Jungle / Wetland, add 1 blight if (ctx.IsOneOf(Terrain.Jungle, Terrain.Wetland)) { await ctx.AddBlight(1); } ctx.AddFear(fear); await ctx.DamageInvaders(damage); }
static public async Task Option4(TargetSpaceCtx ctx) { // In a land with blight and presence (Select a space, not necessarily the one you targetted with power (I guess...) var spacesWithPresenceAndBlight = ctx.Self.Presence.Spaces .Where(s => ctx.Target(s).HasBlight); var space = await ctx.Decision(new Select.Space($"Push all dahan, destroy invaders and beast, 1 blight", spacesWithPresenceAndBlight, Present.Always)); var spaceCtx = ctx.Target(space); // Push all Dahan await spaceCtx.PushDahan(int.MaxValue); // Destroy all invaders and Beasts var beasts = spaceCtx.Beasts; await beasts.Destroy(beasts.Count); await spaceCtx.Invaders.DestroyAny(int.MaxValue, Invader.Explorer, Invader.Town, Invader.City); // Add 1 blight await ctx.AddBlight(1); }
static public async Task ActAsync(TargetSpaceCtx ctx) { // 2 damage. Destroy all explorers await ctx.Invaders.Destroy(int.MaxValue, Invader.Explorer); int damage = 2; // if target land is J/W, add 1 blight if (ctx.IsOneOf(Terrain.Jungle, Terrain.Wetland)) { await ctx.AddBlight(1); } // if you have 2 fire, 3 air, 2 earth: +4 damage. Add 1 wilds if (await ctx.YouHave("2 fire,3 air, 2 earth")) { await ctx.Wilds.Add(1); damage += 4; } await ctx.DamageInvaders(damage); }
static public async Task ActAsync(TargetSpaceCtx ctx) { // 1 fear. ctx.AddFear(1); // 1 damage. await ctx.DamageInvaders(1); // 1 Damage to Dahan await ctx.DamageDahan(1); // Add 1 badlands, 1 beast, 1 disease, 1 strife, 1 wilds, and 1 blight. await ctx.Badlands.Add(1); await ctx.Beasts.Add(1); await ctx.AddStrife(); await ctx.Wilds.Add(1); await ctx.AddBlight(1); }
static public async Task Act(TargetSpaceCtx ctx) { // 2 fear ctx.AddFear(2); // Push up to 2 explorer/towns int pushCount = 2; // if target has blight if (ctx.HasBlight) { // +2 fear ctx.AddFear(2); // push up to 2 more explorers/towns pushCount += 2; } // add 1 blight await ctx.AddBlight(1); await ctx.PushUpTo(pushCount, Invader.Explorer, Invader.Town); }
static public async Task ActAsync(TargetSpaceCtx ctx) { // 1 fear ctx.AddFear(1); // 7 damage int damage = 7; // add 1 blight await ctx.AddBlight(1); // destroy all dahan await ctx.DestroyDahan(ctx.Dahan.Count); if (await ctx.YouHave("3 earth,2 plant,2 animal")) { int blightCount = ctx.BlightOnSpace; ctx.AddFear(blightCount); damage += 4 * blightCount; } await ctx.DamageInvaders(damage); }
static async Task ApplyPowerOnTarget(TargetSpaceCtx ctx) { // add 1 blight. await ctx.AddBlight(1); // Add 2 beasts var beasts = ctx.Beasts; await beasts.Add(2); // Gather up to 2 beasts await ctx.GatherUpTo(2, TokenType.Beast); // each beast deals: // 1 fear ctx.AddFear(beasts.Count); // 2 damage to invaders await ctx.DamageInvaders(beasts.Count * 2); // and 2 damage to dahan. await ctx.DamageDahan(beasts.Count); // Destroy 1 beast. await beasts.Destroy(1); }
static public async Task ActAsymc(TargetSpaceCtx ctx) { // Destroy 1 town await ctx.Invaders.Destroy(1, Invader.Town); // discard the top card of the minor power deck. var card = ctx.GameState.MinorCards.FlipNext(); // Show the card to the user _ = await ctx.Self.SelectPowerCard(OverenthusiasticArson.Name + " turned up:", new PowerCard[] { card }, CardUse.Other, Present.Always); // IF it provides fire: if (card.Elements.Contains(Element.Fire)) { // 1 fear ctx.AddFear(1); // 2 damage, await ctx.DamageInvaders(2); // add 1 blight await ctx.AddBlight(1); } }