public override void NotifyOfEvent(AbstractEvent eventData) { if (eventData.type == EventType.POISE_APPLIED) { EventPoiseApplied data = (EventPoiseApplied)eventData; if (data.target.OWNER == this.OWNER) { NegotiationManager.Instance.AddAction(new AddStacksToArgumentAction(this, 1)); } } else if (eventData.type == EventType.TURN_END) { EventTurnEnd data = (EventTurnEnd)eventData; if (data.end == this.OWNER) { NegotiationManager.Instance.AddAction(new DestroyArgumentAction(this)); } } else if (eventData.type == EventType.ARGUMENT_DESTROYED) { EventArgDestroyed data = (EventArgDestroyed)eventData; if (data.argumentDestroyed == this) { AbstractCharacter enemy = TurnManager.Instance.GetOtherCharacter(this.OWNER); NegotiationManager.Instance.AddAction(new DamageAction(null, enemy, this.stacks, this.stacks, this)); } } }
public override void NotifyOfEvent(AbstractEvent eventData) { EventArgDestroyed data = (EventArgDestroyed)eventData; if (data.destroyingCard == this) { GameState.mastery += 1; } return; }
public override void NotifyOfEvent(AbstractEvent eventData) { EventArgDestroyed data = (EventArgDestroyed)eventData; if (data.argumentDestroyed.OWNER != this.OWNER) { this.OWNER.curAP += this.stacks; NegotiationManager.Instance.AddAction(new DrawCardsAction(this.OWNER, this.stacks)); } }
public override void NotifyOfEvent(AbstractEvent eventData) { EventArgDestroyed data = (EventArgDestroyed)eventData; if (data.destroyingCard == this) { NegotiationManager.Instance.AddAction(new DrawCardsAction(this.OWNER, DRAW)); this.OWNER.curAP += this.ACTIONS; } return; }
public override void NotifyOfEvent(AbstractEvent eventData) { switch (eventData.type) { case EventType.TURN_END: EventTurnEnd data = (EventTurnEnd)eventData; if (data.end == this.OWNER) { this.stacks *= 2; } break; case EventType.ARGUMENT_DESTROYED: EventArgDestroyed destroyData = (EventArgDestroyed)eventData; if (destroyData.argumentDestroyed == this) { NegotiationManager.Instance.AddAction(new DamageAction(this.OWNER.GetCoreArgument(), this.OWNER, this.stacks, this.stacks, this)); } break; } }
// Handle post-card playing effects (move card to discard pile, spend AP costs, etc.) public override void NotifyOfEvent(AbstractEvent eventData) { if (eventData.type == EventType.CARD_PLAYED) { EventCardPlayed data = (EventCardPlayed)eventData; AbstractCard cardPlayed = data.cardPlayed; cardsPlayedThisTurn.Add(data.cardPlayed); numCardsPlayedThisTurn += 1; if (cardPlayed.COSTS_ALL_AP) { cardPlayed.OWNER.curAP -= cardPlayed.OWNER.curAP; // Handle X-cost cards } else { cardPlayed.OWNER.curAP -= cardPlayed.COST; } if (cardPlayed.HasTag(CardTags.DESTROY)) // Destroy card { cardPlayed.OWNER.Destroy(cardPlayed); } else if (cardPlayed.IsTrait() || cardPlayed.HasTag(CardTags.SCOUR)) // Scour stuff { cardPlayed.OWNER.Scour(cardPlayed); } else { if (cardPlayed.OWNER.GetHand().Contains(cardPlayed)) // This check is to prevent adding cards from "choice" mechanics from being added to the discard (see: Deckard's Instincts card) { cardPlayed.OWNER.GetHand().Remove(cardPlayed); cardPlayed.OWNER.GetDiscardPile().AddCard(cardPlayed); } } } else if (eventData.type == EventType.ARGUMENT_DESTROYED) { EventArgDestroyed data = (EventArgDestroyed)eventData; enemy.RecalculateIntents(data.argumentDestroyed); } }
public override void NotifyOfEvent(AbstractEvent eventData) { if (eventData.type == EventType.ARGUMENT_DESTROYED) { EventArgDestroyed data = (EventArgDestroyed)eventData; if (data.argumentDestroyed.OWNER != this.OWNER) { this.oldCost = this.COST; this.COST = 0; this.doubleDmg = true; } } if (eventData.type == EventType.TURN_END) { EventTurnEnd data = (EventTurnEnd)eventData; if (data.end == this.OWNER) { this.COST = this.oldCost; this.doubleDmg = false; } } return; }
public override void NotifyOfEvent(AbstractEvent eventData) { if (eventData.type == EventType.TURN_END) { EventTurnEnd data = (EventTurnEnd)eventData; if (data.end == this.OWNER) { this.stacks -= 1; } } else if (eventData.type == EventType.ARGUMENT_DESTROYED) { EventArgDestroyed data = (EventArgDestroyed)eventData; if (data.argumentDestroyed == this) { this.stacks = 0; } } else { EventCardPlayed data = (EventCardPlayed)eventData; if (data.cardType == CardType.ATTACK && data.cardAmbient == CardAmbient.AGGRESSION && data.cardPlayed.OWNER == this.OWNER) { NegotiationManager.Instance.AddAction(new DeployArgumentAction(this.OWNER, new ArgumentAmbientShiftAggression(), 1)); } } if (this.stacks != currentlyApplying) { int delta = (this.stacks - currentlyApplying); this.OWNER.dmgDealtAggressionAdd += delta; currentlyApplying = this.stacks; } if (this.stacks == 0) { NegotiationManager.Instance.AddAction(new DestroyArgumentAction(this)); } }