Interface Trigger

All Superinterfaces:
Serializable
All Known Implementing Classes:
AbstractFriendlyCardAura, Aftermath, AttributeAura, AttributeValueAura, Aura, BuffAura, CaptnCookishAura, CardAura, CardCostInsteadAura, CardCostModifier, ChooseOneOverrideAura, DiscoverNotSelectedSpellBonusAura, DoubleBattlecriesAura, DoubleCombosAura, DoubleDeathrattlesAura, DoubleTurnEndTriggersAura, EffectlessAura, Enchantment, EnrageAura, GatekeeperShaAura, HeroPowerBonusAura, HoardingWhelpAura, IncorruptibilityAura, LifedrainGrantsArmorInsteadAura, LifedrainHealsAdditionalAura, MenagerieMogulAura, ModifyBuffSpellAura, ModifyTemporaryAttackSpellAura, NoggenfoggerAura, OneTurnCostModifier, Opener, PhysicalAttackTargetOverrideAura, Quest, ReservoirsAlwaysActiveAura, ReservoirsNeverActiveAura, Secret, SecretsTriggerTwiceAura, SpecificCardFilterOverrideAura, SpellAura, SpellEffectsCastTwiceAura, SpellOverrideAura, SpellsCastThriceAura, SpellsCastTwiceAura, SpellTargetsAdjacentAura, StatefulAttributeValueAura, SupremaciesTriggerTwiceAura, SupremacyBonusEffectAura, TargetSelectionOverrideAura, TheliaSilentdreamerAura, ToggleCostModifier, WhereverTheyAreEnchantment

public interface Trigger extends Serializable
Triggers respond to GameEvent objects that are raised by various GameLogic methods, implementing cards that do something when something else happens.
See Also:
  • Method Details

    • clone

      Trigger clone()
      Clones the trigger with any internal state.
      Returns:
      A clone of this trigger.
    • queues

      boolean queues(GameEvent event)
      Checks if a trigger should queue in response to a specific event.
      Parameters:
      event - A game event.
      Returns:
      true if the trigger should queue in response to this event.
    • getHostReference

      EntityReference getHostReference()
      Gets a reference to the Entity that is "hosting," or owning, the trigger.
      Returns:
      An entity reference. This is typically not null.
    • getOwner

      int getOwner()
      Gets the player who owns this trigger.
      Returns:
      GameContext.PLAYER_1 or GameContext.PLAYER_2.
    • interestedIn

      boolean interestedIn(com.hiddenswitch.spellsource.rpc.Spellsource.GameEventTypeMessage.GameEventType eventType)
      Returns true if this trigger is a listener for the given Spellsource.GameEventTypeMessage.GameEventType.
      Parameters:
      eventType - The event type.
      Returns:
      true if this trigger wants its onGameEvent(GameEvent) method called whenever it queues(GameEvent) to the specified eventType.
    • isExpired

      boolean isExpired()
      Checks if, due to the execution of possibly complex rules inside or outside the trigger, the trigger is expired (no longer should fire).
      Returns:
      true if the trigger should be removed and will no longer fire.
    • onAdd

      void onAdd(GameContext context, Player player, Entity source, Entity host)
      Called when the trigger is added into a GameContext's state.
      Parameters:
      context - The game context.
      player -
      source -
      host -
    • onGameEvent

      void onGameEvent(GameEvent event)
      Parameters:
      event - The game event this trigger is now processing.
    • setHostReference

      void setHostReference(EntityReference entityReference)
      Sets or changes the Entity that is the owner / host of this trigger.
      Parameters:
      entityReference - The host Entity/
    • setOwner

      void setOwner(int playerIndex)
      Sets the player who is the owner of this trigger.
      Parameters:
      playerIndex - GameContext.PLAYER_1 or GameContext.PLAYER_2.
    • isPersistentOwner

      boolean isPersistentOwner()
      Indicates this trigger cannot change owners. For example, a Secret does not have a persistent owner, because card texts can steal secrets. However, the trigger described by Blessing of Wisdom does have a persistent owner, since the casting player of that spell should always draw the card it receives.
      Returns:
      true if the trigger's onGameEvent(GameEvent) should be evaluated from the point of view of the owner when the trigger was created, as opposed to what the owner is right now (which may have changed).
    • oneTurnOnly

      boolean oneTurnOnly()
      Indicates this trigger is only active for the current turn, then it should expire(GameContext).
      Returns:
      true if this is a one-turn long trigger.
    • expire

      void expire(GameContext context)
      Expires the trigger; marks it for removal and prevents it from executing in the future.
      Parameters:
      context -
    • fires

      default boolean fires(GameEvent event)
      Returns true if the trigger fire in response to the given GameEvent.

      It is already queued in this situation.

      Parameters:
      event - The currently raised event.
      Returns:
      true if the trigger can fire.
    • isActivated

      boolean isActivated()