Commit Graph

1487 Commits

Author SHA1 Message Date
techdragon.nguyen@gmail.com 1b5a379387 added empty string check when save and quiting from the deck editor.
Issue: 3052
2011-02-08 06:30:18 +00:00
omegablast2002@yahoo.com 104a626b3b excluding these types from allsubtype transforms subability. 2011-02-07 17:12:12 +00:00
omegablast2002@yahoo.com cba1849ef6 i subjected poor changelings to planeswalker legend rule lol. 2011-02-07 15:37:21 +00:00
omegablast2002@yahoo.com 79d4312660 it was reported to me that blinking a token can potentially crash the game on the "return" my fault..forgot that once tokens go to exile, we're done with them for good. 2011-02-07 14:00:42 +00:00
omegablast2002@yahoo.com 18c70ec187 found the cause of the loop in inkmoth, it has to do with the way manaproducers set thier "needsTapping" depending on the way the ability is called, it can set it 3 ways, {t}<--sets only the manaproducers "tap" and completely ignores the "doTap" which is the way actiavted mana producers call it. 2011-02-07 13:48:27 +00:00
omegablast2002@yahoo.com 9b076d6791 removed a fix to an infinate loop bug with Ai using cards such as inkmoth nexus...
as it removed ais ability to momir...protip in MTG youre not allowed to interrupt your own abilities...the way momir is working now, it select an action that doesnt pass priority instead it instantly searchs for a momir ability...which is wrong...
2011-02-07 13:29:27 +00:00
techdragon.nguyen@gmail.com 6ccc859ca0 The issue is the controller for the menu fails badly when the triangle button is pressed. That particular menu uses the menu item id to index into an array somewhere. Since the triangle key is valued at -200, this causes a negative index into an array.
I've added a guard to ignore the triangle key for now.  If there is a more elegant solution we can find later than great.
Issue: 577
2011-02-07 06:55:04 +00:00
omegablast2002@yahoo.com bf427b6402 i actually misinterperated the fading rule...
the difference between vainshing and fading is...
fading sac triggers the NEXT time you try to remove a fade counter but cant, vanishing sac triggers WHEN you remove the last counter.
2011-02-06 18:48:08 +00:00
omegablast2002@yahoo.com de6e5ed7eb extended "vanishing" to support "fading" these 2 abilities are the same with the exception of the name of the counter the creature receive. 2011-02-06 18:20:59 +00:00
omegablast2002@yahoo.com acebda16ca was pointed out that a couple subtypes needed to be added to the changeling ignore list. 2011-02-06 15:35:25 +00:00
omegablast2002@yahoo.com 4fd48777fe yeah im stupid 2011-02-06 15:22:15 +00:00
omegablast2002@yahoo.com bfd0d24d8d forgot we dont want hard to get this boost. 2011-02-06 15:21:20 +00:00
omegablast2002@yahoo.com 9d728ea0dd refactored this optimizedhand section to remove copy paste code...they all check the same condiations except the rating...so i had it check the codiations first THEN the ratings....makes it a little easier to edit later if needed. 2011-02-06 15:16:27 +00:00
omegablast2002@yahoo.com 156fd4a601 fixed handsize issue in demo.
Issue: 587
2011-02-06 14:50:02 +00:00
techdragon.nguyen@gmail.com e8a656e61e ManaCost hybrids memeber array wasn't being initialized giving each element of the array an undefined value.
Initialized hybrids array to contain NULL elements and toString now checks for NULL pointers before attempting to print out hybrids.
Issue: 586
2011-02-06 12:42:55 +00:00
Xawotihs b7b584113b - Moved the card collection out of the GameApp class to clean up the dependencies
- Added method to build a card collection independently of the GUI to ease my unitary test application
- Added part of some network GUI I'm working on, it's #ifdef out, I'm only committing this part to ease later merges
- Added the beginning of a serialization code of the Player and related classes used for network support
- various other minor cleanup
2011-02-06 11:35:40 +00:00
techdragon.nguyen@gmail.com 91a2cb9c90 fixed deck renaming to make changes immediate. 2011-02-05 22:21:49 +00:00
wrenczes@gmail.com bb2f784489 Refactored Z's last change slightly, eliminated code duplication. 2011-02-05 21:30:28 +00:00
omegablast2002@yahoo.com 7b3d65e984 changed it a little...now now difference while you have less then 10 artifacts/enchantments...after 9 it reorders them into stacks of 5 to save room.... 2011-02-05 13:26:02 +00:00
omegablast2002@yahoo.com f504051bfd changed the vertstack count of enchantments and artifacts from 3 per stack, to 5 per stack, i wanted to go 6 but i felt it cropped too much off the 6ths card...
reason for this change is that it becames WAY to hard to player decks which contained mostly artifacts to share the feild, give 9 cards half the screen to display just didnt seem like a good choice compared to the creatures horizontal stack which can display almost 200 cards in the same screen width.
2011-02-05 13:05:51 +00:00
omegablast2002@yahoo.com 8f09e8554c a fix for a strange edge case where ai was caught in a trap trying to activate inkmoth lands becomes ability. it would proceed to contenue to do so even tho it was not producing any results. 2011-02-05 11:11:08 +00:00
wrenczes@gmail.com d5777a6565 A simpler way to allow trim() to work with temporary strings. 2011-02-05 06:42:53 +00:00
wrenczes@gmail.com a0a3c59b29 Replaced unnecessary custom shuffle methods with std::random_shuffle<>. 2011-02-05 06:25:25 +00:00
wagic.the.homebrew@gmail.com f6bef26243 Erwan
- added some cache for function getCardByName. On my machine, this divides the running time of the test suite by almost 2 (now runs in 12 minutes instead of 21)
2011-02-05 03:46:41 +00:00
techdragon.nguyen@gmail.com 767983631a * moved deck saving to end of match. It now only saves when you've actually completed a game.
* added additional meta data for decks when saving them back to file.
  - decks saved this way now are split into three regions: creatures, spells and lands.  It's more for a visual sorting if a
     player wanted to look at the deck outside of the game.  It does not impact the deck loading negatively at all.  It may
     increase performance in cases where the deck was previously defined using the canonical names of the cards as the numeric ids
     reduce the work done when looking up the cards by name.
* modified ManaCost toString method.
* added toString method for ManaCostHybrid ( possibly make ManaCostHybrid a subclass of ManaCost)
* added additional operator overloading for ManaCost for printing to cover ManaCost when it's a pointer as well as a copy
   ( TODO: might want to check if making usage of ManaCost as a copy as opposed to a ptr is really necessary in most cases. )
* added alternate version of "trim" to handle trimming temporary strings as returned by things like ostringstream.str().
 - This was necessary since the PSP compiler doesn't do the necessary adjustments for those types of calls.
2011-02-04 12:37:44 +00:00
omegablast2002@yahoo.com 75a9d7840d 3 things here, found my targets returns for @vampired we're screwy, which explained why doc didnt add 3 of the possible cards for it...corrected that but i need to rename the varibles which i will do at a later time, not in this patch..
2 fix for token creator livingweapons...this was actually a preexisting bug, but not noticed becuase these are the first equipments that use token gen...when equipping it would readd the oneshot tok gen as an activated ability with no cost...generally we dont want to pass oneshot token generation to another card by equipping...

and 3rd...
got rid of the disgusting vanishing workaround.
it was riddled with bugs, got exsample if the creatures would gain indestructible the -99/-99 they were reciving did nothing to rid the battlefield of the creature...

new vanishing is 
auto=vanishing:number
thats it, no crazy 2 trigger lines with lords ect...
2011-02-03 14:17:25 +00:00
omegablast2002@yahoo.com 37adf143c8 added abilities=split second 2011-02-03 00:04:11 +00:00
omegablast2002@yahoo.com e47eb86304 added a return( effect ) to blink... 2011-02-02 21:22:10 +00:00
omegablast2002@yahoo.com e7fc20bd4c added
this(damaged)
added
targetchooser [damaged] status
added
targetchooser [controllerdamager]
targetchooser [opponentdamager]

basically checks for whos doing damage to who in a match per turn.
2011-02-02 18:22:08 +00:00
omegablast2002@yahoo.com 2ece777a11 stylistic change to my previous commit, has absolutely no effect on the code, just the way it looks. 2011-02-02 00:00:57 +00:00
wagic.jeck 8c18d155b8 Jeck - Fix for issue 580. StyleManager initialization was causing an infinite loop. Also started documentation for OptionItem. 2011-02-01 19:11:43 +00:00
omegablast2002@yahoo.com ea285e673e 2 changes here, first AManaProducer abilities will no longer use the stack as per MTG rules, for the most part this worked fine however genericactivedability does not use the reactto click put in place in the mana producer...so an ability which contained a cost other then just {t} was actually useing the stack instead in the fireability function.
2nd change is a bug fix, i noticed that cards which were mana producers which contained a cost but did not contain a {t}: would still tap at first i thought this was graphical, however after further reveiw i noticed that the card was indeed truely tapping...this was happening becuase amaproducer had a defualt of 1 for doTap/tap...and since genericactived ability does not go through the motions of setting the true manaproducers "doTap" which can be witnessed by stepping through the processes...it was defualting to a tap, even tho the cost might have just be {1}:add{ ....
2011-02-01 14:24:41 +00:00
wrenczes@gmail.com b6dcb0dcd3 Fixed some formatting issues that cause compile issues on bsd. 2011-02-01 11:54:38 +00:00
wrenczes@gmail.com 76cba56a1c Resuming on my threading support work with the card caching mechanism. This change unfortunately touches quite a few files, but I needed to get it out of the way before things got out of hand: one significant hurdle is the assumed lifetime of a JQuad pointer. In a single threaded model, the life time of the pointer is clear: you fetch it into the cache, the cache makes room, you use the pointer immediately. In a multithreaded context however, it's unsafe, as the drawing thread can request a few JQuads, and the cache operating on a separate thread can potentially bounce a JQuad out of the cache before the draw routine is done using it, which ends up in an access violation when you attempt to draw using an invalidated quad pointer. To prevent this, the bulk of this change swaps out the use of naked JQuad* pointers in the code with a JQuadPtr, which is basically a typedef to a boost shared_ptr<JQuad>.
This btw points out another circular dependancy between the texture and the JQuad - a texture owns a bunch of JQuads, yet the renderer uses JQuads and always assumes that the texture is valid.  We're going to need to add more defensiveness to JGE to protect against this.

Other changes in this check-in:  WResourceManager doesn't derive from JResourceManager anymore.  It actually didn't require anything from the base, so I killed the dependency.  Also cleaned up the notion of a WTrackedQuad in the WCachedResource - it didn't need a separate class, just a better container.

I've build this & tested against PSP, win, linux, QT (linux).  I haven't tried against iOS and QT Win, or Maemo.  If these other platforms are broken, I apologize in advance! - I'm hoping it should be fairly simple to put them back into play.
2011-02-01 10:37:21 +00:00
techdragon.nguyen@gmail.com d9facfb73b * moved deck mana display code into separate method.
* since I rescaled the images down to 50%, I moved the display to the upper right
   info box on the last line to the right of the "# of games played" information.
   Things look like it will fit as long as the number of games is under 1000
2011-02-01 00:48:23 +00:00
techdragon.nguyen@gmail.com 6d50ddcda5 * adjusted mana icons to be 60% of the original size. The rest of the game apparently resizes the mana icons to 40% but
that makes it look a little blurred when viewed that way on the deck selection screen.
* adjusted debug message condition for the mana display
2011-01-31 16:52:01 +00:00
linshier 6bde3d0ee6 moved the translator init code earlier; added some translation support for the code of r2517 and r2907; updated some Chinese translation. 2011-01-31 14:21:46 +00:00
omegablast2002@yahoo.com 1149f04df6 fixed a reported issue with regenerate...chooseBlockers appears as if it was never safegaurded at all...tho its understandable, wagic only made it "look" like ai was being offered a chance to interupt...in reality ai used to "check if it can interupt" then immedately "cancel interupt offer"...now its given a chance to interupt and cast instants...over looked in chooseblockers. 2011-01-31 13:02:40 +00:00
techdragon.nguyen@gmail.com fdd55dc22e added more debug information to ensure correct string length of MANA meta data 2011-01-31 10:30:20 +00:00
wagic.jeck c68a989915 Jeck - Begun documentation for the WGui classes. Also updated doxygen config to support STL. 2011-01-31 10:24:06 +00:00
techdragon.nguyen@gmail.com 8af5870d48 * Added new options parameter. "SaveDetailedDeckInfo". This will force the system to save all
deck files in long format.  This is not configurable from the game.  It must be set manually
     inside options.txt.
     ie.  saveDetailedDeckInfo=1

* added extra debug information (line number inside text file) when card parser fails to recognize a line.
    - modified return value from "processConfLine()" to return 0 only when a true error occurs and print out
         "MTGDeck: Bad Line:
         [<line no>]: <line with error>"
    - processConfLine will now return 1 for lines starting with "#".  Previously it returned 0 which is incorrect
         as comments should not be considered as errors.

* removed DeckMetaDataList class from code.  This was duplicating the DeckMetaData storage in DeckManager
* new feature for deck selection screens.
   - player decks will now have an indication of what mana color it consists of.
   - Ai decks will show symbols once the player has played against the AI deck at least once.
   -- This is made possible with a new meta data inside each deck file.
        MANA:<string representing color switches - 0/1 >
2011-01-31 10:04:18 +00:00
techdragon.nguyen@gmail.com 2973158a62 added new utility to check if a file exists on system. 2011-01-31 08:53:06 +00:00
techdragon.nguyen@gmail.com 6ddaf8b74b removed draw method from GameObserver as it is no longer used since the refactor of the
player mulligan code.
2011-01-31 08:38:14 +00:00
wrenczes@gmail.com 6675a7da31 Implemented a lazy load pattern for the deck stats - when the DeckMenu is displaying decks, it calls LoadStats() for only the ones visible in the list. This helps reduces the lag that occurs each time we attempt to load all the AI decks during match selection.
This still could be improved - DeckMetaData's constructor loads an MTGDeck object to parse out the name of a deck from its file.  This means that we crack open 106 files on the first attempt to show the list of opponent decks. I started optimizing this, but reverted, as the list itself is sorted alphabetically.  Currently, with these mods, it's still taking 4 1/2 seconds on my psp to load the opponent list on the first go around.

While at it, did some cleanup - removed the need for passing around a player pointer in some of the DeckStat functions, etc.
2011-01-30 13:06:21 +00:00
wagic.jeck e0f7bf26d8 Jeck - First doxygen commit, basic information on WFilter classes. Also added filter price adjustment for some of the newer basic abilities (the CANTLOSE varieties now cost more to filter). 2011-01-30 11:14:36 +00:00
omegablast2002@yahoo.com 50aa62675e adding life loss event sending to damage from creature sources in combat. 2011-01-29 22:32:34 +00:00
omegablast2002@yahoo.com 4103a8964f fixed an oversight and an error...in lifelostthisturn for a player, if the life gain was less then 0 then i want to ADD the abs pos to the amount, not remove it...and damage from creatures is considered lifelost... 2011-01-29 22:21:18 +00:00
omegablast2002@yahoo.com 853b8ea5c6 fixed gravetitan bug reported, added new keyword "retarget" as another support for newtarget...
reworked the handling of new target...auras and equipments can not be treated the same...doing so allowed the player to then use the equip function of the card and gain a double bonus. now i call directly on the equip function to do the equiping so that it works with its own function to add the effects. keeping a person from gaining double bonus.
2011-01-29 21:58:29 +00:00
omegablast2002@yahoo.com 4aa852ab0d the vampire restriction checks 2 or more, i had it checking for 3 or more. 2011-01-29 12:37:45 +00:00
techdragon.nguyen@gmail.com e74c63bc0b fixed mem leak 2011-01-28 22:57:10 +00:00