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)); } }
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); } }
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)); } }
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); }
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); } }