예제 #1
0
    static public async Task ActAsync(TargetSpaceCtx ctx)
    {
        // destroy all explorers.
        await ctx.Invaders.Destroy(int.MaxValue, Invader.Explorer);

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

        // Add 1 wilds in the originating Sands.
        // !! won't find original if this was picked using a range-extender - would need to capture that info during the targetting process
        var originatingOptions = ctx.Range(1)
                                 .Where(a => ctx.Self.Presence.Spaces.Contains(a) && a.IsSand)
                                 .ToArray();
        var originalCtx = await ctx.SelectSpace("Select origination space", originatingOptions, Present.AutoSelectSingle);

        if (originalCtx != null)
        {
            await originalCtx.Wilds.Add(1);
        }

        // 1 damage per wilds in / adjacent to target land.
        int wildsDamage = ctx.Space.Range(1).Sum(s => ctx.Target(s).Wilds.Count);

        // if you have 2 fire, 3 plant: // +1 damage per wilds in / adjacent to target land.
        if (await ctx.YouHave("2 fire,3 plant"))
        {
            wildsDamage += wildsDamage;
        }

        await ctx.DamageInvaders(wildsDamage);
    }
예제 #2
0
	static public async Task ActAsync(TargetSpaceCtx ctx ) {

		// 1 fear.
		ctx.AddFear(1);

		// add 1 badlands.
		await ctx.Badlands.Add(1);

		// Add 1 beast within 1 range.
		var spaceCtx = await ctx.SelectSpace("Add beast", ctx.FindSpacesWithinRangeOf(1,Target.Any));
		await spaceCtx.Beasts.Add(1);

		// Push up to 2 dahan.
		await ctx.PushUpToNDahan(2);
	}