Commit Graph

1015 Commits

Author SHA1 Message Date
linshier
0ce36747a7 Fixed a compiling error for GCC-4.4.5 2010-10-24 07:34:12 +00:00
wrenczes@gmail.com
e74c0fcc7c Moved a few more common shared includes into the precompiled header. 2010-10-24 06:55:40 +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
8cb1f0cc7c moved the level varible from MTGcard to MTGprimitive. 2010-10-23 23:48:02 +00:00
omegablast2002@yahoo.com
a9e4c58af2 taught Ai how to use levelup creatures, taught Ai how to use Equip, taught Ai how to use prevent the cleric ability.
this is by no means absolutely perfect, i like it tho, and makes for some real good times with level up deck built with equips. 

you will notice i added a level=number...to the level up creatures, this has no effect on players, this is just a small hint to the Ai as to when it should stop investing mana in that creature. the chances are a little over half that ai will want to level a creature, increased ever so slightly with each level up.

for equipment, the Ai will now want to equip its best Creature(determined by power+toughness+convertedcost+how many abilities it has) and will want to equip these "better" cards atleast 2 times before it is reduced. same system for prevent damage, it will want to save its "better creature" more then a 1/1 token.

for both tho i added slight bonuses...
to equip, there is a higher chance that the ai will want to target a white creature, with an extra bonus if the creature is a 1/1 and nontoken. this is to encourage Ai to equip in white weenie decks

in prevent, there is a slight bonus if the creature is a 1/1 and the blocker/blockee has a power of 1. 

currently prevent damage treated this way is not coded for direct damage spell, sorry ! but for combat you will notice ai taking a stand and fighting back hard.
2010-10-23 22:34:07 +00:00
omegablast2002@yahoo.com
d5ca6b0207 added a few subtypes to exclude from changeling, noticed subtypes that are not true MTG subtypes. in the future can we please try to refrain from making up fake subtypes, for exsample "level" and "levelup" are NOT MTG subtypes 2010-10-22 21:23:47 +00:00
omegablast2002@yahoo.com
165d9df5c9 added a string support to transforms(...cards can now transforms(allsubtypes) or transforms(removesubtypes) 2010-10-22 20:29:55 +00:00
omegablast2002@yahoo.com
32cc74bd93 just a couple comments to say what "basicabilities[55]" is to make it clear. 2010-10-22 17:58:25 +00:00
omegablast2002@yahoo.com
90fb03aba7 finally fixed Changeling abilities= keyword. 2010-10-22 17:45:56 +00:00
omegablast2002@yahoo.com
f3449592de Fixed a bug where "Maxglee" cheat was adding token workaround cards to the collection. also, removed subtype search "nothing" from the Wfilters...before anyone jumps on me, there are over 18000s MTG cards, NOT a single ones of those cards have subtype="nothing" or any variations of "nothing" 2010-10-22 14:53:39 +00:00
techdragon.nguyen@gmail.com
1652308bfe added missing file. 2010-10-22 09:33:55 +00:00
techdragon.nguyen@gmail.com
34bdfab36f fixed bug with saving brand new AI decks. 2010-10-22 09:22:25 +00:00
wrenczes@gmail.com
e2de03d987 Some organisational prep work before I start working on a new navigation method (ie replacement for CardSelector). The current design was to allocate a CardSelector and pass in its pointer to a variety of classes via their constructors. To simplify things, now we use a singleton style pattern with an Instance() function - this means that when I implement a new class to replace CardSelector, I only need to modify what's returned by the singleton callback - as long as the new pointer class supports the same function calls, it'll be a straight drop-in. 2010-10-22 08:41:44 +00:00
techdragon.nguyen@gmail.com
84004c7c7f added separator to debug output when running test suite. This will visually help
with identifying when a test ends and another begins.
2010-10-22 08:29:47 +00:00
techdragon.nguyen@gmail.com
34335ba2aa added option to save deck in editor as an AI deck.
No option to delete or edit the AI deck once it has been created.
The deck gets saved as the canonical form of the deck to match other AI deck formats.
2010-10-22 08:28:52 +00:00
omegablast2002@yahoo.com
5e34cce734 changed This(equip) to ThisAttacked(gear) and changed varible name also, there was a discovered conflict using these as equip, with the MTGAbility equip 2010-10-21 20:48:39 +00:00
omegablast2002@yahoo.com
34580856d3 untaught Ai how to use prevent until someone with more knowledge then i can look at why the enum list wont allow for it to be listed. its commented out for now, and it works on PC just fine, not perfect but atleast Ai actually trys to keep all their creatures with atleast 1-3 prevent point on them during combat. the probelm it has is with compiling to PSPSDK, it doesnt like having STANDARD_PREVENT = 13, If someone could look into why it would dramatically help Ai using clerics. 2010-10-21 18:44:01 +00:00
omegablast2002@yahoo.com
42dca6dd88 fixed a line that PSPsdk didnt like. 2010-10-21 16:17:27 +00:00
omegablast2002@yahoo.com
18ff503bd9 fixed Ai not using regenerate during combat, taught Ai a little about prevent:number, changed "removepoison" mtgability to "alterpoison" as it made more sense. 2010-10-21 15:52:04 +00:00
omegablast2002@yahoo.com
306fd5e4f7 changed twist to "swap" cause it made more sense, added a couple more menutext returns, change enumerator exilebury to match its const char, this was causing massive confusion amongst the crowd. 2010-10-20 19:30:17 +00:00
wrenczes@gmail.com
7d8eb055e6 Last set of OutputDebugString() -> DebugTrace() conversions. 2010-10-20 04:35:20 +00:00
omegablast2002@yahoo.com
037b5c3598 corrected an issue where basicability modifier was not returning the name but "ability instead..did minor correctsions to some Substr values. 2010-10-19 19:26:46 +00:00
wrenczes@gmail.com
d35367503d Modifications required to build against the latest (0.10.0) PSPSDK. Note that this is a breaking change, these mods are not backwards compatible with the 0.8.9 version of the PSPSDK.
To download the latest Minimalist SDK, go here:

http://sourceforge.net/projects/minpspw/
2010-10-19 08:45:36 +00:00
wrenczes@gmail.com
5aa3dc6fd3 Refactoring of some of the font management in WResourceManager. This change looks bigger than it actually is - most of the touched files are simply renaming of some font enums that I moved out of MTGDefinitions into the resource manager header files. The main points of this change: collapsing the font containers into a single map, eliminating duplicated functions, and migrating the font building logic into the resource manager class. GameApp doesn't need to know anything about the fonts it uses, and likewise, font users don't need to know what the name of their chosen font is, just the FONT_TYPE enum.
(I did a cursory check to make sure chinese still displays correctly - at a glance, I'm seeing what looks correct to someone who doesn't read the language :) )
2010-10-19 07:51:32 +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
wagic.the.homebrew@gmail.com
f5575ac68e Erwan
- Updated fix for Dragon Broodmother
2010-10-18 13:33:54 +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
211deca011 I'm still planning on a more ambitious navigation mod, but this is a simple interim change to the existing navigation model that allows you to use the up/down keys to navigate directly to an avatar. This means that if you open your card hand & need to cast a spell that targets the enemy avatar, you can simply hit the up key a couple of times instead of navigating left (through potentially a huge number of cards if you're in a long, drawn out match). 2010-10-18 04:01:18 +00:00
wrenczes@gmail.com
832f11c153 Switched the managed JQuad container implementation from a vector to a map. This speeds up the cache lookup time from O(n) to O(log n). Hard to see a noticeable difference on win, but it definitely feels snappier on my psp, for instance, when browsing your library for a card, or your graveyard, etc.
I'm also noticing that the GetQuad(int) variant never seems to get hit, so I suspect that the ID lookup map is redundant.  I left it alone as the JResourceManager base class forces the need for the function; I need to spend more time looking at just how much of JResourceManager we actually use at this point.
2010-10-17 16:54:08 +00:00
omegablast2002@yahoo.com
35fa4d9786 made the fix to color= a fancy loop deal by request of wololo 2010-10-17 13:48:59 +00:00
omegablast2002@yahoo.com
6a81228275 fixed an issue where color= was not setting multiple colors on a card with this line.
Issue: 491
2010-10-17 13:17:27 +00:00
wagic.the.homebrew@gmail.com
8fdb64e9ce Erwan
- adding tests for issue 489 and issue 491
- check for null pointers in Credits.cpp
- Test suite can now select tokens by their name
- Fixed Dragon Broodmothere's token name
2010-10-17 10:21:08 +00:00
wrenczes@gmail.com
a7ffe4990b Cleaned up the SimpleMenu drawing routines. I was seeing intermittently weird edge lines on the spades of the menu system, as well as gaps. The code was doing a lot of hacky +/- of arbitrary pixel values for the positioning, so I fixed it up to do everything relative to the widths of the pole & the actual spade graphic's size. Also cleaned up the pngs themselves, as they had no need for a transparent pixel rim.
Also moved some static value definitions used in the drawing code from the class header to a private namespace in the cpp file, as they don't need to be seen by any clients of the class.
2010-10-17 00:20:25 +00:00
Xawotihs
e082deaddf Fixed Qt project compile on Windows 2010-10-16 12:17:25 +00:00
techdragon.nguyen@gmail.com
da4ab477ae The Test Suite was incorrectly updating and writing player save data.
( ie task list was being updated, set information being evaluated, etc )
put a guard around the endgame stat update process to only update when non-testsuite games are played.

Issue: 488
2010-10-14 16:13:45 +00:00
wrenczes@gmail.com
5d26989f2c Force the line endings to Unix on this file. 2010-10-14 10:02:16 +00:00
wrenczes@gmail.com
847ec5b7c5 Reinstate the MillExileCost pay variant, as pointed out by Z. 2010-10-14 08:14:49 +00:00
wrenczes@gmail.com
f7361fb030 More type conversion warning fixes, with some minor refactoring thrown in. 2010-10-14 07:39:00 +00:00
wrenczes@gmail.com
3ca5a7261d More warning conversion cleanup. 2010-10-14 05:05:37 +00:00
wrenczes@gmail.com
356ce1b8ba Giant refactor of all the ExtraCost variants. Reduced the .cpp code by literally half (~350 lines!)
Some of the things refactored to the base class:
- isPaymentSet()
- canPay()
- Render()
- setSource()
- setPayment()
- the target instance
- duplicated constructor initialization crap

I'm not interested in pointing fingers as to how the code got this way, but I'll ask that everyone who's altered this code in one fashion or another to carefully diff this change and understand what I refactored.  This code is a poster child for neglect & what happens when people start blindly copy & pasting code instead of paying attention to the commonality between code paths.  If you see the same lines of code happening over & over, and you're about to make yet another copy, please stop yourself & think about how you can refactor the code to be in a single shared function (or, more explicitly, a shared base member function when possible).

If you don't understand what I mean by a shared base member function, then I would suggest at the very least reading up on this topic:

http://www.cplusplus.com/doc/tutorial/inheritance/

(And, after all that, if you're still unsure how to proceed, ping someone else for advice!)
2010-10-14 04:45:10 +00:00
wrenczes@gmail.com
25cb9dde54 Cleaned up some compile warnings (double to float/ int to float conversions). 2010-10-13 23:34:36 +00:00
Xawotihs
e8ecd74361 Mouse support in graveyards an library browsing during battle 2010-10-13 22:28:19 +00:00
techdragon.nguyen@gmail.com
5005f69a69 added current AI deck name to "start" menu while dueling 2010-10-13 15:24:52 +00:00
Xawotihs
bb6267bbe4 Fixed possible deadlock added in the mouse support code 2010-10-12 21:53:41 +00:00
Xawotihs
93b1656f13 Added left mouse click support for menu, submenu and battle 2010-10-10 21:59:18 +00:00
omegablast2002@yahoo.com
93fe22d282 added a small fix to further reduce attacker phase exploiting. explaination in comments. 2010-10-10 15:11:30 +00:00
wrenczes@gmail.com
a08217ba53 Sorry, I keep modifying this line accidentally since I'm building with the newer pspsdk version. 2010-10-10 07:38:17 +00:00
wrenczes@gmail.com
33e45c9635 More incremental work of converting code to use DebugTrace(). 2010-10-10 07:30:18 +00:00
wrenczes@gmail.com
2d86e86603 Follow up on this comment from Xawotihs:
"It's currently unclear for me why several instances of the same hgeparticlesystem with the same .psi file are created..."

The GameApp::Create() call was initializing an array of particles, but it wasn't actually stashing them in the psi cache.  The MenuItems also create the particles, but these are stashed correctly in the cache at that point.  So, I simply removed the unused particle array loading code since it wasn't actually caching anything correctly & therefore simply adding redundant reading of the same particle files.
2010-10-10 05:10:25 +00:00
Xawotihs
318aee5aec Work around issue 457, not fully fixed. 2010-10-09 10:37:47 +00:00