It is currently 11 May 2024, 12:35
   
Text Size

[fixed/closed]Fastbond

Moderators: BAgate, drool66, Aswan jaguar, gmzombie, stassy, CCGHQ Admins

[fixed/closed]Fastbond

Postby BAgate » 26 Mar 2014, 06:58

Describe the Bug:
If Fastbond is in play you suffer damage when additional lands get put in play by other effects.

Which card did behave improperly ?
Fastbond

Which update are you using?(date,name)Which type(Duel,Gauntlet,Sealed Deck)
2014/02/18: Born of the Gods v2 - DUEL

What exactly should be the correct behavior/interaction ?
You should only suffer damage for cards you play beyond the 1st.

Are any other cards possibly affected by this bug ?
-
Attachments
fastbond.rar
(1.54 KiB) Downloaded 224 times
Last edited by BAgate on 24 Apr 2014, 00:10, edited 2 times in total.
Reason: closed
Working on: housekeeping and archived reports
User avatar
BAgate
Tester
 
Posts: 2444
Joined: 06 Mar 2012, 11:09
Has thanked: 117 times
Been thanked: 158 times

Re: Fastbond

Postby Gargaroz » 27 Mar 2014, 15:10

Well, this could be fixed checking the Special Flags, but I need a decode of the ASM card.
Korath, could you do that ?
----
- Current / medium term task: adjusting the code for making Misdirection and such usable
- Long term task: inserting all the good stuff I left out from the "Golden Years" mod
Gargaroz
Programmer
 
Posts: 7097
Joined: 06 Nov 2009, 11:11
Has thanked: 82 times
Been thanked: 595 times

Re: Fastbond

Postby Korath » 27 Mar 2014, 16:59

It's mostly what you'd expect.

Code: Select all
int card_fastbond(int player, int card, event_t event)
{
  // 0x4316C0

  /* Fastbond   |G
   * Enchantment
   * You may play any number of additional lands on each of your turns.
   * Whenever you play a land, if it wasn't the first land you played this turn, ~ deals 1 damage to you. */

  if (event == EVENT_CAN_CAST)
    result = 1;

  if (player == current_turn
      && (land_can_be_played & LCBP_LAND_HAS_BEEN_PLAYED)
      && current_phase >= PHASE_MAIN1 && current_phase <= PHASE_MAIN2)
    land_can_be_played &= ~LCBP_LAND_HAS_BEEN_PLAYED;

  if (trigger_condition == TRIGGER_COMES_INTO_PLAY && affect_me(player, card) && reason_for_trigger_controller == player
      && trigger_cause_controller == player && in_play(player, card)
      && lands_played >= 1 && is_what(trigger_cause_controller, trigger_cause, TYPE_LAND))
    {
      if (event == EVENT_TRIGGER)
        event_result |= RESOLVE_TRIGGER_MANDATORY;
      if (event == EVENT_RESOLVE_ACTIVATION)
        damage_player(player, 1, player, card);
    }

  return 0;
}
TRIGGER_COMES_INTO_PLAY was surprising; I expected TRIGGER_SPELL_CAST. There's both plusses and minuses to doing it here.

The big advantage is that the land's already in play this way, which is how it's supposed to work with both the 4E wording and with modern triggers (given that playing a land doesn't use the stack). So you can, for example, use the land to activate a Circle of Protection: Green to prevent Fastbond's damage.

On the other hand, it can be interleaved with other enters-the-battlefield triggers.

Plus, the exe code corresponding to is_what() always returned 0 if the card being queried was no longer in play; this is what makes Fastbond not trigger if you use a Ravnica two-mana land to bounce itself, for example. The C version will work in that case, but it could still be fooled by another enters-the-battlefield trigger that makes the land into a non-land.

Mind the odd case with Torpor Orb and either Dryad Arbor or continuous land-animation effects like Living Lands that'll keep us from just using new_specific_cip(), in any case.
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Fastbond

Postby Gargaroz » 28 Mar 2014, 23:04

New code inserted in 1438703
----
- Current / medium term task: adjusting the code for making Misdirection and such usable
- Long term task: inserting all the good stuff I left out from the "Golden Years" mod
Gargaroz
Programmer
 
Posts: 7097
Joined: 06 Nov 2009, 11:11
Has thanked: 82 times
Been thanked: 595 times


Return to Archived Reports

Who is online

Users browsing this forum: No registered users and 48 guests


Who is online

In total there are 48 users online :: 0 registered, 0 hidden and 48 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 48 guests

Login Form