Page 1 of 1

- p/-t cards don't let etb to resolve if creatures will die

PostPosted: 16 Jan 2018, 16:20
by Aswan jaguar
Describe the Bug:
1- Sludge Strider both abilities don't require {1} they are free.
2- Sludge Strider leave the battlefield ability triggers even if it leaves itself from battlefield.
fixed
3- Also if an artifact with toughness 0 enters the battlefield Sludge Strider triggers only once.
Which card did behave improperly?
Sludge Strider

Which update are you using? (date, name)Which type? (duel, gauntlet, sealed deck)
Manalink dev 778ccb5 version - duel

What exactly should be the correct behavior/interaction?
1- Sludge Strider both abilities require {1} if you choose to use the triggers.
2- Sludge Strider leave the battlefield ability triggers only if another artifact leaves the battlefield.
Pay attention though if it leaves the battlefield or enters the battlefield with another artifact the ability should trigger for the other artifact.
3- See 2nd ruling below.
Rulings:
1- 2/1/2009 If Sludge Strider and another artifact enter the battlefield under your control at the same time, Sludge Strider’s triggered ability will trigger. Similarly, if Sludge Strider and another artifact you control leave the battlefield at the same time, Sludge Strider’s triggered ability will trigger.
2- 2/1/2009 If an artifact creature with 0 toughness enters the battlefield under your control, Sludge Strider’s ability will trigger a total of twice: Once when that creature enters the battlefield, and once when it’s put into a graveyard. Both abilities will be put on the stack after the state-based action check that puts the 0-toughness creature into the graveyard is finished.


Are any other cards possibly affected by this bug?
-

Re: Sludge Strider no payment+wrong triggers

PostPosted: 30 Apr 2019, 16:28
by Aswan jaguar
Fixed 1 and 2 in commit 9e69230a.
The 3 bug seems to be too complicated for me, it triggers only when the 0 power artifact is leaving battlefield at least it does so with Engineered Plague with Memnite selected and then cast one.
code | Open
Code: Select all
int card_sludge_strider(int player, int card, event_t event){
/*
Sludge Strider |1|W|U|B
Artifact Creature — Insect 3/3
Whenever another artifact enters the battlefield under your control or another artifact you control leaves the battlefield, you may pay {1}.
   If you do, target player loses 1 life and you gain 1 life.
*/

   if( (trigger_condition == TRIGGER_COMES_INTO_PLAY || trigger_condition == TRIGGER_LEAVE_PLAY) && affect_me(player, card) ){

      test_definition_t this_test;
      default_test_definition(&this_test, TYPE_ARTIFACT);
      this_test.not_me = 1;

      etb_ability_global(player, event, RESOLVE_TRIGGER_AI(player), 0, &this_test, player, card);

      if( trigger_condition == TRIGGER_LEAVE_PLAY && reason_for_trigger_controller == player){
         if( trigger_cause_controller == player && is_what(trigger_cause_controller, trigger_cause, TYPE_ARTIFACT) && ! (trigger_cause == card)){
            if(event == EVENT_TRIGGER){
               event_result |= RESOLVE_TRIGGER_AI(player);
            }
            else if(event == EVENT_RESOLVE_TRIGGER){
                  call_card_function(player, card, EVENT_ETB_ABILITY);
            }
         }
      }
   }

   if( event == EVENT_ETB_ABILITY ){
      target_definition_t td;
      default_target_definition(player, card, &td, TYPE_CREATURE);
      td.zone = TARGET_ZONE_PLAYERS;

      card_instance_t *instance = get_card_instance(player, card);
                     instance->number_of_targets = 0;
      if( has_mana(player, COLOR_COLORLESS, 1) && can_target(&td) ){
         charge_mana_while_resolving(player, card, EVENT_RESOLVE_TRIGGER, player, COLOR_COLORLESS, 1);
         if( spell_fizzled != 1 && pick_target(&td, "TARGET_PLAYER") ){
            lose_life(instance->targets[0].player, 1);
            gain_life(player, 1);
         }
      }
      instance->number_of_targets = 0;
   }

   return 0;
}

Re: Sludge Strider no payment+wrong triggers

PostPosted: 05 Sep 2019, 15:14
by Aswan jaguar
Fixed correctly this time to no trigger on own death but trigger for other artifacts in commit 89dca3ba.
The other issue has to be with Engineered Plague and other cards which lower p/t as they don't let cards with etb triggers to resolve their triggers if the creatures die when entering.
Checked also Elesh Norn and Curse of Death's Hold.