Commit Graph

1805 Commits

Author SHA1 Message Date
techdragon.nguyen@gmail.com
b03449cbf6 Implemented directional controls on Filters so that you can now navigate the Filters menu on Touch interfaces for the Deck Editor and Shop screens. It's not the best implementation but it at least works across all platforms. swipe will now move the highlighted cursor to the correct direction.
in release builds, test suite will now be disabled
2012-01-03 17:53:51 +00:00
techdragon.nguyen@gmail.com
6adffc12f0 Issue 565: This fixes the issue with the MENU not popping up ingame. The bug was caused when user canceled out of a deck selection screen to either go back to the Player Deck Selection or Main Menu. The buffer was not cleared properly. added call to reset buffer in GameStateDuel to follow pattern used in GameStateDeckViewer. 2012-01-03 14:05:43 +00:00
techdragon.nguyen@gmail.com
086cefd75c removed key bindings tab for IOS 2012-01-03 12:49:51 +00:00
omegablast2002@yahoo.com
460be7854a tweaked an ai change i made, found some lands (ie:cloudpost) are not considered either good or "dontknow" so they fall into lottery chance, all land that isn't considered good should fall under "dontknow" not lottery.... 2011-12-31 14:31:39 +00:00
techdragon.nguyen@gmail.com
2882724638 fixed compiler warnings found on Windows build 2011-12-31 14:31:35 +00:00
techdragon.nguyen@gmail.com
dfa007cecb implemented platform independant clickable OK button on gui combat window when selecting blocker order. removed iOS specific coding. 2011-12-31 08:21:00 +00:00
techdragon.nguyen@gmail.com
c88ed95c95 enabled touch code for handling choosign blockers on touch interface.
TODO:  Please have somebody test on non-Touch device.  I don't have one anymore.  If it breaks it let me know and I'll make it a compile time option.  Seems to work with 2 and 3 blockers.  I couldn't get the game to get 4 blockers on the screen, but I think it should work the same.  This should be cross platform and not iOS specific
2011-12-30 23:42:13 +00:00
techdragon.nguyen@gmail.com
e102d3f369 enabled OK button on GuiCombat screen when choosing defenders/attackers. iOS solution only currently. To implement in Android, we need to create a mask/invisible button above the OK button coordinates and add a listener to activate when a user touches the appropriate area. Not ideal, but it works for now.
TODO:  translate functionality into core of engine.
2011-12-30 16:04:21 +00:00
omegablast2002@yahoo.com
be33659081 fix for cumulative upcost, extra cost were not being multiplied
[card]
name=Phyrexian Soulgorger
auto=cumulativeupcost[{S(creature|myBattlefield)}] sacrifice
text=Cumulative upkeep - Sacrifice a creature. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)
mana={3}
type=Snow Artifact Creature
subtype=Construct
power=8
toughness=8
[/card]
was only charging you 1 sacrifice per upkeep.

added thisTargetComparison, this(cantargetcard(targetchooser))...its a thisdescriptor that compares if the card can be targeted by a target chooser...
2011-12-29 19:55:45 +00:00
wagic.the.homebrew
591f0e0d30 - fix for issue 772
- fixed some issues in zstream that prevented to use "getline" in zipped streams 
- added a "pooled buffers" system to keep a cache of file descriptors. This is potentially dangerous though, but shaves several seconds of loading time on the PSP. If problems arise on other platforms I'll make it a compilation parameter
- gracefully fail when calling manacost information on a not properly initialized mana cost
2011-12-28 16:14:08 +00:00
omegablast2002@yahoo.com
53b1c4a742 2 major bug fixes and 1 minor fix
first somehow accidentally line 3616 mtgability.cpp removefromgame was adding an observer instead of removing it, this explains "abilities sometimes acting strangely or not being removed"...I'm surprised it didn't create memleaks or extremely visible side-effects...
2nd fixed a bug where triggered abilities would share a menu with activated abilities of a card when ever you had enough mana floating to pay an activated ability before the trigger resolved.

adjust the way ai calculates if it should use cards like wrath of god, though it is still open to using it at a random chance, i noticed that the method we use might not be the best.
an ability with an eff of 1 for example actually has a 10% chance of being choosen....
lets say rng rolls 3402
when you % this it simply takes the 2 last numbers making this roll 2...meaning that unless we assign no "random chance to do blah" the actual chance of ai using a stupid ability is 10%...I'm leaving that logic how it is tho I "unfactored"(?) it to make it easier to track the numbers, also added a debug trace to help see how often we hit "lottery chance" ...
fixed a minor crash from multiability trying to fetch menutext when no abilities existed in the vector anymore.

this patch introduces a new subkeyword for "may " which is syntax pay(manacost)
auto=may pay({w}) untap
this is to allow the card group that was coded using the activated ability loophole i described at the start. it works the same way as it did with the loophole only it is actually something we want to happen instead of a flaw in the engine...you float the mana same as before and when the may line is triggered it will check if payment can be made with exist mana if so then it displays the menutext for the ability, if that ability is choosen it then charges you the mana directly before activation. 

this patch also include flip( ability, tho not intended originally for this version, I had previously had it finished and was polishing it right before I noticed the bugs above. since this keyword is not intended to add cards for this version, I wont go into massive details about it at this time.
2011-12-25 01:01:20 +00:00
techdragon.nguyen@gmail.com
e308d9cd47 fixed compilation error for android builds as referenced in forums. http://wololo.net/forum/viewtopic.php?f=16&t=3366 2011-12-20 00:00:00 +00:00
jean.chalard
d93fdb2d4a Fix the Linux build. 2011-12-18 09:40:35 +00:00
techdragon.nguyen@gmail.com
04f6366619 changing pragma mark directives to use cross platform comment "//MARK: "
#pragma mark is specific to XCode
2011-12-17 15:56:47 +00:00
techdragon.nguyen@gmail.com
4b137e0b6b added numeric support for iOS. Numbers were being ignored earlier 2011-12-15 17:51:29 +00:00
techdragon.nguyen@gmail.com
a6b2a43188 fixed compile error. sorry, missed this one on last check in 2011-12-15 11:26:26 +00:00
techdragon.nguyen@gmail.com
dc7d52c48c added new signature for SendCommand in JGE that takes in a command string and a parameter
added native keyboard handling in iOS
TODO: add same feature for Android tablets/phones
2011-12-15 11:11:08 +00:00
wagic.the.homebrew
2e3331a0c0 - Speed improvements to the filesystem (partial fix for issue 767)
- minor speed improvement in the shop (removed a locked texture loading that wasn't necessary)
2011-12-13 15:14:47 +00:00
wagic.the.homebrew
54a2f949b7 - Fix case sensitivity issue for some card sounds
- added null checks for "shadow" textures
2011-12-12 13:10:33 +00:00
wagic.the.homebrew
c9fd53808f - fix compilation issue on psp
- attempt at reducing loading times on the PSP: I merged a few graphics files together, removed some unused calls from the initialization functions, and moved some other ones to have a more lazy approach. The PSP version remains fairly slow in some parts (especially loading, but also entering the shop, or starting a new game), so I will try to reduce file access as much as possible in the days to come. Not a release blocker IMO though, but I4d sure love if it were faster.
- uppercased "Track1.mp3" to be in line with the actual filename. Most likely this had been broken forever on case-sensitive OSes
- I removed costly calls from the textscroller. I believe it wasn't very useful in its previous state. Now it's only "advertising" for unlockable stuff, which I think is ok (and allows to refresh it every time the menu is loaded)
- As a counterpart, added a "% complete" progress bar in the menu, something I wanted to add a while ago.
2011-12-11 13:48:24 +00:00
omegablast2002@yahoo.com
a3e101eb9c fix for issue 769, random modes including momir do not have meta data. 2011-12-10 12:56:36 +00:00
wagic.the.homebrew
2030d34643 Fix for issue 766 ("cancel" on opponent deck selection goes to the deckeditor) 2011-12-10 01:05:59 +00:00
techdragon.nguyen@gmail.com
fe78345ef7 first draft of ad code for iOS. Not adding admob/adwhirl/adSesnse libs to this commit. You will need to download them to get the port to build under XCode 2011-12-08 20:50:36 +00:00
wagic.the.homebrew
69a0323c86 - Added cache for the count of AI decks, to reduce file access especially on victory screen. This fixes some massive lags on the PSP when winning a game
- bumped version number to 0.17
- removed some dead code in utils.h
2011-12-07 14:34:59 +00:00
Xawotihs
3514476812 - Created a GamePhase type to ease debug.
- Modified the testsuite and gameobserver to be able to replay all the testcases based on the actions logged during the first pass. This allows to test the action logging and replay used during undo. It's only activated in multithreaded mode and it does not work on Momir tests.
-  Modified choice logging and replay to use menuId instead of ability index, as, for some obscur reasons related to Lord, those ability indexes may change.
- Fixed bug in nextphase logging wrongly generating click actions
- Added a "stack" zone to the click ability logging to be able to replay properly interrupt
- Fixed a wonderful bug mixing card names with zone names in the actions execution engine
- Added a "combatok" action logging/execution
- Added a "clone" virtual method to MTGCardInstance and Token to be able to clone correctly the right object type. Used that in MTGGameZones::removeCard
2011-11-29 21:50:16 +00:00
omegablast2002@yahoo.com
d01a5531d9 fix for shop crash. in the shop there is no "game" so cards in booster packs are never assigned a observer as no observer is ever created at this point. 2011-11-27 14:25:24 +00:00
wagic.the.homebrew
4c56842cf5 - Fix PSP (and other non-debug) compilation. Yann please review.
- Fix memleak I introduced recently in modrules.cpp
2011-11-27 07:53:37 +00:00
Xawotihs
29132073de - Modified DeckManager class to not use a global instance anymore when used within the game engine
- Modified DuelLayers to not use a global MTGPhaseGame instance anymore
- Moved the reset of currentActionCard out of the ActionLayer render function : that fixes the remaing problematic tests in the multithreaded testsuite
- Added a method in ActionLayer converting a card ability into a menu index
- Used this new method in the game observer to log correctly AI ability actions
- Added a DumpAssert method in the game observer, it can be used to dump the game and assert in order to easy crash reproduction
- Cleaned up TargetList properties access
- Added an optimisation in GuiMana to not compute update code if the rendering is not used (multi-threaded mode)
- Added a deadlock detection in the test AI vs AI multithreaded mode
- Fixed minor bugs in test AI vs AI multithreaded mode
- Added a games/second counter in the test AI vs AI rendering
2011-11-23 19:11:48 +00:00
wagic.the.homebrew
dca6d3ad38 - Fix for issue 762 (render tinyCrops broken) 2011-11-20 13:09:52 +00:00
Xawotihs
fbb92304dd Removed compilation warnings 2011-11-19 15:21:42 +00:00
wagic.the.homebrew
851e1f20f1 - some dangerous casts Player/MTGCardInstance fixed
- removed typeAsTarget function and replaced with dynamic casting
- The test suite passes, but it is possible that I busted some of AI's features :(
2011-11-19 14:07:57 +00:00
Xawotihs
bdb55945df Fixed crash happening when loading resources from a .zip in a 64bits system 2011-11-16 22:44:51 +00:00
Xawotihs
8a1606a3c6 Compilation fixes for Android+boost 2011-11-16 20:49:26 +00:00
Xawotihs
ee700623d5 Fixed issue 752. 2011-11-15 22:20:58 +00:00
Xawotihs
f68c106e7e - Modified gameObserver and related classes to be able to work with a precise JGE instance given at construction and not the static global one. That allows to run gameObserver without JGE instance (for example in a worker thread).
- Added an "ACTION_LOGGING_TESTING" mode in the gameObserver. When this is defined, the game reloads itself in every update. I want to use that to track undo problems. Be aware that it kills performances and crashes with the testsuite if you want to activate it.
- Various cleanup/refactor of the game observer.
- Added a gameObserver == operator to compare two games
- Added player mode to the player serialization
- Added a multi-threaded mode to AI_CHANGE_TESTING. For the moment it's only useable with Qt. If you want to use it without, just defined a thread_count higher than 1.
- Refactored random generator class to use list intead of queue
- Defined a specific type for interrupt decision instead of int
2011-11-13 22:36:34 +00:00
omegablast2002@yahoo.com
2240c14f56 only draw red and blue boarders on cards parent/child relationships if the connect rule is active, there is no way it would works correctly otherwise since connect rule is what handles the clean up and adding of cards to these vectors. 2011-11-13 20:05:25 +00:00
wagic.the.homebrew
d654b050df - fix for issue 756 (cycling not working for first 7 drawn cards)
- minor cleanup of MTGGameZones.cpp
2011-11-12 10:14:27 +00:00
Xawotihs
8c6a0cf9ae Fixed issue 753. 2011-11-09 22:15:26 +00:00
omegablast2002@yahoo.com
d2752a5a22 converted cycling into a cost type to bring it more inline with MTGrules {cycle}, also added the cycled trigger @cycled(tc):
this cost type sends both the event for discard and the event for cycled trigger, it no longer automatically draws a card, that is part of this cost ability instead.
standard cycling is autohand={cycle}:draw:1 controller
its trigger is
auto=@cycled(*|myhand):damage:2 target(creature)
"whenever you cycle a card deal 2 damage to a target creature."
2011-11-09 14:27:56 +00:00
Xawotihs
ad5edc224d Symbian^3 compilation fixes. 2011-11-07 23:32:02 +00:00
omegablast2002@yahoo.com
eda32239ab switched it to observer random.... 2011-11-07 22:47:25 +00:00
omegablast2002@yahoo.com
52db4b9ac4 added random avatar fetching for game modes in which you don't fight a specific deck...
fixed a crash from random deck game modes where it was trying to check against a selected deck...but there is no selected deck in random.
(side effect of this is that i can not bypass this, the stat still need to be run through without causing choas so i set it to deckname "" and id 0...we *might* need to find a different id...though it didn't seem to effect deck 0 as the name does not match)
2011-11-07 22:16:02 +00:00
Xawotihs
1ef9489ea0 Fixed compilation on Windows and avoid crashing when the TestSuite is interrupted. 2011-11-06 19:58:23 +00:00
Xawotihs
e50fdba648 - Replaced static parts by per-instance parts of of several classes when they were not threadsafe (AIMomirPlayer, SimpleMenu, Trash, AIAction, MTGCardInstance, ATutorialMessage, MTGRules). The direct consequence is that we could consumme more memory. So, tell me if you have problems with low memory devices (PSP), there are some threadsafe optimizations that could be implemented if needed.
- Reworked the testsuite to be able to work multithreaded. This is deactivated by default everywhere except in QT_CONFIG as one testcase still refuses to pass in multithreaded mode. On my 4 cores linux desktop, the 650 tests passes now in 4 seconds (1 fails).
- Replaced usage of CardSelectorSingleton by a card selector per game observer.
- Modified the resource manager to be optionnal and per game observer instance instead of being a singleton. Two reasons here : threading AND Open Gl access. I only updated the crashing parts called from the game observer, so most of the code is still using the single instance. Beware of copy-paste concerning resources ...
- Cleaned up the game observer constructors
- Fixed several problems in action logging code while testing proliferate decks
- Cleaned up Threading implementation based on QThread
2011-11-06 17:31:44 +00:00
omegablast2002@yahoo.com
b0cb955c53 converted ifthenability into an activatedabilty from mtgability so that it can be targeted without the use of workarounds... 2011-11-05 23:47:43 +00:00
Xawotihs
1ce9c75b9c Fixed warning on Windows introduced in latest commit. 2011-10-30 18:33:23 +00:00
Xawotihs
2f4dd4cd2a - Added poison counter check into the testsuite
- Decorelated the testsuite AI timer from the game timer to be able to have reproduceable results with AI tests.
- Created a random generator wrapper class
- Used two seperate instances of this random generator for AI and for the game
- Added methods to load randoms into AI from a testcase
- Fixed a probleme with undo and premade decks introduced in r4035
- Added basic test to test AI proliferate code
- Cleaned up goblin_artillery test
- Added AI tests into the testsuite test list
- Fixed looping bug into the multi target AI code
2011-10-30 14:31:27 +00:00
wagic.the.homebrew
53b9bc412f Fix for issue 749 (autohand/autograveyard/etc... don't work for player2) 2011-10-30 09:35:04 +00:00
omegablast2002@yahoo.com
1806e5463d got rid of restriction "fourth turn" it was incorrect from day one (opps), previous commit changed serra's avanger to "turn:7" which is actually your 4th turn. 2011-10-29 11:27:40 +00:00
Xawotihs
b0a720e8c7 Returned the code as it was. In my test, Proliferate works as before... meaning, I got it crashing several times like before my changes. I still need to rework this code to have it log correctly its actions. 2011-10-27 23:36:29 +00:00