Commit Graph

1121 Commits

Author SHA1 Message Date
techdragon.nguyen@gmail.com
8468505f1e fixed deck name display for when "Random" player deck is chosen. 2012-02-20 07:32:14 +00:00
rodrigodemoura@gmail.com
45b4272c5e Include the Phyrexian mana display. Include more features in modrules.xml: Now is possible to change font color, Size. Include icon tag. Is possible select position to show the icon, size and where the image is stored
<item name="icon">
 <position x="0" y="25"/>
 <iconposition x="1" y="2"/> 
 <filename>menuicons.png</filename> 
 <sizeicon>5<sizeicon>
</item>
Issue: 663
2012-02-13 15:28:55 +00:00
Xawotihs@gmail.com
bd1afebbea Hid Subtypes behind MTGAllCards and added a mutex to be able to use both singleton from several threads. 2012-02-12 22:20:05 +00:00
Xawotihs@gmail.com
c38c52c6ad Refactored audio sample playback 2012-02-11 18:20:08 +00:00
techdragon.nguyen@gmail.com
85848cfe41 resolution to issue 794. Non-classic games crashed at the completion of the game. 2012-02-06 09:07:37 +00:00
techdragon.nguyen@gmail.com
5c3baedf83 moved Wagic Version macros into a new header file so that iOS can use it.
updated iOS port to use wagic versioning macros.
2012-02-05 11:16:43 +00:00
techdragon.nguyen@gmail.com
5c293e2fbb added new method to JSoundSystem to pause music. Previously, "pause" meant kill the music and "resume" effectively restarted the music. iOS will now pause and resume appropriately
modified pc and android impls to ensure new calls are made.  These still have the same effective outcome (kill and start) until the equivalent is coded on these platforms to pause and resume the music.  
fixed bug with iOS sound effects not playing.  Forgot to assign the key to the associated music sample
2012-02-05 08:21:06 +00:00
wagic.the.homebrew
b0532b8059 - Bump version number to 0.18
- Fix issue introduced in 0.17 with Immortal task
2012-02-04 14:28:07 +00:00
omegablast2002@yahoo.com
99ab44a20e added moverandom(tc) from(zone) to(zone) ability...example
moverandom(creature[green]) from(mygraveyard) to(opponentbattlefield)
example card

[card]
name=Tariel, Reckoner of Souls
auto={t}:moverandom(creature) from(opponentgraveyard) to(mybattlefield)
mana={4}{W}{B}{R}
abilities=Flying,vigilance
type=Legendary Creature
subtype=Angel
power=4
toughness=7
text=Flying, vigilance {T}: Choose a creature card at random from target opponent's graveyard. Put that card onto the battlefield under your control.
[/card]
2012-02-02 03:52:20 +00:00
techdragon.nguyen@gmail.com
228fe23e49 removed calls to ManaCost::init() as all but two are actually necessary.
moved init() from ManaCost to a private call
changed ManaPool method init() to Empty() to better represent what it does.  
renamed ManaCost::reinit to resetCosts() as reinit sounds like your are returning the ManaCost object back to initial state which is not what happens.  Only the cost related members are reset, the bool isMulti is left alone
2012-02-02 01:10:11 +00:00
omegablast2002@yahoo.com
0d223b5561 reworked some logic that was changed in last commit. 2012-02-01 12:44:11 +00:00
techdragon.nguyen@gmail.com
ac992675da This removes the compilation error introduced with r4237. I needed this in place to make an iOS build. 2012-02-01 04:17:30 +00:00
techdragon.nguyen@gmail.com
2f408664ad last fix for buttons only fixed the PC/SDL mouse impl. This fixes the iOS/Android platforms. iOS/Android platforms both issue a JGE_BTN_OK keypress on single tap in which the mouse version does not. that version issues the OK keypress in sync with the mouse click. 2012-02-01 00:38:02 +00:00
omegablast2002@yahoo.com
a248cb7423 added abilities=poisonshroud
"you can not get poison counters"
2012-01-31 19:41:43 +00:00
omegablast2002@yahoo.com
81c90f0440 added this( keyword variable{ word variable } ) support
auto=this(variable{lifetotal} <10) 1/1
auto=this(variable{opponentpoisoncount} >1) infect

basically allows you to compare against a word variable.
2012-01-31 19:17:51 +00:00
omegablast2002@yahoo.com
e6775c0c1a added playerpoisoncount and opponentpoisoncount word variables...this was the easiest way to add support for the remaining cards which cared about poison counters. 2012-01-31 18:18:56 +00:00
omegablast2002@yahoo.com
fbebcd681e added a new aihint #HINT:dontattackwith(targetchooser)
which tells the ai not to use the targetible cards as attackers, this can be card names, and CD modes.

modified the way ai handles multikicker. it will not be casting 1/1 joragas anymore :D

made WParsedInt ignore "+" signs....

added a new affinity ability...autohand=affinity(creature[vampire]|mygraveyard) ....
this is essentially affinity for creatures in your grave.

added supkeyword to clone clone addtype(zombie)....it adds the type listed to the cards types on clone...

reparse PT bonus on resolve.

reworked bushido, it should now work correctly...aside from that it now excepts word variables...fumiko is now bushido(type:creature[attacking]:battlefield/type:creature[attacking]:battlefield)

added a keyword to access acontrolsteal..the keyword is "steal"
auto=ueot steal target(creature) 

reworked persist to handle undying..added the new counter handling rules intruduced by wotc in ISD


added a vector cardsAbilities to mtgcardinstance...this keeps the abilities added to the game for a card to use stored where we can easly alter or remove them.

added an automatic increase to geteff return if the ability is a putinplay ability.

finished coding support for flip and double sided cards, though viewing the "other side" is still not possible yet.
the ability follows the mtg rules.
the ability syntax is flip(card name)...a card can flip into any other card by name...even flip into itself.

added a "canPay() call for Ninja cost...to prevent it from coming up in a menu unless you're in blockers....

added 3 new restriction types that work very similar to type(
thisturn(tc)~morethan~2
lastturn(tc)~lessthan~thisturn(tc)
compare(wordvarible)~equalto~compare(wordvarible)

these are pretty self explanitory.

moved "&&" ability parsing below "this(" allowing "this(" to grant abilities now which contain &&...enclave egologist bug is fixed by this.

fixed an issue with combatspirit link for some reason the way i was doing the bool was not always working.

took care of the todo for AProtectionFrom...you can now give a protection from(blah) in a instant or ueot ability.

added altho very limited right now a "targetedplayer" tc word. i hope to increase this with time.

as always my sidekick doc already has some cards coded for this and test will follow the addition of the cards.
2012-01-31 14:07:40 +00:00
Xawotihs@gmail.com
4762ffea87 - Fixed compilation warning in GameStateShop.cpp
- Added a call to input reset after each update in the Qt frontends to avoid strange auto-keypress
- Removed tutorial display in AI vs AI (test AI mode)
- Commit Qt project with latest buttons files
- Added a small isHuman method to the Player class
2012-01-30 21:16:33 +00:00
techdragon.nguyen@gmail.com
c42ba32ae7 added new buttons for shop for New Cards and displaying the card list. 2012-01-30 18:02:26 +00:00
techdragon.nguyen@gmail.com
b44f3088c2 refined button placement
added SDL_CONFIG to list of conditions in which ot enable touch buttons
2012-01-30 09:23:56 +00:00
techdragon.nguyen@gmail.com
969e6ac5e6 added more buttons to deck editor to cover all the functionality. Need to remove the PSP directions from the slide-in menus 2012-01-30 04:23:11 +00:00
techdragon.nguyen@gmail.com
05e3c350b3 had to undo my refactoring of the menuitem classes. for some reason it broke scrolling on the opponent ai selection screens. 2012-01-29 17:01:48 +00:00
techdragon.nguyen@gmail.com
9faf2ffc72 reverted changes to the Scroll/OnScroll method signatures. 2012-01-27 23:47:02 +00:00
Xawotihs@gmail.com
b9a52ab447 Fixed compilation of the Qt frontend with latest scroll changes
fixed Qt project compilation with Mingw on Windows
2012-01-26 23:17:40 +00:00
techdragon.nguyen@gmail.com
a2179017d4 Extended Scroll() and OnScroll() to also take in magnitude as one of its parameters. magnitude is currently used in the deck editor to figure out how many cards to rotate around per swipe as function of velocity and the number of cards displayed on the screen.
fixed a compiler warning in SimplePopup in the constructor declaration
===DECK Editor changes ===
Added two touch buttons , one for "Sell Card", the other to switch between Deck and Collection.
changed swipe Left/Right to rotate card collection; removing the previous action which was to swap between deck/collection viewing

Note: GameStateDeckViewer isn't a JGuiController so can't leverage off the mButtons vector.  Thus, the buttons have to be handled by this class separately. (setButtonState, userPressedButton)
2012-01-26 13:53:03 +00:00
techdragon.nguyen@gmail.com
a36d886dd5 Added first draft of an interactive button. Needs to handle addition of images a little better
refined detailed info window for stats display
removed PSP button for Touch interfaces (currently only iOS and Android) on deck selection screens
to not break the core engine and reduce some more complex code, I created a new vector in the JController object. mButtons.  This vector will contain all the valid buttons for a given screen.  The appropriate Add/Remove methods have been updated to account for this new vector.
2012-01-25 18:35:24 +00:00
techdragon.nguyen@gmail.com
519cd3bd69 refactored DeckMenuItem to be a derived class of SimpleMenuItem. Not sure why I had made them distinct.
TODO: review DeckMenu and SimpleMenu to see if it would be better to have them derive from a base class rather than be distinct.
2012-01-23 08:39:18 +00:00
Xawotihs
12a431ff8c - Merged QWidget and QML Qt frontends, just define QT_WIDGET to select the QWidget one
- Coded a resource package download GUI based on QWidget
- Removed compilation warning on unused variable
- Updated Maemo desktop file to start directly the binary
- Updated .pro file
- Updated version macros to be able to compose the resource package file
- Updated QML interface for Android
- Updated QML interface to not contain the name of the resource package
- Updated the file downloader class to be able to get the resource package hash from the google code server
- Updated the file downloaded class to verify the resource package hash from the remote server at each startup to be able to perform automatic update
- Defined several JGE operation as static to clean up the wagic wrapper
2012-01-15 18:50:38 +00:00
Xawotihs
a480cf2e66 Extracted Wagic versioning information so that they can be used outside of GameStateMenu.cpp 2012-01-14 12:18:16 +00:00
techdragon.nguyen@gmail.com
00fbbae668 reverted change for r4189, as it broke functionality in codebase 2012-01-13 08:34:53 +00:00
omegablast2002@yahoo.com
993612eee2 added hexproof abilities= word to point to opponentshroud, both words are now usable. 2012-01-12 14:52:00 +00:00
techdragon.nguyen@gmail.com
adc3e4b689 final change for 0.17 to sync up with other platforms. focused targeted touch of ui objects to deck menus. 2012-01-10 19:53:10 +00:00
techdragon.nguyen@gmail.com
e79597d82c corrected x offset of selectable area of the menu items. For Simple Menus, clicking on the row from that point to 200px is the selectable area. 2012-01-08 16:38:52 +00:00
techdragon.nguyen@gmail.com
440b3b00d9 applied logic used for deck selection to popup menus as well 2012-01-08 15:32:28 +00:00
techdragon.nguyen@gmail.com
1cef5d690b made DeckMenuItem a subclass of SimpleMenuItem
moved code to check on click position into base class from DeckMenuItem
TODO: apply same logic for standard menus
2012-01-08 14:55:22 +00:00
techdragon.nguyen@gmail.com
6d5342c02b fixed a memory leaks in app delegate
* adjusted the touch sensitivity of the iOS port for deck menu selection.  Decks were being selected even though the selection was touched.  It was highlighted but as soon as you let go it would instantly select (OK button) select the selected deck.  This isn't a problem on Android as the SDL already handles this as far as I can tell.  I limited this to only iOS so I don't accidentally mess up the other ports.
2012-01-06 19:13:43 +00:00
techdragon.nguyen@gmail.com
1bd8c860c5 preliminary native touch interface for interrupting spell. Touch the icons for each action 2012-01-05 12:05:17 +00:00
techdragon.nguyen@gmail.com
dfa007cecb implemented platform independant clickable OK button on gui combat window when selecting blocker order. removed iOS specific coding. 2011-12-31 08:21:00 +00:00
techdragon.nguyen@gmail.com
c88ed95c95 enabled touch code for handling choosign blockers on touch interface.
TODO:  Please have somebody test on non-Touch device.  I don't have one anymore.  If it breaks it let me know and I'll make it a compile time option.  Seems to work with 2 and 3 blockers.  I couldn't get the game to get 4 blockers on the screen, but I think it should work the same.  This should be cross platform and not iOS specific
2011-12-30 23:42:13 +00:00
omegablast2002@yahoo.com
be33659081 fix for cumulative upcost, extra cost were not being multiplied
[card]
name=Phyrexian Soulgorger
auto=cumulativeupcost[{S(creature|myBattlefield)}] sacrifice
text=Cumulative upkeep - Sacrifice a creature. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)
mana={3}
type=Snow Artifact Creature
subtype=Construct
power=8
toughness=8
[/card]
was only charging you 1 sacrifice per upkeep.

added thisTargetComparison, this(cantargetcard(targetchooser))...its a thisdescriptor that compares if the card can be targeted by a target chooser...
2011-12-29 19:55:45 +00:00
wagic.the.homebrew
506952e2da - made Filedescriptors pool a compile-time option. This should fix some issues found in previous revision 2011-12-29 13:15:44 +00:00
omegablast2002@yahoo.com
53b1c4a742 2 major bug fixes and 1 minor fix
first somehow accidentally line 3616 mtgability.cpp removefromgame was adding an observer instead of removing it, this explains "abilities sometimes acting strangely or not being removed"...I'm surprised it didn't create memleaks or extremely visible side-effects...
2nd fixed a bug where triggered abilities would share a menu with activated abilities of a card when ever you had enough mana floating to pay an activated ability before the trigger resolved.

adjust the way ai calculates if it should use cards like wrath of god, though it is still open to using it at a random chance, i noticed that the method we use might not be the best.
an ability with an eff of 1 for example actually has a 10% chance of being choosen....
lets say rng rolls 3402
when you % this it simply takes the 2 last numbers making this roll 2...meaning that unless we assign no "random chance to do blah" the actual chance of ai using a stupid ability is 10%...I'm leaving that logic how it is tho I "unfactored"(?) it to make it easier to track the numbers, also added a debug trace to help see how often we hit "lottery chance" ...
fixed a minor crash from multiability trying to fetch menutext when no abilities existed in the vector anymore.

this patch introduces a new subkeyword for "may " which is syntax pay(manacost)
auto=may pay({w}) untap
this is to allow the card group that was coded using the activated ability loophole i described at the start. it works the same way as it did with the loophole only it is actually something we want to happen instead of a flaw in the engine...you float the mana same as before and when the may line is triggered it will check if payment can be made with exist mana if so then it displays the menutext for the ability, if that ability is choosen it then charges you the mana directly before activation. 

this patch also include flip( ability, tho not intended originally for this version, I had previously had it finished and was polishing it right before I noticed the bugs above. since this keyword is not intended to add cards for this version, I wont go into massive details about it at this time.
2011-12-25 01:01:20 +00:00
jean.chalard
d93fdb2d4a Fix the Linux build. 2011-12-18 09:40:35 +00:00
techdragon.nguyen@gmail.com
dc7d52c48c added new signature for SendCommand in JGE that takes in a command string and a parameter
added native keyboard handling in iOS
TODO: add same feature for Android tablets/phones
2011-12-15 11:11:08 +00:00
wagic.the.homebrew
2e3331a0c0 - Speed improvements to the filesystem (partial fix for issue 767)
- minor speed improvement in the shop (removed a locked texture loading that wasn't necessary)
2011-12-13 15:14:47 +00:00
wagic.the.homebrew
c9fd53808f - fix compilation issue on psp
- attempt at reducing loading times on the PSP: I merged a few graphics files together, removed some unused calls from the initialization functions, and moved some other ones to have a more lazy approach. The PSP version remains fairly slow in some parts (especially loading, but also entering the shop, or starting a new game), so I will try to reduce file access as much as possible in the days to come. Not a release blocker IMO though, but I4d sure love if it were faster.
- uppercased "Track1.mp3" to be in line with the actual filename. Most likely this had been broken forever on case-sensitive OSes
- I removed costly calls from the textscroller. I believe it wasn't very useful in its previous state. Now it's only "advertising" for unlockable stuff, which I think is ok (and allows to refresh it every time the menu is loaded)
- As a counterpart, added a "% complete" progress bar in the menu, something I wanted to add a while ago.
2011-12-11 13:48:24 +00:00
techdragon.nguyen@gmail.com
fe78345ef7 first draft of ad code for iOS. Not adding admob/adwhirl/adSesnse libs to this commit. You will need to download them to get the port to build under XCode 2011-12-08 20:50:36 +00:00
wagic.the.homebrew
69a0323c86 - Added cache for the count of AI decks, to reduce file access especially on victory screen. This fixes some massive lags on the PSP when winning a game
- bumped version number to 0.17
- removed some dead code in utils.h
2011-12-07 14:34:59 +00:00
omegablast2002@yahoo.com
c5d0883136 fix @discarded. 2011-12-01 12:11:48 +00:00
Xawotihs
3514476812 - Created a GamePhase type to ease debug.
- Modified the testsuite and gameobserver to be able to replay all the testcases based on the actions logged during the first pass. This allows to test the action logging and replay used during undo. It's only activated in multithreaded mode and it does not work on Momir tests.
-  Modified choice logging and replay to use menuId instead of ability index, as, for some obscur reasons related to Lord, those ability indexes may change.
- Fixed bug in nextphase logging wrongly generating click actions
- Added a "stack" zone to the click ability logging to be able to replay properly interrupt
- Fixed a wonderful bug mixing card names with zone names in the actions execution engine
- Added a "combatok" action logging/execution
- Added a "clone" virtual method to MTGCardInstance and Token to be able to clone correctly the right object type. Used that in MTGGameZones::removeCard
2011-11-29 21:50:16 +00:00