Beispiel #1
0
 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;
    }
Beispiel #3
0
    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;
    }
Beispiel #5
0
    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;
 }
Beispiel #8
0
 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));
     }
 }