Commit Graph

425 Commits

Author SHA1 Message Date
techdragon.nguyen@gmail.com e53c16f700 No code change just reformatting of header files.
finishing up my reformatting of the source from November/December following the guidelines that were posted.
some extra things I added:
   * Any empty virtual declarations were kept to one line.  
   * Enums were split up into separate lines to promote uniformity across all headers. ( each header file had a different style for enums)
2011-01-21 18:01:14 +00:00
techdragon.nguyen@gmail.com 1be97b76f8 code cleanup. No code changes
- removed unused variables
- added line breaks between methods (not everywhere just where i saw it while removing unused variables)
2011-01-16 07:49:34 +00:00
omegablast2002@yahoo.com d2a96e69df few small items, first since card view are now correctly null'ed, i ran into a few cases while watching demo mode where the game would trigger a stop on the battle hint that uses card views, apon checking the card view would be null at the time. so added a condiational check to prevent the game from trying to alter a null'ed pointer.
2nd, added a block out for optimizedhand in demo mode, ie any time its cpu player vs cpu player, noticed demo was starting matches with no cards.

3rd, added a hackish workaround to allow Ai to get eff returns on abilities using the all(this) lord workaround to target the source. Ai was not getting any returns on these abilities. now basically if the ability is a lord && !target...lets calculate this as tho source == target....
2010-12-17 20:59:08 +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
techdragon.nguyen@gmail.com 833bd4714d reformatted indentations as they were slightly off.
refactored latest changes to group similar menu texts.
2010-12-09 01:28:25 +00:00
omegablast2002@yahoo.com 585eae1852 added fancy location based move menutext return to lord...it was a case we must have messed when we were trying to get rid of generic "move" messages...lord returns ability menutext which in case of amover is "move"...and "all(" is a lord. so ran into a deck where i had a couple "move" menus display and i didnt know which i was choosing, moving creatures to hand or moving theirs to grave...
death to generic messages!!!
2010-12-08 20:16:27 +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
omegablast2002@yahoo.com 15e6fabd9f redid the counters menutext function to be more like the one "add mana" uses. makes it easier to read and add to later if needed. 2010-12-04 16:08:51 +00:00
omegablast2002@yahoo.com b5ec029d79 couple changes, first i re-added my fancy getMenuText for becomes/transforms abilities, somewhere in the refactor these were forgotten. Fix "Swap" ueot menutext display, it was returning "ability".
fixed a Ai related bug, taught Ai not to mill itself to death basically. played a few matches which Ai was just destroying himself with a creature that allowed him to draw cards for each(whatever) in play. Ai will be a little more careful not to kill himself by Mill, also not to draw 30 cards in a turn when it clearly cant play them.
2010-12-03 20:59:46 +00:00
techdragon.nguyen@gmail.com 0c9f5cd558 moved word wrap function from Vertical Scroller into utils.
moved MTG specific functions out of utils.cpp into AllAbilities
added word wrapping to descriptions while viewing deck information.
2010-11-29 13:38:36 +00:00
omegablast2002@yahoo.com 6467ab5aa8 reduced abilitymodify eff slightly increased base eff, added abilitygranted to activated. 2010-11-27 18:28:38 +00:00
omegablast2002@yahoo.com e23e3d0728 more Ai training: use ability modifiers on creatures that dont already have the ability and prefferedly during first mains, use life altering cards as often as possible, improved foreach a little more, use untappers on card that are tapped that belong to Ai and tappers on cards that are not tapped that belong to player 2010-11-27 18:05:35 +00:00
techdragon.nguyen@gmail.com 064dad3085 reverted ability/color parser for AATokenCreator.
fixed color parsing error for Transformer classes
2010-11-22 09:51:36 +00:00
techdragon.nguyen@gmail.com 7e55039b0a * added hashmap for all basic abilities.
* created three new utility functions that return a vector of matching abilities, colors and types
* migrated all activated ability impl into AllAbilities.cpp.  Perhaps we could break AllAbilities up into separate impl files for manageability?
    One for Activated abilities, another for triggers,etc
2010-11-20 19:41:26 +00:00
techdragon.nguyen@gmail.com 5f70d1cff1 * Renamed AManaRedux to AAlterCost since the latter is more representative of the effect
* moved more implementations from AllAbilities header file into the impl file.
2010-11-19 14:55:29 +00:00
techdragon.nguyen@gmail.com badbc1c040 more reformatting 2010-11-19 11:30:23 +00:00
techdragon.nguyen@gmail.com 6958411f4d Issue 525: fixed NPE for ABecomes
Reformatted AllAbilities.h
2010-11-19 11:11:22 +00:00
wagic.the.homebrew@gmail.com 416617fc0d Erwan
- fixed memory leak in AEquip/ATeach 
- Test suite now trims strings correctly (allows to have space between comma-separated card names)
- Added Paradise Mantle (for ATeach test)
- removed a missing wallpaper from wallpapers list
2010-11-07 02:27:54 +00:00
omegablast2002@yahoo.com 6c616f2741 added pdcount varible. playerdamagecount for the turn. this is for Simulacrum style cards.
Issue: 502
2010-11-06 08:07:48 +00:00
omegablast2002@yahoo.com ed03d2f3ef added optimizing of opponents hand if the opponent deck is listed as "easy". slight optimize if listed as "normal" none if listed as "hard" this provides slightly more challange from even poorly constructed Ai decks. taught Ai to pump creatures during combat, and more so if its heading directly at player, taught Ai that its better to use "becomes" and "transforms" during first main. this allow its to actually attack with the manlands ect.
new ability lord...teach(whatever[whatever]) ability.
teach is a targeted lord, it takes the cards current target and lords it the ability. im aware of a tiny memleak it contains, but the leak is happening on parser lvl, so i need more eyes to look at it. teach is ideally used for equipment, and was designed to fix issue 244 taught abilities are not given to the source cards.

forced Ai to pay for sunburst correctly. it was choosing to pay with all of one type of mana. now it pays either max or 1 from max sunburst.

added a tiny double check for Ai to try and find something to use if it suddenly has mana in its pool. it is only a single check in a turn, but i notice it actually does slightly improve the usages of dark ritual and foreach mana producers. ideally i wanted it to check EVERYTIME. but i could not achieve it without putting the game in danger of looping. so once is better then none :/

fixed a bug with affinity where it was not counting duel lands, this is becuase of not setting it up correctly for lands with multiple types SORRY!
2010-11-06 06:59:43 +00:00
wrenczes@gmail.com 685626128a Minor refactor of AACloner::resolve() - two code paths were complete duplicates except for the MTGCard*. 2010-11-02 09:26:37 +00:00
techdragon.nguyen@gmail.com a458da051d refactored how manaredux coding works
replaced literals with constants in some places.
migrated some abilities out of headers and into implementation files.
2010-11-01 13:04:06 +00:00
omegablast2002@yahoo.com 150c5f4c99 turned the "ai hint" for level up creatures into an MTGAbility.
this fixes a bug(?) that had high priority and maintains same effect as before. removed all traces of the "bugged(?) hint" from CardPrimitive.
Issue: 498
2010-10-31 17:19:20 +00:00
omegablast2002@yahoo.com fbd5cffbbd taught told Ai bushido is a good thing. laid ground for Foreach lesson for Ai :) fixed yet another reported bug with aslongas. gave becomes( a better menu name system for the manlands to use.
it will now say "becomes [types]"
2010-10-25 14:41:09 +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 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 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 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
omegablast2002@yahoo.com c9e5aaa2c5 added getMenuText() functions to lord, aslongas, foreach, and thisforeach, to return correct names for the ability in cases where theyre being used in instants, activated abilities with "&&", "choice" and "may" 2010-10-19 19:52:57 +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
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
omegablast2002@yahoo.com b8a5e7512a fixed bug with aslongas not triggering correctly for "<" and removing to soon for ">".
please note:
generic kicker test was broken before this rev.
Issue: 483
2010-10-15 15:20:45 +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
wrenczes@gmail.com 33e45c9635 More incremental work of converting code to use DebugTrace(). 2010-10-10 07:30:18 +00:00
wagic.the.homebrew@gmail.com a6e4fba26b Erwan
- fix issue 304 (Momir + persist)
- some minor cleanup
2010-09-25 09:13:30 +00:00
wagic.the.homebrew@gmail.com b6d7496798 Erwan
- some code cleanup in Damage.cpp (the test suite passes)
2010-09-23 13:06:49 +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
linshier 9d3707386b Fixed memleak by ability BloodThirst 2010-09-13 10:30:12 +00:00
omegablast2002@yahoo.com c408e5d588 added support for {X}{X} in cost, added support for token(creature, X/X or XX/XX)*XX or X or #. added discard card at random as cost type {d} 2010-09-12 16:15:24 +00:00
omegablast2002@yahoo.com 120da0388c fixed 3 memleaks in ability "transforms" 2010-09-11 18:00:48 +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 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