Ferrix wrote:Unfortunately, some stuff is still broken:
That is to be expected, I have my hands full (I'm currently working on trying to fix several cards in
Two-Headed Giant as were reported in another thread, still working on an update to the Deck Builder, an update to my core mod to fix some problems there as well as add some more cards, still have my taxes to do, and dealing with a fallen tree) so I don't get around to checking every card in all situations (and some things just can't be fixed). As such I tend to rely on people reporting problems that they find.
Ferrix wrote:Having two
Eldrazi Conscription on the same creature lets one target two different players in 2HG.
Noted, I'll see if I can fix that. This is already a workaround as DotP doesn't let you choose the defending player in
Two-Headed Giant like it is supposed to (it only lets you attack the player immediately in front of you), so this may get even more tricky.
Ferrix wrote:Lord of the Void is still broken in 2HG (i.e. doesn't allow to choose a target), and probably many more.
Lord of the Void hasn't been fixed yet (the complete list of "fixed" cards as well as what has been fixed for each card can be found on my wiki page for this mod) so I haven't made a version to call broken. Also technically the card isn't even broken what is broken is the engine. If it worked like it should then you would attack the "team" and then choose which player to deal damage to for each creature. Then these cards wouldn't need to be "fixed" because they would do damage to the proper defending player and the abilities would trigger properly.
If you want to fuss at someone about cards that are "still" broken, complain to WotC/Stainless for not fixing their own cards.
2014/04/04 - Update on the multiple choices for defending player if creature has multiple effects (like 2 Annihilator abilities due to
Eldrazi Conscription): The new method of determining a defending player will require my ObjectDC functions to allow multiple effects to read the defending player that was first chosen for any given attack (it should allow to choose different defending players for the same creature for different attacks in the same turn). This should be a drop-in replacement method so any cards already using my Annihilator functions should not need to be changed they will use this new method automatically.
The new method works like this:
- Choosing a defending player:
- Check number of players on the defending team.
- If only 1 player then simply set the defending player in the ObjectDC to that player (no query).
- If more than 1 player on the team then get Turn Number and Combat Phases this turn (attacks, Interrogation query).
- Get the Defending Player Info chest from the ObjectDC.
- If the chest doesn't exist the create and initialize it with Turn Number = -1 and Combat Phases = -1.
- Compare the current Turn and Attacks to the stored Turn and Attacks.
- If Turn or Attacks is different from stored then it is a new attack and we store the new Turn and Attack information.
- If this is a new attack then let the creature's controller choose a defending player from all players on the defending team.
- Set the defending player in the ObjectDC to the selected player.
- Retrieving a defending player:
- Get the ObjectDC.
- If ObjectDC is not nil then get the target chest from the ObjectDC.
- If the target chest is not nil then get the chosen player.
- Return the chosen player or nil.
I know the above seems like a lot of work, but for Annihilator abilities implementing it will be the same as previously:
- Annihilator | Open
- Code: Select all
<TRIGGERED_ABILITY badge="BADGE_ANNIHILATOR">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Annihilator 2]]></LOCALISED_TEXT>
<TRIGGER value="ATTACKING" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
RSN_Annihilator_Player_Choosing()
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_Annihilator_Permanent_Choosing( 2 )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_Annihilator_Sacrificing()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
It should be just as easy to use the new method for other cards as well (such as
Lord of the Void) with just a single function call to choose the defending player and a single function call to get the defending player. Though some cards won't be able to use this method due to how targets are chosen (like
Colossal Whale), but there don't seem to be any cards in the core where this will actually pose a problem.
I still have tests to run and other cards to update to use the new method. So it may still be a couple of days before there is a Core Fixes update.
2014/04/06 - I did think of another instance that I had to code for. Multiple abilities on a card that picks targets for example a
Colossal Whale with
Eldrazi Conscription on it (can't use a simple workaround like changing FE_CONTROLLER to FE_TEAM as that wouldn't work right if they chose a specific player for the Annihilator 2 ability, they should be forced to choose a creature that player controls), you should still only be able to choose the defending player once. So far the tests are proceeding well (no script errors and cards seem to be working the way they should), I should know by end of tomorrow whether all the pieces are working properly together.
The code for cards like
Colossal Whale isn't as simple as you need to put in a new TARGET block, a new TARGET_DEFINITION block, and modify another TARGET_DEFINITION block, but the code still isn't too complex (assuming it works exactly as intended) and part can be moved into a function to make the TARGET_DEFINITION easier.