Exemple #1
0
    public static async Task ActAsync(TargetSpaceCtx ctx)
    {
        // 2 damage.
        int damage = 2;
        // defend 8.
        int defend = 8;

        bool hasBonus = await ctx.YouHave("2 earth,2 plant");

        if (hasBonus)
        {
            // +2 damage.
            damage += 2;
            // +2 defend.
            defend += 2;
        }

        await ctx.DamageInvaders(damage);

        ctx.Defend(defend);

        // add 1 wilds.
        await ctx.Wilds.Add(1);

        // isolate target land
        ctx.Isolate();

        // if you have 2 earth, 2 plant:
        if (hasBonus)
        {
            // Add 1 badland.
            await ctx.Badlands.Add(1);
        }
    }
Exemple #2
0
    public static async Task ActAsync(TargetSpaceCtx ctx)
    {
        // 1 fear.
        ctx.AddFear(1);

        // 2 damamge.
        await ctx.DamageInvaders(2);

        // Isolate target land.
        ctx.Isolate();

        // After invaders / dahan are Moved into target land, Destroy them.
        ctx.GameState.Tokens.TokenAdded.ForRound.Add(async(args) => {
            if (args.Space == ctx.Space &&
                args.Token.Class.IsOneOf(Invader.Explorer, Invader.Town, Invader.City, TokenType.Dahan)
                )
            {
                await args.GameState.Tokens[args.Space].Destroy(args.Token, args.Count);
            }
        });

        // if you have 2 moon, 4 water, 2 earth:
        if (await ctx.YouHave("2 moon,4 water,2 earth"))
        {
            // +4 damamge,
            await ctx.DamageInvaders(4);

            // Add 1 badland.
            await ctx.Badlands.Add(1);

            // Add 1 wilds
            await ctx.Wilds.Add(1);
        }
    }
Exemple #3
0
    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)
    {
        // Isolate target land.
        ctx.Isolate();

        // Each Invader does -1 Damage.
        ctx.ModifyRavage(cfg => cfg.DamageFromAttacker = (attacker) => attacker.FullHealth + (attacker.Class.Category == TokenCategory.Invader ? -1 : 0));

        return(Task.CompletedTask);
    }
Exemple #5
0
    static public Task ActAsync(TargetSpaceCtx ctx)
    {
        // 2 fear if Invaders are present.
        if (ctx.HasInvaders)
        {
            ctx.AddFear(2);
        }

        // Isolate target land.
        ctx.Isolate();

        return(Task.CompletedTask);
    }
Exemple #6
0
    static public async Task ActAsync(TargetSpaceCtx ctx)
    {
        // Gather up to 1 Blight
        await ctx.GatherUpTo(1, TokenType.Blight);

        // Isolate target land.
        ctx.Isolate();

        // When blight is added to target land, it doesn't cascade.
        ctx.GameState.ModifyBlightAddedEffect.ForRound.Add(x => {
            if (x.Space == ctx.Space)
            {
                x.Cascade = false;
            }
        });
    }
Exemple #7
0
    public static async Task ActAsync(TargetSpaceCtx ctx)
    {
        // Gather 5 town, 5 dahan, 5 beast, and 15 explorer.
        await ctx.Gatherer
        .AddGroup(5, Invader.Town)
        .AddGroup(5, TokenType.Dahan)
        .AddGroup(5, TokenType.Beast)
        .AddGroup(15, Invader.Explorer)
        .GatherN();

        // if you have 2 sun, 3 air, 2 plant:
        if (await ctx.YouHave("2 sun,3 air,2 plant"))
        {
            // invaders skip all actions in target land.
            ctx.SkipAllInvaderActions();
            // Isolate target land.
            ctx.Isolate();
        }
    }