1. Fodder Launch
2. Knight Token from Waylay
3. Sword of Kaldra
4. Thelon of Havenwood
Changed following cards which can produce multiple kinds of tokens to make them display token images correctly:
1. Bestial Menace(WWK)
2. Decree of Justice(SCG)
3. Fable of Wolf and Owl(EVE)
4. One Dozen Eyes(MRD)
5. Sarpadian Empires, Vol. VII(TSP)
6. Wand of the Elements(DST)
7. Wurmcoil Engine(SOM)
Added the following token in their _cards.dat:
1. DST (Wand of the Elements):
Blue Elemental Token(id=-4977511)
Red Elemental Token(id=-4977512)
2. EVE (Fable of Wolf and Owl):
Green Wolf Token(id=-15208711)
Blue Bird Token(id=-15208712)
3. MRD (One Dozen Eyes):
Beast Token(id=-4838511)
Insect Token(id=-4838512)
4. SCG (Decree of Justice):
Angel Token(id=-4514111)
Soldier Token(id=-4514112)
5. SOM (Wurmcoil Engine):
Wurm Token with Deathtouch(id=-20787511)
Wurm Token with Lifelink(id=-20787512)
6. TSP (Sarpadian Empires, Vol. VII):
Citizen Token(id=-11492111)
Camarid Token(id=-11492112)
Thrull Token(id=-11492113)
Goblin Token(id=-11492114)
Saproling Token(id=-11492115)
7. WWK (Bestial Menace):
Snake Token(id=-19784311)
Wolf Token(id=-19784312)
Elephant Token(id=-19784313)
You also need abrasax's image set and rename or add following tokens' pictures:
1. DST (Wand of the Elements):
Blue Elemental Token: Rename to 4977511t
Red Elemental Token: Rename to 4977512t
2. EVE (Fable of Wolf and Owl):
Green Wolf Token: Rename to 15208711t
Blue Bird Token: Rename to 15208712t
3. MRD (One Dozen Eyes):
Beast Token: Rename to 4838511t
Insect Token: Rename to 4838512t
4. SCG (Decree of Justice):
Angel Token: Rename to 4514111t
Soldier Token: Rename to 4514112t
5. SOM (Wurmcoil Engine):
Wurm Token with Deathtouch: Rename to 20787511t
Wurm Token with Lifelink: Rename to 20787512t
6. TSP (Sarpadian Empires, Vol. VII):
Citizen Token: Rename to 11492111t
Camarid Token: Rename to 11492112t
Thrull Token: Rename to 11492113t
Goblin Token: Rename to 11492114t
Saproling Token: Rename to 11492115t
7. WWK (Bestial Menace):
Snake Token: Rename to 19784311t
Wolf Token: Rename to 19784312t
Elephant Token: Rename to 19784313t
This was a bug reported by a guy in the forum: Dakr Depths produced a token every time it hit the graveyard, even it it had a counter on it. ^^
[card]
name=Dark Depths
auto=counter(0/0,10,Ice)
auto={3}:(counter(0/0,-1,Ice) all(this) && bury all(dark depths[-counter{0/0.1.Ice}])
auto=@movedTo(mygraveyard) from(dark depths[-counter{0/0.1.Ice}]|myBattlefield):token(Marit Lage,legendary creature avatar, 20/20,flying,indestructible,black)
text=Dark Depths enters the battlefield with ten ice counters on it. -- {3}: Remove an ice counter from Dark Depths. -- When Dark Depths has no ice counters on it, sacrifice it. If you do, put a legendary 20/20 black Avatar creature token with flying and "This creature is indestructible" named Marit Lage onto the battlefield.
type=Legendary Snow Land
[/card]
1. General's Kabuto
2. Lightning Greaves
3. Neurok Stealthsuit
4. Whispersilk Cloak
5. Darksteel Garrison
6. Shield of Kaldra
Fixed following cards according MTG rules:
1. Lord of the Pit
2. That Which Was Taken
3. Vigor
4. Worldslayer
5. Yomiji, Who Bars the Way
Other fixed cards:
1. Magebane Armor
2. Talon of Pain
While at it, moved the string arrays to be global const declarations - there were two duplicate sets of keywords for lords, and they were being created/destroyed on each call to parseMagicLine. No point in constantly reallocating these strings, we know we're going to contantly reuse them.
2nd, added a block out for optimizedhand in demo mode, ie any time its cpu player vs cpu player, noticed demo was starting matches with no cards.
3rd, added a hackish workaround to allow Ai to get eff returns on abilities using the all(this) lord workaround to target the source. Ai was not getting any returns on these abilities. now basically if the ability is a lord && !target...lets calculate this as tho source == target....
This is a classic example of why naked pointers suck! The right way to fix an interdependency would be to have these objects hold onto weak references to each other. But that's way too big a change at this point in time, so I've added this ugly hack instead.
This will fix an intermittent crash when either accessing the library or exiting a match.
changed conditional for lord and thises evaluation from hardcoded value to length of the array being evaluated. This doesn't change current functionality, but minimizes code change if these arrays were ever to change in size.
The core problem I fixed was in CardView's (missing) destructor - on construction, a CardView will set itself as a member of its parent CardInstance, so it stands to reason that when it's about to be destroyed, it should do the inverse and remove itself in the same fashion from its parent. This explains why weird graphic glitches were seen when casting Animate Dead on cards in a graveyard - the position data it was trying to use was already deleted from memory (a cardview is deleted on cleanup at the end of a turn if it's gone to the graveyard), but no one nulled out the deleted card view reference from the instance, so we'd access invalid data.
Some peripheral changes in this checkin: two helper functions in CardGui (GetCenterX, GetCenterY) that are part of my navigation patch are included. They're unused in the current code base, so this has zero impact. (I'm only checking them in as it's more work than it's worth to refactor them into a separate changelist. The core of the nav patch requires my mods to Closest.cpp / CardSelector.cpp to have any effect.) I also included a helper function in the debug routines to spit out hex pointer addresses in trace outputs, which I used to chase down this bug.