Commit Graph

203 Commits

Author SHA1 Message Date
Vittorio Alfieri 2ca03bb1f0 Fixed Muxus, Goblin Grandee and fixed Liliana, the Last Hope, added conjure keyword for J21 set, added perpetual counters and abilities for J21 set, improved imprint keyword, improved moverandom keyword for J21 set. 2021-08-04 12:33:28 +02:00
Vittorio Alfieri 31ab9edc81 Added HTR18, HT19, AFR and AFC sets, added/fixed old primitives, improved Android dowloader, fixed it lang file, fixed IMA rarities, fixed order index of some old sets, added all features from D&D such as Dungeon Cards and Dice (d20,d10, adn so on). 2021-07-17 02:33:08 +02:00
Vittorio Alfieri 9df5bb29ab Added MH2 set, improved Android downloader, added/fixed primitives, improved coin flip event trigger, improved discarded attribute, improved castcard keyword (now it's possible to specify the x value in cost), improved add/remove/mod counter trigger, improved the "spent" and "converge" keyword for spell still in the stack. 2021-06-16 17:07:44 +02:00
Vittorio Alfieri 6fb3feef72 Added/Fixed primitives, improved the Double Face Modal cards management: now it's possibile to click on card to flip the side in odrer to read card infos such as name, manacost, text and types, improved the "moveto" keyword in order to allow the usage of the "temp" zone for removing unecessary cards from game (e.g. duplicated card generated from some dual face cards), added the option "nolegend" to the "copy" keyword in order to crerate copy of legendary cards that are not legendary (e.g. Echoing Equation), added the keywords "doublefacedeath" and "gaineddoublefacedeath" to send a card to temp zone after death (e.g. duplicated card generated from some dual face cards), added the keywords "lifefaker" to identify the cards wich modify the life increasement when a @lifeof triggers occours (e.g. Angel of Vitality). 2021-04-27 15:35:54 +02:00
Vittorio Alfieri 9da159a607 Added C21, STA and STX (still in progress) sets, improved Android downloader, added/fixed primitives, added a keyword to get if a card has "X" in its cost, fixed a crash while targeting a spell on stack, added a new option "nolegend" to clone keyword in order to create a token without legendary type and rule, improved "hascnt" keyword with "anycnt" option to count all counters on a card, added a new keyword "hasstorecard" to get if a card has a stored card or not(e.g. fizzlers), added a new keyword "pgmanainstantsorcery" to count the mana value of all instants and sorceries in player graveyard, added a new keyword "currentphase" to get the current game phase. 2021-04-20 23:34:30 +02:00
Vittorio Alfieri d3c0e397b6 Added/fixed primitives, fixed/improved several primitives with "reveal" ability, added a new keyword "findfirsttype" to allow AI to user a kind of "revealuntil" ability from its library, fixed a crash wthen temp zone has duplicated cards from other zones (such as library). 2021-02-12 11:57:27 +01:00
Vittorio Alfieri 1aed1c1517 Fixed and improved the Deck Importer (from MTGO) in Android application, fixed frozen and freeze untap bug, fixed/added primitives. 2020-12-21 22:39:18 +01:00
valfieri e67078355a Improved target chooser to allow a multiple selection for player, creature and planeswalkers, now it's possible to use target(player,creature,planeswalkers) as well as target(<variable>player,creature,planeswalkers) and so on. Added abilities for giving exiledeath and handdeath to instant and sorceries (the previous were not working fine), Added ability to identify the cards with Cycling ability as a target, Updated all primitives with cycling ability, fixed all primitives with choose any target ability, Added/fixed primitives from RIX set. 2020-12-18 19:04:51 +01:00
valfieri 0d2e4af2a3 Added new keyword to count creature of the same type with both unique and common names, added/fixed primitives form M19 set.
Added new keyword to count creature of the same type with both unique and common names, added/fixed primitives form M19 set.
Added new keyword to count creature of the same type with both unique and common names, added/fixed primitives form M19 set.
Added new keyword to count creature of the same type with both unique and common names, added/fixed primitives form M19 set.
Added new keyword to count creature of the same type with both unique and common names, added/fixed primitives form M19 set.
2020-12-16 18:05:29 +01:00
valfieri 3e7ef8c77c Added abilities for cards which have to return battlefield or hand instead of graveyard (e.g. just like exiledeath ability), improved fresh attribute management also for card moved in hand, library, commandzone and for instants and sorcery spells, added/fixed primitives. 2020-12-16 12:21:57 +01:00
valfieri 16e6df9503 Added CC1 set, added/fixed primitives related to commander abilities, fixed cost increase for Commanders who have been cast multiple times. 2020-12-09 15:23:15 +01:00
valfieri 7c696ac213 Improved Commander format card selection rule, added new keyword
"autocommandzone=" to trigger abilities from Command Zone (e.g. Commander Ninjutsu), added/fixed some primitives, added a new GUI Button to show Player's Sideboard.
2020-12-08 20:48:11 +01:00
valfieri d18232df10 Fixed Commander Format selection of identity color, added/fixed primitives related to commanders abilities. 2020-12-08 00:32:33 +01:00
valfieri d6a1a8eda8 Added/fixed some primitives, improved Deck Editor to allow user to choose commanders from collection and add them to their decks. Implemented command color identity rule and single card instance limitation for Commander Format game mode. 2020-12-07 19:25:06 +01:00
valfieri ced2c85076 Implemented Commander mode and rules, added Command Zone to game, added/fixed primitives, increased the major release version. 2020-12-06 20:11:51 +01:00
valfieri c4eb931192 Fixed primitives and planeswalkers, fixed a bug on counter comparison criteria when cards are changing zone (eg. @movedto(creature[counter{1/1}]|mygraveyard) from(mybattlefiled) now it's working fine). 2020-10-09 19:16:03 +02:00
valfieri a6a053e10e Improved the Modal Double Faced cards for Zendikar set, added primitives that deals x damage divided on any target, added/fixed planeswalkers and improved kicker cost event handling. 2020-10-08 19:18:52 +02:00
valfieri c4ba879382 Fixed primitives, fixed alias 1117 and fixed the bug on lastCardDrawn from library. 2020-09-21 17:56:20 +02:00
Anthony Calosa 6bd09e42e0 Add support for Amonkhet Mechanics
and fix some cards.
Added exerted trigger, event and add removemc keyword inside transforms
ability so we can soft code Embalm and Eternalize...
2017-08-03 09:49:37 +08:00
Anthony Calosa 44cb0d995e support some cards discarded by opponent 2017-03-16 10:58:27 +08:00
Anthony Calosa a2eda76a26 fix prefetch options 2017-03-14 17:06:14 +08:00
Anthony Calosa 5f2fbb370c fix 2017-03-11 07:57:54 +08:00
Anthony Calosa b01c1455f5 Provoke
also add aicode for Amplify cards
2017-03-09 18:37:55 +08:00
Anthony Calosa 030dca051a support for wish cards and deck sideboard 2017-03-07 23:42:34 +08:00
Anthony Calosa ba73da321b minor 2017-03-02 07:56:41 +08:00
Anthony Calosa 8ae3e1ea98 quick fix 2017-03-01 21:13:47 +08:00
Anthony Calosa fa5b075af5 update lords
lastcontroller override
2017-03-01 20:51:06 +08:00
Anthony Calosa d761bac85c revert pw attack rule
need to refactor this as this cause crashes on android when you cast a
planeswalker
2017-03-01 16:07:12 +08:00
Anthony Calosa 3bf1cca118 removed this 2017-03-01 14:15:57 +08:00
Anthony Calosa e47256eae7 update cant attack rule
If it says cant attack or cant attack You or PlanesWalker, creatures
cant attack a player or planeswalker, If it says cant attack You,
creatures cant attack a player only but can attack a PlanesWalker
2017-03-01 10:35:47 +08:00
Anthony Calosa 1c60ba6e7f crash fix
when you generate a castcard, then exit the game, an exception occurs to
SAFE_DELETE(cards[i]->previous) && SAFE_DELETE(cards[i]) in
mtggamezones.cpp line 548 and 549.
2017-02-20 22:06:56 +08:00
Anthony Calosa 1eae3a032f Fixed some cards
replaced @lifed with @lifeof, had to hardcode conduit of ruin...
2016-08-16 12:17:53 +08:00
Anthony Calosa 3b98da1d86 Fix Cloner ability 2016-07-31 18:46:07 +08:00
zethfoxster ca395492d5 added meld(cardname)
added meldfrom(cardname|cardname) helper class.

auto={0}:target(arbor colossus|mybattlefield) meld(Arc Runner)
auto=meldfrom(arbor elf|Arbor Colossus)
2016-07-21 20:46:53 -04:00
zethfoxster 69158d55c1 more fixes 2016-07-16 14:46:40 -04:00
zethfoxster fdde5b7fe9 ok round 3 2016-07-09 18:57:01 -04:00
zethfox 78e4407c71 Revert "edge case fix, the issue arises from castcard but I'm fixing it at a higher level since init to zone should always have a valid "player 1" in its first constructor."
This reverts commit d247c53136.
2016-07-09 18:21:52 -04:00
zethfoxster d247c53136 edge case fix, the issue arises from castcard but I'm fixing it at a higher level since init to zone should always have a valid "player 1" in its first constructor. 2016-07-09 17:55:08 -04:00
zethfoxster b5976035e3 actually i changed my mind, instead lets update affinity after events are processed, that should take into account cards untapping,moving, ect.... 2016-07-09 00:58:19 -04:00
zethfoxster 14f65c55b5 going to try only updating affinity() when cards move from anywhere to anywhere to help minimize the calls to this function. this atleast allows me to debug albeit slowly the follow issue ive been working to fix. not sure when this was introduced but it was not happening when i first coded this function. manacost->copy() did not slow the game to a crawl.
anyways, trinisphere and any card containing 
other={H(land[basic]|mybattlefield)}{1} name(Pay /1/ and Return a Basic Land to Hand)

cost such as this with a CD tc.
2016-07-09 00:48:08 -04:00
Anthony Calosa 847e9dffc2 revised 2016-07-08 22:57:47 +08:00
zethfoxster 61d22eb498 added a modifier for "tap" for cards that say "enters the battlefield tapped", they are supposed to be tapped when put in play, which mean they should not trigger @tapped(.
for cards with the line or options "do/pay MANA or this card enters the battlefield tapped"
simply change it to tap(noevent)
it will simulate the card being placed into play already tapped.
2016-07-07 19:02:41 -04:00
Anthony Calosa 4da7f77089 Cleanup tabs 2016-07-07 13:25:36 +08:00
zethfoxster 066c40d9c1 close library, exile, or graveyard after we "move" cards from it. 2016-07-06 22:04:59 -04:00
Anthony Calosa 935849142c replaced alias with shackler 2016-07-06 06:37:27 +08:00
Anthony Calosa 547a9fcc17 Add Support for Vedlaken Shackles and the likes
the alias 50120 is there to prevent untap  during untap phase and the
canuntap restriction will trigger if it's possible to untap ie tha card
doesn't have doesnotuntap,, or frozen or is tapped.
2016-06-30 16:18:39 +08:00
Anthony Calosa e6aafbc8a6 lastController defined when creating copies of itself 2016-06-30 14:06:21 +08:00
zethfoxster 6ee00c138c Pretty huge patch here(sorry old habits never die :( )
lots of changes, many bug fixes,
first
added auto=count(targetchooser)
and countedamount wparsed int
they work together for cards where it is difficult to get working without knowing in advance how many we had ie: exile blah creatures, for each creature you exiled do effect.
auto=count(creature|mybattlefield)
auto=moveto(exile)
auto=draw:countedamount
it takes into account token creatures, which our old methods did not.

second, added "freeze" which is a "frozen" that automatically taps your target for you, for use when nesting or whenever needed where it was difficult to nest the ability with tap included.

added devotion for "iroas"

added reveal:x and scry x
reveal contains optionone/optiononeend ; optiontwo/optiontwoend ; repeat; afterrevealed/afterrevealed end.

this ability has heavy use of targetListIsSet(<amount>) and upto:amount, you MUST be certain that all cards being revealed have an action that removes them from reveal either in the first, second, or 3rd ability.
there are over 300 examples in the new card code, the ability is VERY easy to understand.

scry contains automatic put on top, put on bottom, then scrycore/scrycoreend which is an ability to fire.
it also contains keywords, dontshow which is nested in scrycore, scry reveals, puts on top or bottom, then reveal AGAIN, and does an effect, dontshow eliminates the 2nd revealing.
is also contains "delayed" keyword, which delays the ability until AFTER the core fires.

added bestow. update rules mtg.txt!!!!
examples are in primitives, every bestow card was supported.

added a new lord based on varibles and restrictions
while(restriction{morbid})
while(varible:blah)
this simplifies and expands on this(, allowing you to even use while(cantarget together and check if a card is targetable by the variable. examples are in primitives

added token(by card name)
auto=token(Eldrazi Scion) 
will search primitives and card dats for this card and give it to you as a token.
valid card dat info is still required.

added variable delirium
added restriction madnessplayed to allow checking if the card was played with madness.

added restriction "geared" for checking if a card has equipment on it.

added abilities words
skulk

menace <--cant be blocked except by 2 or more, if you dont block it with 2 or more we automatically unassign the single blocker and the creature is considered not blocked.

nosolo <--cant attack alone

mustblock <---if you dont assign as a blocker, we assign automatically the first thing it can block legally.

changed iscolorless back to "colorless"

enjoy, cards coming soon, theyre coded but im debating on not alpha sorting, cards being added this patch 965 uniques.

there is a section of the commit which was just VS2016 normalizing line ends, sorry if it makes it a cluster mess.
2016-06-28 18:40:55 -04:00
Anthony Calosa 0f74558892 Refactor & Fix Devotion
Fix Devotion Count example you have Mogis, God of Slaughter(2 B R),
Ashenmoor  Liege(1 B/R B/R B/R), and Rakdos Cackler (B/R) - will be 6
Devotion to Red and Black, since you count the symbol, B/R (hybrid mana)
should return as 1.
2016-06-11 20:39:56 +08:00
Anthony Calosa 873db7ef27 Revised Kicker 2016-06-06 11:16:32 +08:00