doTap now only serves a single purpose, to pass Tap variable to amanaproducer class so that "tappedformana" will trigger is a manaproducer was tapped for mana.
Turned on the threaded card fetching code for win/linux. PSP runs unthreaded. There's an easy toggle for switching which mode the app runs in: check out WResourceManager's constructor.
To fully appreciate the difference, try going into the deck editor without these changes, and use the arrow keys to navigate around (esp. up/down, as it loads 7 cards at a time). Then try again with these mods, you'll see the cards flicker briefly to the back card image and then load as they scroll onto the screen.
converted {t} into a extra cost. almost all original code to handle it outside remains intact, i plan on slowly migrating to just using the cost...but even just what i changed was a massive headache...anyways as a cost you wont ever have an random bugs where cards don't tap when the ability had {t} in its cost.
while i was at it, i added {q} untap cost.
also restricted it to _target->isInPlay() i read through all the cards which use this and none of them targetted a source that was not in play, or not being moved to inplay...
2nd, found out today that certain activated abilities can use either target click or object click, find the difference between the 2 was impossible, exsample, {2}{t}:foreach(blah) add{b}
{t}:foreach(blah) add{b}
so i figured i would need to remove those foreach mana abilities from the stack and add that same code for the bottom half...after noticing that both the reactToClick and reactToTargetClick did EXACTLY the same things after the "cost" portion...i decided to create a new virtual int activateAbility the activatedAbility parent. this way incase i need to change any further code in there, both functions resolve the same. This was a nice lesson in why copy paste coding is stupid. you think you solved the bug becuase it works in one function call, but you actually didnt.
first enum'ed the variables of ADynamic class to make them easier to understand at a glance.
2nd
added stack resolves for the abilities in ADynamic, sword to Plowshare bug fixed
3rd
removing foreach mana producers from the stack, didn't realize they used the top portion of activated ability resolves, also added event sending for @tappedformana for foreach manaproducers.
4th,
in getcoreability if we're getting the core of a foreach, send the foreach->ability itself otherwise we go one layer too deep and end up throwing off the core completely.
added the following
Rushing River
Quietus Spike
Primal Growth
Phyrexian Scuta
Magma Burst
Infernal Contract
Heartless Hidetsugu
Floodgate
Eternal Flame
Ebonblade Reaper
Dwarven Landslide
Cruel Bargain
Catacomb Dragon
Blood Tribute
Banshee
Arctic Merfolk
these cards use the new naming system for other cost, and use the halfup/down subkeywords.
recoded altercost, its finally not using a dirty clean up.
this fixes the bug with it not effecting ai also and the bug where it was ineffective when combined with affinity creatures...
removed a aspect of the wolf class...
soft coded support for aspect of the wolf...using word variable subkeyword "halfup" and "halfdown"
it can go anywhere a parsable word vairable is stringing...i preffer the front of it...
these are Wparsedint subkeywords, not keywords you can use with standard abilities...
its meant to return half the varible rounds up, or down...
fixed player not losing with cantlifelose when they have 10 or more poison...the player should die.
reworked taplandformana, i send the main card as a target now, check against the cost if its affordable...anyways, i discussed this bool function a while back with devs and wololo saw the same issues i saw in it...he then removed it from being used as an if statement...i changed it back to an if statement with the new checks...we are either going to go back to a void, or go all the way bool, but not inbetween.
Bestial Fury
Chambered Nautilus
Corrupt Official
Deathcoil Wurm
Deepwood Tantiv
Deepwood Wolverine
Drelnoch
Duskworker
Dwarven Berserker
Escaped Null
Ferocity
Flint Golem
Gift of the Woods
Goblin Cadets
Goblin Swine-Rider
Groffskithur
Gustcloak Cavalier
Gustcloak Harrier
Gustcloak Runner
Gustcloak Savior
Gustcloak Sentinel
Gustcloak Skirmisher
Ignoble Soldier
Karplusan Wolverine
Laccolith Grunt
Laccolith Titan
Laccolith Warrior
Laccolith Whelp
Leery Fogbeast
Lim-Dul's Paladin
Lone Wolf
Norwood Warrior
Port Inspector
Pretender's Claim
Pride of Lions
Razorclaw Bear
Rhox
Sacred Prey
Saprazzan Heir
Saprazzan Raider
Silkenfist Fighter
Silkenfist Order
Slashing Tiger
Slith Strider
Snorting Gahr
Thorn Elemental
Tornado Elemental
Trained Cheetah
Unstoppable Ash
Vedalken Ghoul
Wolf Pack
Corrected Hidden Ancients, Nature's Will and a typo in text of True Conviction.
Changed Honden of Life's Web:
auto=@each my upkeep:token(Spirit,Creature Spirit,1/1)*type:shrine
==>
auto=@each my upkeep:foreach(shrine|mybattlefield) token(Spirit,Creature Spirit,1/1)*1
Because the )*type:shrine will make token's toughness become number of shrine in my battlefield.
For example: If I have two shrines on my battlefield, it will produce two 1/2 tokens instead of two 1/1 tokens.
All tests passed, also manually tested over twelve "@combat(blocked,turnlimited)" cards which have different trigger effects, all of them works fine.
first, tweaked some ai checks a bit.
small changes.
2nd, i removed the following classes,
APowerToughnessModifierUntilEndOfTurn
APowerToughnessModifierUntilEOT
ADragonWhelp
i replaced these with soft coded support for dragon whelps "sideffects" of using a ability more then a certain number of times...
syntax limit^the effect you want^the use it triggers on.
replaced both powertoughnessueot classes with a class which falls more along the lines of how we handle ueot abilitys...PTInstant, creates the wrapper with the ability and adds it to the game, rather then that jumbled mess that was previous version.
added support for "phaseaction[" phase words "my" and "opponent" so you can denote which players phases it will happen on. by default it automatically happens on both players turns when the phase matches.
modified a few things in phaseaction class...which correct a memory leak which could be created if the source of the phaseaction is destroyed before the phase action resolved. rather then storing an ability which is left floating in memory if phaseaction is destroy...i took a much safer route of passing the string of the ability directly to the phaseaction class...and i build the ability right when it is being used instead. makes much more sense.
angry mob is now fully supported. yay to removing nasty ugly workarounds!!!! and i mean UGLY.
dragon whelp is now fully soft coded. added the 5 or six other cards which do similar effects.