static public async Task ActAsync(TargetSpiritCtx ctx) { if (ctx.Other.Presence.Destroyed == 0) { return; } // into a single land, up to range 2 from your presence. // Note - Jonah says it is the originators power and range and decision, not the targets var spaceOptions = ctx.Self.GetTargetOptions(TargettingFrom.None, ctx.GameState, new TargetSourceCriteria(From.Presence), new TargetCriteria(2, Target.Any)) .Where(ctx.Other.Presence.IsValid) .ToArray(); TargetSpaceCtx selfPickLandCtx = await ctx.SelectSpace("Select location for target spirit to add presence", spaceOptions); // target spirit adds 2 of their destroyed presence await ctx.OtherCtx .Target(selfPickLandCtx.Space) .Presence.PlaceDestroyedHere(2); // if any presene was added, 2 damage to each town/city in that land. await selfPickLandCtx.DamageEachInvader(2, Invader.Town, Invader.City); // if you have 3 fire, 3 earth , 2 plant, 4 damage in that land if (await ctx.YouHave("3 fire,3 earth,2 plant")) { await selfPickLandCtx.DamageInvaders(4); } }
static public async Task ActAsync(TargetSpiritCtx ctx) { // You and other spirit share presence for targeting if (ctx.Self != ctx.Other) { ctx.GameState.TimePasses_ThisRound.Push(new SourceCalcRestorer(ctx.Self).Restore); ctx.GameState.TimePasses_ThisRound.Push(new SourceCalcRestorer(ctx.Other).Restore); _ = new EntwinedPresenceSource(ctx.Self, ctx.Other); // auto-binds to spirits } // Target spirit gains a power Card. var result = await ctx.OtherCtx.Draw(); // You gain one of the power Cards they did not keep. await DrawFromDeck.TakeCard(ctx.Self, result.Rejected.ToList()); // if you have 2 water, 4 plant, if (await ctx.YouHave("2 water,4 plant")) { // you and target spirit each gain 3 energy ctx.Self.Energy += 3; ctx.Other.Energy += 3; // may gift the other 1 power from hand. await GiftCardToSpirit(ctx.Self, ctx.Other); await GiftCardToSpirit(ctx.Other, ctx.Self); } }
static public async Task ActAsync(TargetSpiritCtx ctx) { // destroy one of your presence await ctx.Presence.DestroyOne(DestoryPresenceCause.SpiritPower); // If 2 sun, do both in the same land await TargetSpiritAction(ctx.OtherCtx, await ctx.YouHave("2 sun")); }
static public async Task ActAsync(TargetSpiritCtx ctx) { // target Spirit gains a major power by drawing 2 and keeping 1, without having to forget another power card PowerCard card = (await ctx.OtherCtx.DrawMajor(false, 2)).Selected; // if 2 of each element, if (await ctx.YouHave("2 sun,2 moon,2 fire,2 air,2 water,2 earth,2 plant,2 animal")) { await PlayCardByPayingHalfCostOrForgetting(card, ctx.OtherCtx); } }
public static async Task ActAsync(TargetSpiritCtx ctx) { // Target Spirt may choose one of their Sacred Sites. var space = await ctx.OtherCtx.Presence.SelectSacredSite("Replace presence with badlands"); await TargetSpiritActions(ctx.OtherCtx.Target(space)); // if you have 3 moon,2 fire,2 air: if (await ctx.YouHave("3 moon,2 fire,2 air")) { var sCtx = ctx.Target(space); // 1 damage in an adjactnt land. await DamageInAdjacentLand(sCtx); // 1 damage in an adjactnt land. await DamageInAdjacentLand(sCtx); } }
static public async Task ActionAsync(TargetSpiritCtx ctx) { // target spirit gains 3 energy ctx.Other.Energy += 3; // once this turn, target may repeat a power card by paying its cost again int repeats = 1; // if you have 2 sun, 2 fire, 3 air, target may repeat 2 more times by paying card their cost if (await ctx.YouHave("2 sun,2 fire,3 air")) { repeats += 2; } while (repeats-- > 0) { ctx.Other.AddActionFactory(new RepeatCardForCost(Name)); } }
static public async Task ActAsync(TargetSpiritCtx ctx) { TargetSpaceCtx toCtx = await AddPresenceAndWilds(ctx.OtherCtx); // if you have 3 sun, 3 plant if (await ctx.YouHave("3 sun,3 plant")) { // in that land add 1 additional wilds await toCtx.Wilds.Add(1); // and remove 1 blight. var blight = toCtx.Blight; if (blight.Any) { await toCtx.RemoveBlight(); } // Target Spirit gains a power card. await ctx.Self.Draw(ctx.GameState); } }
static public async Task ActAsync(TargetSpiritCtx ctx) { await TargetActions(ctx.OtherCtx, await ctx.YouHave("2 air,2 water")); }