Commit Graph

1487 Commits

Author SHA1 Message Date
omegablast2002@yahoo.com
ad56dfa8d0 3 things here
first as requested, kicker will now act like the other cost, offering a menu choice, heres the catch tho, 
it was also thought up that we should maintain the "pay automatically" method of it as it feels more natural to some(even tho as per MTG rules its supposed to be a choice).
so here is what i did that i hope satisfies everyone, i added a new menu option under advanced tab..."kicker payment" with 2 setting, by defualt "always pay" but also an option to "always offer choice"...

2nd, minor tweaks to player avatar, every tme i saw it i was like "i need to do something about that", the avatar getting completely sucked into the corner just looked bad imo, so i about doubled the "inactive" size, so it looks a little more uniform with the opponents avatar. also move the library and grave icons just a thin hair to the left so they don't grossly overlap the players avatar as much when active, and increased the dark box theyre contained in my just a few pixels.

3rd, something else thats really bothered me to no end was that the title text of simple menus which display the cards name which owns the box was using small face font, which on pc was *barely* ok...but on psp(smaller devices) looks like white smears and dots. i changed it to share the font and size used inside the menubox itself, the end result is a lot nicer look...and alot easier to read on psp. now if only we can convince wololo that "spades" is alot like a lava lamp, cool at first, but *extremely* dated. the menu box should have a much slicker look, maybe rounded corners instead and lose the street light poles?

minor fix for phaseaction, becuase of the nature of this ability finding a happy safe medium without losing function is tough. hopefully this corrects it for good.

dropped cast methods menutext returns to lower case, for uniformity.
2011-04-22 11:17:20 +00:00
wrenczes@gmail.com
b4e3608412 Fixed a subtle bug with the Random player deck choice - I kept getting my first deck every time. It turns out that the 'random' implementation was actually multiplying the random seed by a value of 1001, which isn't prime - I have seven player decks on my one dev system, which divides neatly into that multiplier.
Removed the multiplier, as it's unnecessary.
2011-04-22 00:44:13 +00:00
wrenczes@gmail.com
223b067234 Removed what looks like a leftover temporary trace. 2011-04-22 00:09:10 +00:00
wrenczes@gmail.com
aaa169f86c Consolidated some loose strings into constant declarations in order to reduce allocation thrashing on temporary string constructs. I'm sure there are more, but "back_thumb", "back", and "backdrop.jpg" were the ones that showed up most in memory profiling. 2011-04-21 22:48:22 +00:00
wagic.the.homebrew
6f5919ed06 Reverting r3496 to fix failing tests 2011-04-21 15:16:22 +00:00
wagic.the.homebrew
8ff6839c8d Some preparation work for new platform support.
- Added a "PSP" compile-time define to clean up some compile time checks (replaced !WIN32 && !LINUX && !IOS with PSP) 
-- Wil, I am aware that this is redundant with the PSPENV variable you introduced recently, I think we can clean that up easily
-- This looks like lots of changes, but most of the time I just moved some blocks here and there
-- tested on VC 2010, PSP, and a bit of NDK
-- I might have broken maemo, iOS, or Linux compilation, can you guys check?
- Fixed some warnings reported by NDK
- NDK still does not compile because recent boost additions (mutex, etc...) are apparently not supported
2011-04-21 13:16:11 +00:00
techdragon.nguyen@gmail.com
8bf983e2e5 Flagged numerous peices of code that have local variables that are masking either member variables or variables scoped outside the current scope.
I've marked all the ones I found with the following TODO comment:

TODO: C6246: <blah blah>

a few in particular are the ones related to "oneShot" and "_target".  These are local variables that are declared that
mask either a method parameter or a member variable.
2011-04-21 10:04:32 +00:00
techdragon.nguyen@gmail.com
8ed84aa97d Issue 634:
Fixed.  Had to clear the DeckManager whenever the player deck selection screen is displayed.
TODO: Need to implement a caching mechanism that caches the deck information based on deck selection and not a global one.
Currently DeckManager is effectively treating the DeckMetaData as global data.

*some minor tweaks to how deck information is managed/created
2011-04-21 08:32:32 +00:00
techdragon.nguyen@gmail.com
29eea1d39c fixed a memory leak. Not sure how it got introduced but the destructor for DeckManager now does the heavy lifting for memory cleanup and not the static method EndInstance().
reorganized DeckMetaData method LoadDeck so that it appears underneath the constructor.
2011-04-21 06:35:44 +00:00
wrenczes@gmail.com
920282017b Added ManaCost & ExtraCost to the startup traces of certain class sizes. 2011-04-21 03:22:09 +00:00
wrenczes@gmail.com
39870c91f6 Removed GameApp.h from GameOptions.h - this should help prevent the precompiled header from rebuilding constantly when any header is touched, as GameApp.h ends up pulling virtually every other header by some level of indirection. We really need though to sit down at some point & refactor the inclusion tree. It's a big yarn ball at the moment. 2011-04-21 02:35:51 +00:00
techdragon.nguyen@gmail.com
3bef78be82 simplified some logic for evil twin 2011-04-20 23:34:33 +00:00
techdragon.nguyen@gmail.com
935c3da4b5 synced evil twin avatar ingame with one from deck selection.
TODO: make the "evil twin" look more different than just a mirror image.
2011-04-20 23:29:41 +00:00
wrenczes@gmail.com
8e6a3e64f0 Apparently the code police weren't satisfied... :) Eliminating the duplicate ints & extra assignments. 2011-04-20 22:09:40 +00:00
omegablast2002@yahoo.com
2a4a01da5e changed it to modulo to please the code police.... 2011-04-20 21:47:02 +00:00
omegablast2002@yahoo.com
6fe3411656 whoops brackets wrapped the wrong spot. 2011-04-20 21:29:48 +00:00
omegablast2002@yahoo.com
561054ba34 added a true method to recycle our 100 avatar images, and made sure they stay in line with the menu image if theyre over 100. 2011-04-20 21:21:12 +00:00
wrenczes@gmail.com
f805d195ad Fixed the build. 2011-04-20 21:07:44 +00:00
wrenczes@gmail.com
babda2bc0f Some minor tweaks to make the image prefetching feel less flickery : when a card goes from a player's library into their hand, trigger a prefetch of the image. Also do the same thing when the AI decides on what card to play and creates an action. The idea being, new cards in play will probably want to be viewed by the player (and in the case of the AI playing a spell, we automatically show the image during the interrupt window before it comes into play). This makes for a much smoother gameplay - we have to get the image at some point anyway, and by doing it before we get to the render call, we no longer have the back card image pop up briefly. 2011-04-20 21:07:24 +00:00
omegablast2002@yahoo.com
b2ef742ec8 ok made minor changes to mikes last commit, instead of loading "nothing" im making it load a card back instead, that black hole drove me nuts....second instead of loading a premade "evil twin" i made it load what ever the users avatar was flipped horizontally. didn't tint it red becuase i am not that attuned to the graphics side of wagic. 2011-04-20 20:24:53 +00:00
Xawotihs
78e34386ee Android cross-compiling fixes regarding constants 2011-04-20 20:14:25 +00:00
techdragon.nguyen@gmail.com
2fdc80aee1 Synchronized avatar images to be loaded correctly on first display of the opponent selection.
* changed how the avatar images are assigned since how they were before was incorrect.  They are now assigned upon instantiation of the meta file.  Not when the stats are calculated.  
* Added new image for "Evil Twin".  This is a horizontally flipped image of the original player avatar with a red background.  Please feel free to edit the image.
* removed display of avatar image on menu items in deck selection that are not deck related. (ie "Cancel", "Back to Main Menu", etc)  "New Deck" also does not have an image since no deck really exists yet so no avatar.  

Issue: 622
2011-04-20 17:51:40 +00:00
omegablast2002@yahoo.com
ba7640079c move reducedCost and increasedCost out of cardprimitives and into MTGCardInstance 2011-04-20 12:14:27 +00:00
omegablast2002@yahoo.com
d892db60d9 removed a comment, i found a better way to do it so the comment does not apply. 2011-04-20 10:48:33 +00:00
wrenczes@gmail.com
02fbecfb85 Style formatting - no code changes here. 2011-04-20 09:38:40 +00:00
wrenczes@gmail.com
ec95bb93e1 Fix for a crash (I think the same one Zeth reported) where the game dies somewhere in file reading source - I wasn't paying close enough attention to the fact that there are in fact 3 separate caches, so each had their own mutex, so JFileSystem wasn't actually being protected from reentrancy. So, if the app tried to load an audio sample at the same time as an image, boom... 2011-04-20 09:03:08 +00:00
wrenczes@gmail.com
fc0a59a14e Moved GameOptions.h into the precompiled header. Shaves almost 20 seconds off my build times. 2011-04-20 07:50:00 +00:00
wrenczes@gmail.com
52dd0c2f91 Removed the concept of cleaning up misses from the cache, as this was causing flickering on cards whose .zip files are missing. The idea now is that, if we can't load an image, keep the cache miss around permanently so that we never redundantly make a load attempt on that file again. 2011-04-20 06:46:14 +00:00
wrenczes@gmail.com
180f83083c Fixed compilation times by refactoring: WResourceManager.h gets included either directly or indirectly into every header & cpp file; so does its includes & implementation details. Broke out WResourceManager into a pure virtual class that contains only the required calls, and added a WResourceManagerImpl header that contains all the dirty details that the rest of the app doesn't care about / need to know. 2011-04-20 06:27:44 +00:00
wrenczes@gmail.com
d1efc3efe8 Whoops, this was stupid. Left on a debug #define that forced a low memory situation for testing purposes - this should fix some of the reported flickering. 2011-04-20 06:21:52 +00:00
omegablast2002@yahoo.com
c29e231e45 couple more changes in Ai, and a fix for a crash which happened with phaseaction when the target was removed before the effect resolved. 2011-04-19 19:54:47 +00:00
omegablast2002@yahoo.com
29478f90b5 also removed AConvertLandToCreatures class and its observers, becomes(/transforms(( already creates this effect
as a side effect of my recent changes, lands which come into play and then become creature on the same turn have summoning sickness as per MTG rules.
2011-04-19 18:05:15 +00:00
omegablast2002@yahoo.com
20590c3a0d removed the variable doTap in Tap from all classes, all test pass but there could be an edge case where i missed removing one...if so just let me know, tweaked some ai eff returns, trying to teach it to use counters more effectively, i noticed it was not using -1/-1 counters on the players creature and was using off counters +1/-1 on its own creatures to the point where they died.
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.
2011-04-19 17:31:19 +00:00
wrenczes@gmail.com
f87de5c38d Revert the maximum memory size calculation to its previous configuration as a precaution, as my messing around with these values was only meant for debugging purposes. 2011-04-19 07:38:20 +00:00
wrenczes@gmail.com
7a10993114 *POSSIBLY DESTABLIZING CHANGE, PLS PING ME IF YOU SEE ISSUES*
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.
2011-04-19 07:12:05 +00:00
omegablast2002@yahoo.com
bf68009674 fixed issue 632,633 ...
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.
2011-04-18 17:21:06 +00:00
omegablast2002@yahoo.com
01a229d1b6 2011-04-17 20:21:46 +00:00
omegablast2002@yahoo.com
50c5c70479 made a mistake in p cost. 2011-04-17 20:20:17 +00:00
omegablast2002@yahoo.com
4c90d9e0c2 you can't pay life which you do not have as life payments. 2011-04-17 20:08:08 +00:00
omegablast2002@yahoo.com
18acf3ad8d refactored a little of a token gen, enumed the who and removed redundent code, also the new method allows you to token cards by id to WHO. 2011-04-17 18:18:29 +00:00
omegablast2002@yahoo.com
158164d694 2 things here, bug fixes, aphaseaction used in a trigger is set to oneshot = 0, for the purpose of reusing the ability. so on combat triggers the event would contenue to activate as tho it was not a oneshot, this would cause a crash if the target of the ability was killed before the effect resolved, so i set the target to NULL after the effect resolves if the target was not the source.
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.
2011-04-17 17:01:58 +00:00
wrenczes@gmail.com
00a8622ca2 Eliminated a spurious float to long conversion. 2011-04-17 06:26:52 +00:00
omegablast2002@yahoo.com
6f070f8cd4 couple things here,
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.
2011-04-16 21:16:07 +00:00
Xawotihs
8bff724ac1 Fixed issue 631 2011-04-16 17:34:30 +00:00
omegablast2002@yahoo.com
1b6991107b few changes here, mostly small bug fixes,
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.
2011-04-16 17:00:51 +00:00
omegablast2002@yahoo.com
cafeecb925 fixed a memleak introduced when the alternative effects were changed to activated the way they do in current, the issue was that it was returning null if it wasnt paid, however if the alternative lines contained a TC those are built WAY before we get to this point, there was no delete done if the ability returns as NULL. so the tc remains and becomes a memleak. 2011-04-14 19:39:50 +00:00
omegablast2002@yahoo.com
9d52e4547e fixed a parsing error with tokengen, no actually my fault :P there was never a check if the end was the real end or not.
2nd, added this(blocking) in hopes to fix mogg flunkies and similar creatures.
2011-04-14 17:06:44 +00:00
omegablast2002@yahoo.com
fe3d09175c removed some copy paste coding i did from previous commit :/ i was lazy, tho it surprises me that i always take the route of copy paste when doing it the right way is far less to change or debugg is something goes wrong, guess im a creature of habit. 2011-04-14 15:26:19 +00:00
omegablast2002@yahoo.com
0fe7a46676 few things here,
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.
2011-04-14 15:02:17 +00:00
omegablast2002@yahoo.com
502bd280d8 "turn:" was off by one 2011-04-13 14:17:39 +00:00