Commit Graph

1879 Commits

Author SHA1 Message Date
wagic.the.homebrew 78efba08b1 - fix for counters slowness on psp 2011-07-30 14:29:12 +00:00
wagic.the.homebrew 794be140ce - graphical representation of counters. see graphics/counters/quest.jpg for an example
- rewrote some code dealing with text formatting for a card when rendering in text mode. I could swear my code has been reverted. If somebody has good reason to believe we should re-process the string formatting on every frame, please let me now. I believe my change can help rendering speed of text mode a lot.
- counters change to vector instead of array
2011-07-29 17:43:45 +00:00
wagic.the.homebrew 9631171ad1 Cleanup of some Trigger code 2011-07-28 13:51:42 +00:00
wagic.the.homebrew ef5e011e23 - Removed "isClone" flag. This flag was error prone. The "core" classes now have decent copy constructors, and ideally long term we should create copy constructors for the abilities that have additional pointers in them.
-- The test suite passes but this is a big change. I might have introduced some memory leaks or bugs. I might have fixed some bugs, too
2011-07-27 14:31:27 +00:00
omegablast2002@yahoo.com 8bb53ff12f added incrementing of "damageCount" the variable that tracks the damage dealt to a player, to "infect" damaging...this is a rules correction, a creature with "infect" still "deals damage"...it just does it differently.
this fixes an issue with infect creatures not triggering "bloodthirst" ...all other cases this was working correctly, bloodthirst however checks the damageCount.....
2011-07-26 16:56:01 +00:00
omegablast2002@yahoo.com 11473e0fb5 added "while" tag to this's i added it to lords a while ago to fix a similar issue where the lords were taking on the "oneshot" variable of their abilities in cases where you really didn't want them too...
its basically an over ride....
2011-07-26 16:39:12 +00:00
omegablast2002@yahoo.com 72d91769d7 safe-ing up some of the getEff checks...i think the rare "trample" crash was actually caused by a check against a "player" as getnextopponent().... 2011-07-23 11:42:59 +00:00
omegablast2002@yahoo.com 444d13b457 added an "ifnot|if then" ability, with the option to turn on kicker payment menu choice, it created issue with the cards which were using the "kicker" workaround to show that a card was cast...
the ability checks against any of the current cast restriction checks and is written in the following syntax
example phaige the untouchable is 
auto=ifnot casted(this) then wingame opponent
if|ifnot condiation then ability
this can also be used in && abilities such as this card
pulse of the grid
auto=draw:2 && target(*|myhand) reject && if type(*|opponenthand)~morethan~type(*|myhand) then moveto(myhand) all(this)

this adds a few cards in its current state, though the aim for this ability was removing the use of "kicker" workaround for cards like the divinity creatures.
i plan to extend this to support such effects as "if spentmana({b}{u}) then effect....and other conditional checks currently not possible even with workarounds.

I'm committing these now since im working on abilities for kiaos mod and don't want to have a 20 page changelog.

also added missing text to binding grasp, it was thought that it was bugged becuase it simply "ended" its effect....however this is a confusion since the effect was ending due to upcost not being paid, however the card text did not reflect that it had a upcost....
2011-07-23 10:36:03 +00:00
omegablast2002@yahoo.com bd1c31b6f9 moved the parsing of cast restriction into abilityfactory and out of mtgability...this is so new abilities can take adventage of these checks through the use of AbilityFactory af. 2011-07-23 09:03:33 +00:00
omegablast2002@yahoo.com e8b8079ef6 fixed a bug where you could equip opponents creatures with your equipment, it is quite possible that we have *always* been able too but no one has actually tried. anyways "myBattlefield" does not compare to "mybattlefield"...
i seriously think we devs should consider making all ability coding required lowercase. not card names and text, but coding such as targetchoosers "thisForEach(creature[Black;White]|myBattlefield) moveto(myGraveYard) ...<---this is not uniform...and leads to people using such coding in the source ....i think i suggested this once and was instantly shot down...however, this is the 2nd instance where a bug has arose from the comparing of capitalized vs lower case..becuase we all assume that every line is going to be dropped to lower case as the game reads them.....
2011-07-20 17:17:52 +00:00
Xawotihs 9dccc885d6 Updated the Qt project to work on Desktop/Maemo/Meego/Symbian. Removed all dependencies except Qt and OpenGl. 2011-07-17 18:18:17 +00:00
Xawotihs c2879b0b6e Fixed a selection problem sometimes hapenning on the hand zone in touch/mouse mode and removed dead code. 2011-07-14 21:21:24 +00:00
wagic.the.homebrew 8c79e0644c Fix memory leak in ATransforms ability
- Blame is on me for the bad design behind the "isClone" flag, I need to get rid of that flag in the long term.
2011-07-14 13:49:46 +00:00
omegablast2002@yahoo.com a8837e95c6 fixed a heap corruption caused in atransformer was a mistake in the code.
also, if ai is adding counters and we're greater then or equal to the max amount that counter ability allows, eff = o.
2011-07-13 18:39:51 +00:00
wagic.the.homebrew fe98b3ca68 Removing the feature that loads the "big" card instead of the thumbnail when the thumbnail does not exist. Too many people using incorrect HQ packages are complaining about performance issues, so this will make the problem go away, and force people creating those packages to make them correctly 2011-07-13 12:58:21 +00:00
wagic.the.homebrew 9827e3f915 - Attempt at "fixing" issue 705: loading card frames (used for text mode) in 16bits instead of 32 2011-07-11 15:09:39 +00:00
wagic.the.homebrew 9d9db7198e Additional tweak for issue 693: reduce the size of some background images. I think the visual result is still ok. The images go from 480x272 to 450x255, and end up taking twice as less space in ram (512x256 instead of 512x512).
This helps a lot in the deck selection menus (duel and deck editor).
That, added to my previous fix, fixes issue 693 for me.
In general, we should try to avoid 512x512 32bits textures on the PSP. That happens with a 480x272 png image. One solution is to convert the file to a jpeg, and load it in 551 mode whenever possible. Another solution is what I did: use a 450x255 image instead. The best is of course to cumulate both, which divides the size in Ram by 4 on the PSP.
I'm ok with distributing lower res graphics on the psp, and higher res on other platforms, if that helps. Main culprits are 480x272 images (when there's too many of them)
2011-07-11 14:34:12 +00:00
omegablast2002@yahoo.com ff1a1dde86 updated a piece i forgot for type( restriction. this fixes feast for blood. 2011-07-11 12:59:44 +00:00
wagic.the.homebrew 3148a25f3a - Manual cache cleanup in the menu to help a bit with issue 693. This is unfortunately not enough, we are dealing with ram fragmentation problems here :( 2011-07-10 13:51:39 +00:00
wagic.the.homebrew bf4e0d8908 - minor tweaks:
-- Res is the default folder in Res.txt, in case it exists, to avoid confusion when debugging
-- added sign_prx in the makefile, harmless if you have the default build.mak, but signs the app for you if you have the correct files
-- uninitialized variable warning fixed in Rules.cpp
2011-07-10 07:55:08 +00:00
wagic.the.homebrew 4a6529ea55 - Reverting r3744. This fixes issue 707
-- I will open a new issue for the problem that r3744 was fixing
2011-07-10 04:36:55 +00:00
wagic.the.homebrew e84ad44e47 - Extended TutorialMessages into a message system that shows up every time a new game is started.
-- instead of tutorial(my message), use message(my message) for such messages. 
-- Counting on people to use it, now that it's here ;)
2011-07-10 01:55:20 +00:00
omegablast2002@yahoo.com e5dfb81fb9 added the missing types into types filtering.
http://code.google.com/p/wagic/issues/detail?id=706
these types were converted into part of the "types" enum and are no longer considered a subtype in the engine.
as they appear before Subtypes::LAST_TYPE they are to return "" as their subtype search result.
i figured there was no harm in including them in the types list filtering as they were moved from subtypes becuase they were some of the most frequently used subtypes.
2011-07-09 20:33:07 +00:00
Xawotihs 991bacbec5 Fixed issue 679. Filters now work with mouse and touch. 2011-07-09 10:51:49 +00:00
wagic.the.homebrew 8546f3dff8 Fix for issue 700 (Basic Lands randomly stop working) 2011-07-09 09:25:31 +00:00
wrenczes@gmail.com d23a826fef Fixed the back image card drawing offset. There's probably a better way to fix this, but it stems from the fact that cards (and the large back.jpg image handling) have their hotspots set to the center of the card coords, but for whatever reason, the code that draws the thumbnail version of the back image doesn't. Rather than try to fix the coords in all the places where we draw the back thumb image, I refined the quad sharing code so that there's one quad for temp cards, and another for actual back image drawing. 2011-07-09 04:30:18 +00:00
Xawotihs 979840dd4e Fixed issue 676 (was not related to mouse support at all) 2011-07-08 21:26:21 +00:00
omegablast2002@yahoo.com 700ee1a7db reinstated target coloring, added text display for stonehewer and hermit mode unlock. 2011-07-08 19:39:47 +00:00
omegablast2002@yahoo.com 665f533ac8 fixed a bug where altercost would cause extracost payments like PMana to lose their source, because the source for the cost is set after the card is placed in hand, and altercost resets the cost of cards to the new cost. 2011-07-08 17:43:19 +00:00
omegablast2002@yahoo.com dbbf5e4cb6 added the support to fix avatar of might...you can now do
otherrestriction=type(creature|mybattlefield)~lessthan~type(creature|opponentbattlefield)-3

which means, if the statement above is true you can play the card....if you subtract 3 from the amount the opponent has in creatures, and you are still less then the opponent...then that means he has atleast 4 more creatures than you do.

so right after the type(blah) you can add +number or -number...and it will modify the amount to compare.
2011-07-08 10:47:28 +00:00
omegablast2002@yahoo.com f88178f2cf refactored the typemin: cast restriction, there was a reported bug with it and while debugging it screamed refactor.
so i converted it from string comparisons and counting the battlefield..into targetchoosers with declarable operator.
simplified the code from the mess it was before into something alot easier to card code with.

example before:
mytypemin:less type(land),opponenttypemin:* type(land)
becomes
type(land|mybattlefield)~lessthan~type(land|opponentbattlefield)

the new syntax is:
type(targetchooser)~operator~number
type(targetchooser)~operator~type(targetchooser)
the operator are:
morethan
lessthan
equalto
2011-07-07 11:39:06 +00:00
wrenczes@gmail.com 463a64521f Switched another case of the psp icons to (explicitly) use the managed cache. 2011-07-07 08:26:01 +00:00
wrenczes@gmail.com c5963c3c23 Three improvements involving image caching:
1) prevent the textureQuad map from containing references to cards when we're returning a temp (card backdrop) image in the threaded version.
2) we had two copies of the pspicon image in the cache (ie the regular & managed).  Changed the reference in the DeckMenu code to use the managed instance.
3) Fixed a problem with a default constructor param that would set RESOURCE_LOCKED on certain images.  I noticed that the 'NEW' image was locking itself in the cache because no resource modes was being passed in, so the default constructor param was setting it to locked.  This seems like a bad idea - if you're not explicitly locking a resource in the call, that shouldn't be the default behaviour.

Also added an assert safeguard to catch the possibility of 'overlocking' an image resource, as this probably means the image fetching routine is being abused somehow.
2011-07-07 07:37:17 +00:00
omegablast2002@yahoo.com a59dec1500 added "once" support for the remaining triggers that did not have it.
this is basically one activation for the existence of the trigger, meaning if it is used on a card, and the trigger exist for inplay, it will only activate one time while that card is inplay, it will activate again if the card leaves play and is put back in play again by another effect, 
this was originally added for cards such as the hidden enchantment cycle.
2011-07-05 14:14:18 +00:00
wagic.the.homebrew c3ae216f62 - Fix issue 694
- Bump version number to 0.16.0 for upcoming release
2011-07-05 13:02:41 +00:00
Xawotihs c25dfe426f Fixed issue 677 2011-07-04 19:09:19 +00:00
wagic.the.homebrew 52b83a135c - Added TutorialMessage ability
-- Tutorial Messages are an ability like any other, except it can only be displayed once. Subsequent calls are ignored, the ability is removed from the game as soon as it is added
-- This allows to add event triggered messages ingame. Messages are either text, or images (I don't have an image sample, but rules/classic.txt has a few examples that might help)
-- only tested on Windows, although I made sure the PSP version compiles. Hopefully I also made the necessary for it to work in the touch version (touching the screen should be enough to close the tuto message)
-- Room for improvement: possibility to choose a title in text mode, possibility to have some messages depending on others (e.g.: don't show message X until message Y has been shown), improve some of the abilities and triggers to give more flexibility, add events outside of game, to allow tuto messages in deck creator, etc...
2011-07-03 08:47:51 +00:00
Xawotihs 7bb49068b1 Use Will's scrolling support to add next phase (scroll up) and interrupt (scroll down) in the duel state. 2011-06-26 20:51:45 +00:00
wrenczes@gmail.com a1fd7bd508 Added a simple hack so that '1 Player' will show up as the default selection for the Play menu instead of the last item in the list - in my case, the Test Suite. 2011-06-22 05:06:54 +00:00
wrenczes@gmail.com 741f662bb0 Tied in my recent Android flick gesture addition to a Scroll() function. GameState now has a virtual function OnScroll() call that, by default is a no-op; each game state can choose to override how to respond to flick gestures. I've added one such override in the Deck Editor so that a flick up/down acts like the psp button up/down for scrolling between color filters. 2011-06-15 09:52:11 +00:00
Xawotihs 4bf255596f Activated mouse tracking in option and award menus. Activated offset support in SimpleMenu, it should help for issue 674 2011-06-04 16:22:45 +00:00
Xawotihs 40208c4835 Fixed issue 674 for deck selection in menu by mouse/touch 2011-06-03 20:01:50 +00:00
wrenczes@gmail.com a4964f944c Fixed my centering code - I forgot that we always draw in terms of psp sizes, so when I'd toggle to doublesize / full screen, the centering code was way off for the menu as it was using screen resolution instead. 2011-06-03 02:29:06 +00:00
wrenczes@gmail.com bed971c84c Last of my warning cleanup - as of this revision, all warnings in the windows build are gone. I've turned on the 'treat warnings as errors' option in the mtg project to mirror our makefile behaviour on psp. 2011-06-03 01:07:48 +00:00
omegablast2002@yahoo.com cb9e5f2e95 as requested by doc, added a tag for lords to allow an over-ride for effect so theyre not removed from the game by GameObserver until the lords remove it themselves.
ie:
Card Name:
Quick Sliver
Mana Cost:
Converted Mana Cost:2
Types:Creature — Sliver
Card Text:Flash
Any player may cast Sliver cards as though they had flash.

without an over-ride testdestroy removes the observer before it can be any use to us.

i only enabled this for the lords/this'es....
2011-06-02 23:46:44 +00:00
wrenczes@gmail.com 945c2601d0 Fixed the SimpleMenu to recenter itself as its default behaviour during construction. (You can still override it to position it explicitly if needed.) This fixes the bad alignment of the menu when you'd select single player & the hermit mode was unlocked. 2011-06-02 18:27:00 +00:00
wrenczes@gmail.com 7c65191faa Fix the build - missed submitting a change that was a part of my warnings cleanup, was open in another changelist. 2011-06-02 17:11:10 +00:00
wrenczes@gmail.com 5b8ecd0cf7 More warning cleanup - converted certain class functions to return bool instead of int where appropriate. Also fixed the sdl update() tickCount assignment that I just broke in my last checkin. 2011-06-02 07:01:42 +00:00
wrenczes@gmail.com 90b1058ad5 More warning cleanup (type to type conversion warnings). 2011-06-02 06:14:28 +00:00
wrenczes@gmail.com a06558be55 Some warning cleanup involving (seemlingly unintended) bool to int conversions. It seems that the original design intent was to pass down IDs to the base class JGuiObject, but certain classes broke the pattern with their constructors.
(One could argue that this ID is completely meaningless and could be entirely ripped out, as the IDs obviously never made it to their intended target...)
2011-06-02 05:33:45 +00:00