コード例 #1
0
    public static async Task ActAsync(SelfCtx ctx)
    {
        // Your presence may count as badlands and beast.
        int PresenceAsToken(GameState _, Space space) => ctx.Self.Presence.CountOn(space);

        ctx.GameState.Tokens.RegisterDynamic(PresenceAsToken, TokenType.Badlands, false);
        ctx.GameState.Tokens.RegisterDynamic(PresenceAsToken, TokenType.Beast, false);
        // (Decide per presence, per action) ... Not doing this bit exactly, both are always present, but can't be destroyed.

        // your presence cannot move.
        // !!! not implemented

        // if you have 2 plant 3 animal:
        if (await ctx.YouHave("2 plant,3 animal"))
        {
            // 2 fear and
            ctx.AddFear(2);
            // 2 damamge in one of your lands.
            var space = await ctx.Decision(new Select.Space("2 damage", ctx.Self.Presence.Spaces, Present.Always));

            if (space != null)
            {
                await ctx.Target(space).DamageInvaders(2);
            }
        }
    }
コード例 #2
0
    static public async Task Option1(SelfCtx ctx)
    {
        // 3 fear
        ctx.AddFear(3);

        // Gain 1 energy
        var spirit = ctx.Self;

        spirit.Energy++;

        // Reclaim up to 1 power card from play or your discard pile
        var cards = spirit.InPlay.Union(spirit.DiscardPile).ToArray();

        if (cards.Length == 0)
        {
            return;
        }
        var card = await spirit.SelectPowerCard("Reclaim card", cards, CardUse.Reclaim, Present.Always);

        spirit.Reclaim(card);           // reclaim it now
    }