Commit Graph

1879 Commits

Author SHA1 Message Date
Xawotihs 9f09bbeec3 Removed compilation warnings. 2011-10-07 15:25:15 +00:00
Xawotihs c0c8688ede Fixed yet-another-retarded warning. 2011-10-05 21:26:40 +00:00
omegablast2002@yahoo.com fe91960980 moved all basic MTG related rules out of the engine and into rules.txt.
this allows users to create a mod without having to struggle with avoiding certain phase based or cost actions.
attackrule and attacker phase can be seperated now by not including auto=attackrule in your rules.txt....this means you can still have an attackers phase, but clicking the cards won't put the cards into attacker mode or add "attacker" to thier menu abilities. ect...

this also allows us to eventaully change/add to these base rules without having to create entirely new rules for them by modifying the base classes with new variables and so on.

IMPORTANT: UPDATE YOUR RULES FOLDER, OR NOTHING WILL WORK FOR YOU.
2011-10-03 13:13:37 +00:00
Xawotihs 86131f7ea0 Cleande up the deserialization code 2011-10-02 14:11:30 +00:00
wagic.the.homebrew 3decbe7f1d - Fix Android compilation issues
- Added a "cachesize" option (not available from the menu, but can be manually edited in players/options.txt, for example cachesize=200 means 200MB of cache). The hardcoded cache on windows/linux is 20MB, which is not enough for Hi Res cards (60 is better, 200 is great)
2011-10-02 09:05:39 +00:00
wagic.the.homebrew 9e572ee416 - Moved "game mode" types of awards outside of a code, and inside of a configuration file (rules/awards.dat). No code is required anymore to create such an award (momir, hermit basic, etc...)
- fixed compilation errors in GameObserver (windows)
2011-10-02 01:03:45 +00:00
Xawotihs 483c767492 Fix players vector (had a couple of 4 players game with the new code), added more cleanup 2011-10-01 23:49:37 +00:00
omegablast2002@yahoo.com 76a8f406ec converted the player arrays into vectors, so we can test is a player is actually there at the time we are trying to access its variables.
this fixes 2 crashes I found, the first, 2 color random mode would crash on load.
2nd, ai vs ai testing would randomly crash, this should fix that also.
I noticed 2 color random mode is now trying to search for it's rules and sometimes flashes for a brief moment "error cant read file" or something like that....I could not find the source of that, it doesn't cause it to crash however it causes it to take a sec longer to load, this is before this commit btw, so the issue is still there.
it was trying to load the rules, flashed the error then crashes...i fixed the crash but not the rules error.

please review, i might have left in useless stuff...
I also did notice something, the way we are creating players is kind of all over the place. imo this is bad, it made this conversation extra hard becuase you create one player over here, another type over there, the human over in this direction, back track and create another somewhere else...this needs to be taken into account for a refactor, all player creation should happen in the same function, and at the same times...

the reason these 2 crashes existed was becuase players were being created before "gameobserver" in some modes, and in other modes, no player would exist at the time game was creating to set the player. but we then later call the same function when we actually load the player using the method specific to a mode.

this just leads to headaches, I mean no offense, just a general observation i made when converting this players array. unfortunately that kind of refactor is just a little beyond my coding ability.
2011-10-01 21:29:22 +00:00
Xawotihs bf37948823 Fixed shop touch/mouse support 2011-10-01 21:22:34 +00:00
omegablast2002@yahoo.com fe20ae0c24 fixed a crash when AiAction calls player->getObserver in multiclick.
important note: AiAction you always want to call "owner" becuase "player" here means single target spell has a target and the target is "player". I didn't come up with the variable name, sorry it is very confusing in this spot of the code.
2011-10-01 18:42:43 +00:00
Xawotihs 0dc9c4e274 Fixed a leak introduced in r3976 2011-10-01 17:56:40 +00:00
Xawotihs 24df6bbb6f Fixed a crash occurring at booster purchase 2011-10-01 17:29:33 +00:00
Xawotihs daf362f736 Simplified the parsing, now the TestSuite reworks on Windows. 2011-10-01 17:07:11 +00:00
Xawotihs d47ece1202 Fixed rules parsing on Windows 2011-10-01 15:06:24 +00:00
Xawotihs b36653787e Fixed compilation problems on Window 2011-10-01 14:24:07 +00:00
Xawotihs 9adb9d625d - reworked the testsuite and the rules (storyflow) to use the same game deserialization code, moved that code to the players and zone classes
- removed every references to the gameobserver singleton. This object can now be instantiated several times as it's needed for minmax. To be able to do that, I mostly added a reference to a gameobserver from any targetable object (cards, players, spells) and abilities.
2011-10-01 13:30:30 +00:00
wagic.the.homebrew d6db0c4f63 Simplified some restriction-parsing related functions 2011-10-01 03:07:58 +00:00
omegablast2002@yahoo.com fea034281d added support for suspend x...
suspend(0)={g}{x}

cards with x in thier suspend cards will suspend for x turns...x can not be 0 as per mtg rules.
2011-09-27 01:47:08 +00:00
omegablast2002@yahoo.com e117cf82c9 just moving parserestrictions under the parsecastrestrictions...so they are together rather then an entire page apart :) no code change, it just bugged me :P 2011-09-25 13:51:33 +00:00
omegablast2002@yahoo.com 3a2264febb just changing some comments in svn... 2011-09-25 13:41:12 +00:00
omegablast2002@yahoo.com e8ea5a28d7 added a space to the parsing of who in @next and @each....this space always existed in the coding we use however i am now making it required, the reason is that now we have tool which can include tc's and "s" was finding opponent and my in the tcs effecting the triggeratphase it created. this should correct that issue. 2011-09-25 13:38:15 +00:00
omegablast2002@yahoo.com 96cbe18be0 taught ai basic extracost targeting...by basic i mean its not going to choose a token creature over its 20/20 flyer for the target of an extracost...it will target whatever it can for the cost. but atleast it can handle extra cost which are targeted now, rather then ignore them completely.
also removed a peice of aiplayer::render, that was moved into aiplayerbaka.....
2011-09-24 18:42:37 +00:00
omegablast2002@yahoo.com f04a0dd338 better handling of cards with restrictions for ai. if we can't play it, then don't make it nextcardtoplay. 2011-09-23 19:48:17 +00:00
omegablast2002@yahoo.com 2bb651c5b4 fixed a crash in "white" rendering when you don't actually have the graphic for "white". 2011-09-23 19:05:10 +00:00
wagic.the.homebrew eb13d9a0f9 - Mark "equipment" abilities as good for AI (used for MotD) 2011-09-23 10:54:01 +00:00
wagic.the.homebrew fe88b747c0 - fix for ACounterTracker (this fixes the ability - it wasn't working before - as well as the memory leak)
- fix "release" build in VC++
- Let AI play creatures with ACounterTracker by making that ability a "positive" one (used for MotD)
2011-09-23 10:24:20 +00:00
wagic.the.homebrew c633dc805f - Adding "connected cards" color rendering
- Made "booster" check mod-dependent in test suite
2011-09-23 07:24:24 +00:00
wagic.the.homebrew 0b66caebf2 Fix PSP compilation issue I introduced in my previous change 2011-09-23 00:15:32 +00:00
wagic.the.homebrew f649fee465 - Minor refactor of a few files: removed some unnecessary calls, etc... 2011-09-22 10:07:05 +00:00
wagic.the.homebrew ee4c7e23bd - fixed memory leaks introduced in previous revision
- removed incorrect casts of MTGCardInstance into Spell objects.
- AI Test system now allows you to put decks in ai/bakaA and ai/bakaB instead of ai/baka. This allows to let AIPlayerBaka and AIPlayerBakaB play with specific decks
- Test suite speed improvement. Improved the card name cache. Test suite now runs in 850 seconds instead of 950 on my machine.
- minor code cleanup
2011-09-22 04:43:05 +00:00
omegablast2002@yahoo.com 4419ed4637 changed some logic for getting the pre x without shellcasting(?) spell...the variable word "prex" now returns the difference between the cards cost and the curentmanapool...giving us the value of pre x.some cards might need updating, doc can confirm it.... 2011-09-21 20:27:29 +00:00
wagic.the.homebrew 15f0143a8f AIPlayer minor tweaks:
- In order to clarify getEfficiency, started creating "getEfficiency" functions specific to each type of ability (see example with Damager). This won't reduce the file size but should make things bit clearer
- Minor cleanup of getEfficiency
- bug fixes in getEfficiency
2011-09-21 15:10:06 +00:00
omegablast2002@yahoo.com 11095f3339 added new functionality to AAMover...
you can now do 
moveto(targetzone) and((ability)) 
moveto(mybatlefield) and((transforms((zombie,black)) forever))
2011-09-21 14:06:32 +00:00
omegablast2002@yahoo.com ab7eb1b93e fixed an error in my last commit. 2011-09-21 12:37:44 +00:00
omegablast2002@yahoo.com 4dbe69dacf fixed ai mana finding which broke in previous ai changes(maybe during the split or fixing the memleak) 2011-09-21 12:12:34 +00:00
omegablast2002@yahoo.com 807e818e92 add the manapool at the end of gotpayments, only once. otherwise we get false amounts. 2011-09-21 11:07:41 +00:00
wagic.the.homebrew e9ce574bca - Fix a memory leak in AI "payTheManaCost"
- Minor fixes in AI code
- Attempt at preventing the AI from interrupting itself while it's selecting targets. I don't know why this happens, and my fix didn't work. I believe it shouldn't be possible to interrupt when there is an active targetChooser, please let me know if this is an incorrect assumption.
2011-09-21 03:54:47 +00:00
wagic.the.homebrew 44d9951246 Adding a system to compare two AI implementations (AIPlayerBaka and AIPlayerBakaB). This can be used to make sure a change to the AI is not making the AI weaker, for example. 2011-09-20 11:32:24 +00:00
omegablast2002@yahoo.com e3e0233b8a changed a couple wParsed ints to assign the spell or NULL rather then relying in card to cast it as NULL. 2011-09-20 03:13:52 +00:00
wagic.the.homebrew fbfac78b09 - Split AIPlayer and AIPlayerBaka in 2 files. Moved all "AI" specific code into AIPlayerBaka, as much as possible.
-- This is a copy/paste and shouldn't have any impact on the logic. I just moved some functions from AIPlayer to AIPlayerBaka
- Added back the possibility to select a different Resource folder with file Res.txt
- Fix a crash when a token id does not exist
2011-09-20 03:06:06 +00:00
omegablast2002@yahoo.com 839d197835 fixed the memleak i introduced. 2011-09-19 20:31:36 +00:00
Xawotihs bb65d2dc12 - various compilations fixes for Symbian
- small cleanups of the TestSuite and Player classes
2011-09-19 19:49:45 +00:00
omegablast2002@yahoo.com 180462f73c bug fix for an issue with multitarget, after a multitarget ability resolves the first time, i never set the tc->done back to false, so the first card clicked will think it is done every time after the first.
setting tc->done to false after targetability resolve.
2011-09-19 11:32:11 +00:00
omegablast2002@yahoo.com e0aa60070c ifthen targeting tweak... 2011-09-18 19:35:00 +00:00
omegablast2002@yahoo.com c0ab80a1bc fixed a bug in targetchoosing where a player would get stuck in a targetchooser under certain situations as follows:
opponent play an ability, player interupts and clicks a card with TargetChooser which has no valid targets; player then tries to cancel targetchooser, instead the stack is displayed again, player is then locked in a TargetChooser unable to click other cards.

originally i was going to do it in the reactToClick however, after thinking about it, it made no sense to me that a targetchooser would be set and a cardwaitingfortargets would be set if you know ahead of time that no valid targets existed.

now when clicking cards which have TargetChoosers and no valid targets, no tc is set, and no cardiswaitingfortargets; instead return 0.
2011-09-18 10:34:40 +00:00
omegablast2002@yahoo.com 4ab6dfd3da extended countertrack and teach( to creatures for use with countertracking...isolated equipment rule that states it can't equip a card it can't target in testDestroy(we want the equipments to stay on a creature even after it's hands are full :)
I'll take a stab at coding the current cards for the mod this evening.
2011-09-17 23:27:00 +00:00
Xawotihs c5203a9caf Touch/mouse support for storyflow. 2011-09-17 21:27:36 +00:00
wagic.the.homebrew c96d2fea55 Fix for issue 734 (creating profile on a fresh install is completely broken.) 2011-09-17 08:42:13 +00:00
omegablast2002@yahoo.com a6c458d0cb ifthen ability sometimes wasn't grabbing the right target, i now pass it through MTGAbility creations target.
also, i see now why targeted counter cost were left broken for so long. i think this way fixes it in all cases. what a pain.
2011-09-15 11:50:04 +00:00
omegablast2002@yahoo.com d04b4eca38 ai bug fixes, minor refactor of phaseaction/phaseactionmulti/upcost/upcostmulti, counter cost was safed wrong, sorry!, and fixed parsing of upcost..it was chopping the last bracket of the cost when used for things like echo, it required us to add {0} to those cost...that is no longer required. 2011-09-14 20:35:04 +00:00