예제 #1
0
 public async Task Level1(FearCtx ctx)
 {
     // each player adds 1 strife in a land with dahan
     foreach (SelfCtx spirit in ctx.Spirits)
     {
         await spirit.AddStrifeToOne(ctx.Lands(ctx.WithDahan));
     }
 }
예제 #2
0
 public async Task Level1(FearCtx ctx)
 {
     // Each player removes 1 eplorer from a land with dahan
     foreach (var spirit in ctx.Spirits)
     {
         await spirit.RemoveTokenFromOneSpace(ctx.Lands(ctx.WithDahanAndExplorers), 1, Invader.Explorer);
     }
 }
예제 #3
0
    public async Task Level2(FearCtx ctx)
    {
        // Each player chooses a different land with dahan.  1 damage per dahan there
        var options = ctx.Lands(ctx.WithDahanAndInvaders).ToList();

        foreach (var spirit in ctx.Spirits)
        {
            options.Remove(await DamagePerDahanOnOne(options, spirit));
        }
    }
예제 #4
0
    public async Task Level2(FearCtx ctx)
    {
        // each player adds 1 strife in a land with dahan
        foreach (SelfCtx spirit in ctx.Spirits)
        {
            await spirit.AddStrifeToOne(ctx.Lands(ctx.WithDahan));
        }

        // For the rest of this turn, invaders have -1 health per strife to a minimum of 1
        await StrifedRavage.InvadersReduceHealthByStrifeCount(ctx.GameState);
    }
예제 #5
0
    public async Task Level3(FearCtx ctx)
    {
        // each player adds 1 strife in a land with dahan
        foreach (SelfCtx spirit in ctx.Spirits)
        {
            await spirit.AddStrifeToOne(ctx.Lands(ctx.WithDahan));
        }

        var decidingSpirit = ctx.Spirits.First();

        // in every land with strife, 1 damage per dahan

        foreach (var space in ctx.LandsWithStrife())
        {
            var spaceCtx = decidingSpirit.Target(space);
            await spaceCtx.DamageInvaders(spaceCtx.Dahan.Count);
        }
    }