public override async Task DestroyPresenceApi(SpiritPresence presence, Space space, GameState gs, DestoryPresenceCause actionType) { if (actionType != DestoryPresenceCause.SpiritPower) { await gs.Tokens[space].Disease.Add(1); } await base.DestroyPresenceApi(presence, space, gs, actionType); }
public override async Task DestroyPresenceApi(SpiritPresence presence, Space space, GameState gs, DestoryPresenceCause actionType) { await base.DestroyPresenceApi(presence, space, gs, actionType); // Destroying Volcano presence, causes damage to Dahan and invaders await gs.DahanOn(space).ApplyDamage(1); await gs.Invaders.On(space).UserSelectedDamage(1, spirit); }
public async Task DestroyPresenceApi(SpiritPresence presence, Space space, GameState gs, DestoryPresenceCause actionType) { if (space == this.protectedSpace) { var dst = await spirit.Action.Decision(new Select.Space("Instead of destroying, push presence to:", space.Adjacent, Present.Done)); if (dst != null) { presence.Move(space, dst, gs); return; } } await originalBehavior.DestroyPresenceApi(presence, space, gs, actionType); }
public Spirit(SpiritPresence presence, params PowerCard[] initialCards) { Presence = presence; Presence.TrackRevealed.ForGame.Add(Presence_TrackRevealed); foreach (var card in initialCards) { AddCardToHand(card); } Action = new ActionGateway(); decks.Add(new SpiritDeck { Icon = Img.Deck_Hand, PowerCards = Hand }); decks.Add(new SpiritDeck { Icon = Img.Deck_Played, PowerCards = InPlay }); decks.Add(new SpiritDeck { Icon = Img.Deck_Discarded, PowerCards = DiscardPile }); }
public Range1DahanDefend1(Spirit spirit) { this.presence = spirit.Presence; }
public EarthsVitality(Spirit spirit) { presence = spirit.Presence; }
public virtual Task DestroyPresenceApi(SpiritPresence presence, Space space, GameState gs, DestoryPresenceCause actionType) { presence.RemoveFrom_NoCheck(space, gs); ++presence.Destroyed; return(Task.CompletedTask); }
public ConfigurableSpirit(SpiritPresence presence) : base(presence) { }