Commit Graph

250 Commits

Author SHA1 Message Date
omegablast2002@yahoo.com 4458e61b75 2 things, moved poison count wingame to the top with the life, there were cases where it wasnt respecting "cantlose" cards. and 2nd gave Ai *some* direction as to what to do with poison counters. i saw him place poison counters on himself to death in a single round...its was embarrassing. 2010-12-16 16:09:35 +00:00
techdragon.nguyen@gmail.com fe75493ffa No code change. Reformat code 2010-12-11 22:42:48 +00:00
omegablast2002@yahoo.com c54de679d4 couple bug fixes, a slight refactor,
ok here goes, first, fixed a crash that would happen when ever a player would gain more then 2000 life or take more then 2000 damage...the buffer was becoming corrupted i imagine because it was too small, increasing it to 10 slots allowed players to successfully take massive amounts of damage, highest i bothered checking was about 35k gained/lost, no crash...

2nd, removed the and refactored cantcaster rule, moved it to stateEffects() and renamed stateeffects to better reflect what it will be handling,

removed sneak attack rule and moved it into stateeffects

the following ints have been converted into bool, 
all the cantcasters, canputlandsintoplay is becoming a bool, the amount of lands you can play is now handled by a new varible int landsPlayerCanStillPlay (this is for my ability additional lands increase in support on perminents coming after the release)

the changes to bools were for an obvious reason, they were all ints pretending to be bools, my varibles were confusing as you would often see code like this if(cantblahblah > 0)
which to another coder might not make any sense.

these varible ints were returning 0 as false and 1 as true...changed them all to bools, same goes for putlandsinplay int, in half the places it was being used as a bool, AND it was tracking the amount, when i was coding additional land ability, this made it impossible to maintain correct amounts without damaging the rest of the code.
as a bool, controlled by stateeffects, it can now be used correctly as a bool in all cases, and the stateEffects manages the switch on it to false if you no longer have any landsPlayerCanStillPlay left.

the refactor on cantcaster was also a bug fix, it was reported to me that cantcasters were not correctly working, sometimes ai or player would still be allowed to play a card with one in play, because of the old way i had it setup somecases of bothcantcaster were reseting the cantcast to 0, basically making the check do nothing.

it is now handled in stateeffects if you have one in play, then its true, if not then false...this returns very accurate tracking of the cards instantly instead of checking as cards enter or left play.

the "both" versions now have their own bools to avoid future conflicts with the single player cantcast...

added a case for the fancy moving text, some move to library effects were incorrectly returing fetch.
2010-12-10 20:51:50 +00:00
wrenczes@gmail.com 4fd67bd1fd line endings -> Unix. No code changes here. 2010-12-10 08:38:09 +00:00
omegablast2002@yahoo.com 1fe35da5b3 forgot to change back one line i changed, this is part of the manual revert i did earlier. 2010-12-09 18:34:23 +00:00
wagic.the.homebrew@gmail.com 6360734ea3 Erwan
-Attempt at fixing issue 538. This is a wild guess, but basically 1 000 000 bytes is NOT enough to decompress a 512*512*4 texture (32bits png). We need at least 1MB (1024*1024) AND some additional space for the decompression process. Based on that, bumped the 1 000 000 (minimum contiguous ram necessary to start decompressing a picture) to 1 500 000. I've had pretty good results so far but this needs confirmation
- GameObserver <- changes from Win to *nix carriage returns.
2010-12-09 13:47:04 +00:00
omegablast2002@yahoo.com 5d96f68d21 reverted my changes in rev 2774 which intruduced bugs, coincidently stumbled across what really fixed triggers substep, which was moving it into stateeffects...this revert reintruduces the double interrupt offer to combatdamage in some specail cases. 2010-12-09 13:31:09 +00:00
omegablast2002@yahoo.com f227c4775d moved phase pass automation into stateeffects() where it should have been from the start, it really shouldnt be run as part of "update()" it bothered me enough to actually move it. 2010-12-08 15:33:02 +00:00
omegablast2002@yahoo.com 6348940dc6 added a automatic move forward if trigger step if playmode == test suite...this will still trigger the steps actual functions and test that are using trigger step will require an extra "next" test that are not using trigger step for anything will not need the extra "next" 2010-12-08 14:32:12 +00:00
techdragon.nguyen@gmail.com def9a8b229 added additional debug statement to show current turn. 2010-12-08 08:21:54 +00:00
omegablast2002@yahoo.com d3a4745686 did a couple things here, fixed issue507 but also, very very very possibly fixed issue548, tho i will leave the closing of those 2 tickets to wololo, as he was the one who originally reported them.
another issue i fixed, when last trigger would be resolving in "trigger" substep, the game was moving to next combatstep before you could finish it, NOW the game correctly finishes resolving any triggers that might have fired off in "Triggers" substep, THEN it adds combatdamage step to the stack. this also fixes an issue where if you were multiblocked and combattriggers fired off, then your trigger would be UNDER the "ordering window" and unresolvable.

added waitingforanwsers return to userRequestNextGamePhase
when youre "waiting for anwsers" that means you have a menu box open and the game is waiting for you to decide....this was one of the causes of the rush to combat damage while youre still selecting something on a menu.

moved Trigger step call to requestnextgamephase into stateEffects() and out of updates, works MUCH better this way. i wonder why this isnt handling more of the automated functions, i suggest we consider moving the autopassphase into stateEffects() also as it will most likely be handled much better in there then in the update function.


also,
adjust Ailessons on Adrawer, it was still getting a little too excited about drawing cards. 
moved around the eff setting on grantingability lessons.
having it set to 0 BEFORE actually giving it a value was conter productive.

added a peice of commented out code in "isintop" function that if you uncomment will allow you to have Ai ALWAYS multiblock you.

im pushing this in as i feel comfortable with the positives and havent really come across an adverse effect yet.
however i am just one person and testing something like this is much easier with alot more then 1 person on it.
2010-12-07 17:58:46 +00:00
wrenczes@gmail.com ffd3b7b074 At Z's request, fixed Issue 184, ExtraCost types with targets such as Siege-Gang Commander/Drowner of secrets combined with targeted abilities bug.
This one was a bit of a doozy to fix correctly, but the actual fix ended up being fairly simple - the upshot is that TargetAbility never checked for whether an extra cost needed setting prior doing a target selection.  While at it, I discovered and fixed another bug:  if you're in the middle of an extra cost choice (like sacrifice, for instance) and hit the next phase button, the game would let you proceed, and then hang in an endless loop.

While at it, did a little cleanup/refactoring around GameObserver's waitForExtraPayment - any time a bool has something that sounds like a verb, it probably deserves to be a function.  Now it is. (I needed to refactor it anyway, as I reused that code for the next phase hang.)

Note that after this fix, I had to patch two test cases (siege_gang_commander.txt & seismic_assault.txt) - since I've change the selection order (ie a target ability with a sacrifice cost requires the cost to be paid up front before picking the target), this means that tests involving targeting & sacrifices need to switch the order of the cards to pass.
2010-12-06 06:49:36 +00:00
wagic.the.homebrew@gmail.com c7a17a0e57 Erwan
- some code cleanup, as I am trying to figure out the root cause for issue 548
2010-12-05 14:13:42 +00:00
wrenczes@gmail.com 65e38b0694 Another change that looks bigger than it is: changed out the global extern WResourceManager to a real singleton. This means that it's no longer being init'ed at static initialization time, and we can debug construction/destruction properly; it's also safer in a multithreaded context. 2010-12-01 08:22:17 +00:00
omegablast2002@yahoo.com 2aa47cd68b reverted the change i made, found specail cases where this cause bugs. 2010-11-24 14:40:06 +00:00
omegablast2002@yahoo.com d1577ef35e corrected an issue where the player was being offered interupt 2 times for "combat damage" not closing the ticket until i can get some help verifying that it covers all cases where it might be true. 2010-11-24 13:46:27 +00:00
wagic.the.homebrew@gmail.com f7bcbb42dc Erwan
- had some problems compiling for the PSP. I assume I was the only one, please let me know if the "include JLogger" lines are not needed (they were needed for me)
- Fix a memory leak when playing in "random deck" mode
- Prevent the AI from playing cards with a cost it cannot understand (ExtraCosts with a target).
2010-11-18 14:04:24 +00:00
techdragon.nguyen@gmail.com acd7bb1aa4 reformatting code according to guidelines defined at
http://wololo.net/forum/viewtopic.php?f=35&t=2235&start=10
2010-11-16 00:55:16 +00:00
techdragon.nguyen@gmail.com f176f7378d removed redundant delete of mPlayer[i]->game as it is already taken care of in the destructor for Player in the next line. 2010-11-10 00:53:56 +00:00
wrenczes d5f3e4cfea Enabled precompiled headers for the build. This cuts the win compile time in debug by at least half on my laptop; on the psp compile, it shaves it down by ~ 45 seconds. I only did a cursory inspection of what to add to PrecompiledHeader.h, there's probably more that we can throw in there for more incremental speed improvements.
Also fixed the project includes so that we don't need to always use the indirect include path, ie:
#include "../include/foo.h" -> #include "foo.h"

I'm don't know much about make files - if I busted the linux build, mea culpa, but I think we're okay on that front too.  For future reference, here's the most straightforward link on the topic of adding pch support to make files:

http://www.mercs-eng.com/~hulud/index.php?2008/06/13/6-writing-a-good-makefile-for-a-c-project
2010-10-24 05:55:24 +00:00
omegablast2002@yahoo.com 98e34c4eca changed some of the ability names as requested, autoformatted ability.cpp as it was getting pretty messy. added @attackedalone( trigger. added "removefromcombat" mtgability. im going on vacation, whoosh :P 2010-10-18 15:56:32 +00:00
omegablast2002@yahoo.com d13e8904b5 massive update, additions and changelog in first comment. 2010-10-18 10:46:36 +00:00
wrenczes@gmail.com e45735267b More work on cleaning up debug trace logs. Added getDisplayName() overrides to the Ability & NextGamePhase interrupts so that there's now more contextual info in the output log. You'll now see what game phase is being added/resolved on the stack, and instead of a generic 'StackAbility' entry, it'll tell you what source it's coming from.
Also deleted a few debug output traces that were truly uninformative.
2010-10-07 08:13:22 +00:00
techdragon.nguyen@gmail.com 8e83e0d632 Issue: 474
modified player status to recognize that test suite has been activated.  This is to allow deactivation of "phase skip automation" game setting during test suite.  
TODO: fix "Phase Skip Automation" such that if turned on the test suite does not break.  This fix should be considered temporary
2010-10-04 16:26:55 +00:00
wagic.the.homebrew@gmail.com f3cc20eb31 Erwan
- Fix for issue 284 (Damage not triggering when creature dies in combat phase)
2010-09-25 05:15:09 +00:00
omegablast2002@yahoo.com 75c0733a38 Condensed castrestrictions/handsize rule massively. handled by 1 rule now and checked in one pass. 2010-09-24 19:26:32 +00:00
omegablast2002@yahoo.com 65673ca0b2 added support for no max hand size, added nonstatic lifetotal checks, added a check for how many equips a card has, added a fix for a typo in affinityswamp. 2010-09-17 17:37:18 +00:00
omegablast2002@yahoo.com b507053a1d fixed storm spellcount, affinity/manaredux invis mana, added true "retrace" added 3 new extra cost types. 2010-09-14 17:15:33 +00:00
omegablast2002@yahoo.com 99da45f400 Added support for "buyback" and "flashback" with optional auto=buyback/flashback line support. 2010-09-10 18:00:37 +00:00
omegablast2002@yahoo.com 79ea200d97 Added MNGuyen's improved and alphabatized deck handling(noticeable speed increase btween menus) and almosthumane's automated pass phase option. 2010-09-08 11:44:11 +00:00
omegablast2002@yahoo.com e65b3f223f Complete Overhaul of the cantcast abilities, changes in first comment. 2010-09-04 15:16:57 +00:00
omegablast2002@yahoo.com c83950a5d4 storm,cantwin/lose,additionallands,cast restricting 2010-09-04 00:16:20 +00:00
omegablast2002@yahoo.com 45f37b7545 fix windswept_heath.txt missing choice 1, added unearth support without workaround, tweaked alternative cost, added treason/sneak attack ability, added frozen. 2010-09-01 21:31:27 +00:00
omegablast2002@yahoo.com 98d908f403 added support for "prevent next [number] damage" to player/creature. 2010-08-28 19:50:26 +00:00
wagic.jeck 8114944db9 Jeck - Added theme substyles, which are chosen dynamically based on the player's deck composition. Also added lazy unit test for booster packs, though there should be a better way to framework this. 2010-08-28 10:51:38 +00:00
omegablast2002@yahoo.com aef30e6e0d added bloodthirst:number ability 2010-08-26 16:05:48 +00:00
omegablast2002@yahoo.com e644aaae3a added poison support, guicounter, "infect" ability, poisonous ability. 2010-08-25 18:56:34 +00:00
solo81@web.de 897114af70 Added the new zone "OPPONENTHAND" (by Zethfox).
Zethfox: "Opponenthand gui access, cards that target(*|opponenthand) can now be coded as such, target chooser will activate allowing you to click the new icon under the avatar of the opponent and open the opponents hand Gui so you may select the target card."

Cards in opponents hand are only viewable when target choosing would allow you to enter that zone! ;)


- Added the new keyword "NAME". (by Zethfox). 
When used in an autoline it replaces an autoline's "ability" text with a custom ability name. 
The basic phrase is: "auto=name(whatever you want) &&".

Example card:
[card]
name=Order of the Stars
abilities=defender
auto=choice name(white) && counter(0/0,1,White) all(this)
auto=choice name(blue) && counter(0/0,1,Blue) all(this)
auto=choice name(black) && counter(0/0,1,Black) all(this)
auto=choice name(red) && counter(0/0,1,Red) all(this)
auto=choice name(green) && counter(0/0,1,Green) all(this)
auto=this(counter{0/0.1.White}) protection from white
auto=this(counter{0/0.1.Blue}) protection from blue
auto=this(counter{0/0.1.Black}) protection from black
auto=this(counter{0/0.1.Red}) protection from red
auto=this(counter{0/0.1.Green}) protection from green
text=Defender (This creature can't attack.) -- As Order of the Stars enters the battlefield, choose a color. -- Order of the Stars has protection from the chosen color.
mana={W}
type=Creature
subtype=Human Cleric
power=0
toughness=1
[/card]

The popup window for this card will now contain a list with 

"white,"blue","black","red" and "green" 
instead of 
"ability","ability","ability","ability","ability".

This will make a lot of cards much easier to handle!


- Added 42 successfully test using one (or both) new keywords.
Card list --> First comment


Note that we did not add tests for both new keywords:
It is simply not possible to write them yet! They will follow as soon as they are possible. We guarantee that everything we submitted in this revision has been tested excessively!
2010-08-13 00:38:56 +00:00
wagic.the.homebrew@gmail.com 1332842025 Erwan
- bug fix in JGE++ audio (improve HBL compatibility)
- Added new rewards in story mode: random card, card (either by "name" or id), specific set
- Story mode: added possibility to choose music, and bg for duel.
-- See "01. Where it all begins" for examples of new features
2010-07-19 13:44:26 +00:00
wagic.the.homebrew@gmail.com b1079942af Erwan
- Reward system in Story mode (currently, either credits or random set)
- Rules now accept for player 2 to start (see story mode "block" stage)
- Story mode now has an autosave/autoload mechanism. This is for convenience but also to prevent people from abusing the reward mechanism too easily.
- possibility to choose an avatar for both players through the rules (see example in story mode)
2010-05-09 08:14:01 +00:00
wagic.the.homebrew@gmail.com 755bb04475 Erwan
- updated pt translation (thanks to almosthumane)
- Added/updated some Themes by Ilya B
- Added a random wallpaper loading at loading screen (see wallpapers.txt in Res/graphics)
- Saving decks and collection should now be a bit more secure (attempt at minimizing issue 393)
2010-05-02 12:49:36 +00:00
wagic.the.homebrew@gmail.com 77769c5e37 Erwan
- Fixed a bug with "must" abilities and the AI, such as Noggle Bridgebreaker
2010-02-06 04:34:09 +00:00
wagic.the.homebrew@gmail.com bd6c1a2407 Erwan
- fix compilation issues introduced in r1727
2010-01-18 12:43:30 +00:00
wagic.the.homebrew@gmail.com ffbcd3f2d0 ERwan
-fix issue 297
- also removed the "untapBlockers" system. The idea was nice but incorrectly implemented, and only 2 cards were using it so far.
2010-01-17 12:05:40 +00:00
wagic.the.homebrew@gmail.com 2285821d36 Erwan
-fix issue 252 (equipment goes to graveyard)
2010-01-05 13:48:17 +00:00
wagic.the.homebrew@gmail.com 3e33e2b756 Erwan
-fix issue 270
2010-01-04 13:51:39 +00:00
d32.wagic 002851a943 Daddy32: Tasks Mode
Gives the user the opportunity to earn some credits for performing various tasks.

Known bugs removed, tested stability-wise, not so much game-wise.
Lots of to-dos and ideas still remaining, better balance between task difficulty and their rewards needed - please comment.

Usage:
Enter shop, open menu, select 'See available tasks'.
All tasks in the list are active, until they expire ('Days left'; day passes after each duel (won, lost or quited)).
You can finish any of the tasks and get bonus. For particular task, the bonus gets a bit smaller every day (until expiration).
2009-12-13 22:12:14 +00:00
wagic.the.homebrew@gmail.com 0d2c6cf3e5 Erwan
- Adding external rules mechanism. It is very crude for the moment, but I hope it will grow. Have a look at Rules/mtg.txt for basic usage
2009-12-06 04:47:29 +00:00
wagic.the.homebrew@gmail.com ea3ed7061f Erwan
- Lords are now taken into account in AI statistics. (To display information, uncomment RENDER_AI_STATS in config.h)
- fixed a potential segfault with NoFizzle
2009-12-03 02:05:03 +00:00
wagic.the.homebrew@gmail.com da9a82cff4 Erwan
- removed some unused code. Please review!
- Added protection from() auto keyword. It is still possible to use protection from [color] in abilities, but when it is not possible, please use protection from([target]) in auto=
2009-11-21 07:26:26 +00:00