static public Task Option2(ErruptionCtx ctx)
 {
     if (2 <= ctx.DestroyedPresence)
     {
         ctx.AddFear(ctx.DestroyedPresence);
     }
     return(Task.CompletedTask);
 }
    static public async Task Option1(ErruptionCtx ctx)
    {
        if (2 <= ctx.DestroyedPresence)
        {
            TargetSpaceCtx spaceCtx = await ctx.SelectAdjacentLandOrSelf($"Apply {ctx.DestroyedPresence} damage to");

            await spaceCtx.DamageInvaders(ctx.DestroyedPresence);
        }
    }
    static public async Task Option3(ErruptionCtx ctx)
    {
        if (6 <= ctx.DestroyedPresence)
        {
            // In each land within range 1,4 Damage.
            foreach (var adj in ctx.Adjacent)
            {
                await ctx.Target(adj).DamageInvaders(4);
            }

            // Add 1 blight to target land; doing so does not Destroy your presence.
            await ctx.AddBlight(1);             // !!! when we fix adding blight, we need to make sure this incantation does not destroy presence
        }
    }
    static public async Task Option4(ErruptionCtx ctx)
    {
        if (10 <= ctx.DestroyedPresence)
        {
            // In each land withing range 2
            // +4 Damage.
            foreach (var space in ctx.Range(2))
            {
                await ctx.Target(space).DamageInvaders(4);
            }

            // In each land adjacent to the target
            // add 1 blight if it doesn't have any.
            foreach (var adj in ctx.Adjacent)
            {
                var adjCtx = ctx.Target(adj);
                if (!adjCtx.Blight.Any)
                {
                    await adjCtx.AddBlight(1);
                }
            }
        }
    }