Commit Graph

223 Commits

Author SHA1 Message Date
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
Anthony Calosa
2d763d106d try to fix failed logic here 2016-07-12 02:27:06 +08:00
Anthony Calosa
69db7f7384 Add support for reducing Hybrid cost
it doesn't remove the hybrid icons but it reduces the cost.
2016-07-11 07:55:12 +08:00
zethfoxster
ee91e0698d corrected some logic with computenewcost.
there is a bug im working on with newaffinity and cards that contain targetchoosers with CD tcs. 

experimental change also added with lords. im making the abilities grants by lord forcedalive until the lord is removed from game.
some instances of forcedalive in master primitives did not contain abilities which resolved, meaning they would contenue even though the source had left play.
2016-07-09 00:11:21 -04:00
Anthony Calosa
3aa64697d2 "previousbattlefield" for mover 2016-07-08 17:39: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
a500920bb2 Merge pull request #11 from WagicProject/master
got it
2016-07-06 17:57:38 -04:00
zethfoxster
861366dd71 Fixed the memleaks caused by computeNewCost, moved them to gameobserver where affinity takes place, removed repeative code that was in game observer, moved the game observer components into computenewcost, removed the calls for "new mana" in all alternative play type that were added with this function. 2016-07-06 00:02:15 -04:00
Anthony Calosa
1d80d97d22 Shackled highlight border 2016-07-06 07:55:10 +08:00
zethfoxster
c018e3dcc2 fixed a ton of memleaks, narrowed down the memleaks to just the computeNewCost function.
still working on a fix for this.
2016-07-04 15:13:35 -04:00
zethfoxster
2489be93a3 added setting the value of X as you cast a spell with X.
this does not cover abilities yet.
2016-07-02 13:38:07 -04:00
zethfoxster
f76c28fa64 convoke
other={convoke} name(Convoke)
delve
other={delve}
they might be able to be added directly to the real manacost.

added an ability that grants an ability while the source remains tapped
grant ability grantend...

added dethrone
abilities=dethrone

added support of multitargeting to extra cost, it acts the same as normal multitargeting, repeats dopay() the effects for each.
2016-07-01 21:29:51 -04:00
Anthony Calosa
140ee7b183 Hide Highlight Border
When revealing cards, Hide Highlight Border
2016-06-29 08:59:58 +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
b38275123a Block Cost Rule
Update rules folder
2016-06-15 22:26:55 +08:00
Anthony Calosa
1f54c7933b Attack Cost Rule
Update your rules folder
2016-06-14 19:40:02 +08:00
Anthony Calosa
a74e543429 Fix leak 2016-06-10 13:25:24 +08:00
Anthony Calosa
40bb9e2c37 Combat Toughness
Assign combat damage equal to its tougness...
Doran, the Siege Tower
2016-06-10 07:05:29 +08:00
Anthony Calosa
3ee341cc4e Clone
Fix for issue #448
2016-06-09 20:06:39 +08:00
Anthony Calosa
06fdf3f0a5 Imprint
todo others...
2016-06-09 15:35:59 +08:00
Anthony Calosa
7ae8434ba3 Correction 2016-06-05 20:32:33 +08:00
Anthony Calosa
2ae0a651b8 Cloner/Copier produces same tokens as the copied cards 2016-06-05 17:58:49 +08:00
Anthony Calosa
52de1e7b02 Trinisphere
TODO: Morph and Kicker... Morph can be done but how to implement the
increased total cost with kicker? multi kicker? manual kicker??? Count
the mana pool if you can pay the cost+kicker if less than 3 increase
it???
2016-06-05 12:39:11 +08:00
Anthony Calosa
87515de57f Affinity affects other costs
Affinity should affect other costs such as flashback, buyback,  to cast
since its also a cost reducer...
2016-06-04 21:50:49 +08:00
Anthony Calosa
ce8e117b0b Fix Cost Increaser, Cost Reducer
Should fix most of them.  TODO: Trinisphere and Morph...
2016-06-03 22:32:10 +08:00
Anthony Calosa
f4c17aaf45 Cascade 2016-06-02 20:39:21 +08:00
Anthony Calosa
18430dca25 Fix summoning sickness
Cards like control magic (using alias=1194) always resets the summoning sickness, commenting this solves the problem...
2016-05-28 13:47:03 +08:00
Anthony Calosa
cd1b629191 Fix Segmentation Fault & Formatting 2015-11-10 11:58:36 +08:00
Anthony Calosa
1c8852a7a2 Manacost Changes
todo: kicker (other possible additional costs?) and change rule keyword
to payzerorule...
2015-11-05 23:25:39 +08:00
Anthony Calosa
60ba4e3eeb altercost should affect retrace, flashback, buyback costs 2015-11-04 06:41:59 +08:00
Anthony Calosa
c580d89c94 Altercost, Exile Zone & Handsize Modifier 2015-10-31 10:59:37 +08:00
Anthony Calosa
8793feb9ba Altercost
Altercost alter cards to be cast...
Removed Trinisphere temporarily...
2015-10-30 07:11:16 +08:00
Anthony Calosa
f90775153c Revert "TrcardDrawn, TrDamaged, TrLifeGained"
This reverts commit c7535e38dc.
2015-10-19 10:19:14 +08:00
Anthony Calosa
c7535e38dc TrcardDrawn, TrDamaged, TrLifeGained
Added trigger restriction for "@trigger(player)
restriction{opponenttrigger/controllertrigger}"

Restriction for:
@drawn
@damaged(combat and noncombat)
@lifed/lifeloss

Why?

When using @drawn trigger like Underworld Dreams
auto=@drawn(opponent):life:-1 opponent

If you take control of Underworld Dreams from an opponent, the
targetchooser for "opponent" is not updated and you are still the
opponent of Underworld Dreams even you take control of it(It is right if
you are the chosen opponent from cards like Black Vise, The Rack, etc...
The chosen opponent never changes. But cards that don't define a chosen
player an "opponent" like Underworld Dreams when an exchanged control
happens, the opponent of the card is the opponent of the one who
controls the card). :P

The new correct code for Underworld Dreams:
auto=@drawn(player) restriction{opponenttrigger}:life:-1 opponent
2015-10-18 22:38:41 +08:00
Anthony Calosa
3ca8aefad7 fix bug where walls that can attack activated vs moat in play 2015-10-07 20:59:17 +08:00
Anthony Calosa
664589c642 Visual Targeting Indicator, Borders 2015-10-05 22:03:30 +08:00
Anthony Calosa
ddee2c08e2 added stack check, modified life check
if activating ability, playing a land or casting sorcery spell at
sorcery level(timing restriction), if the stack is not empty, don't
allow it. Modified the life state check, if any of the players would
lose the game, allow the gamestateeffects to check... added
reduceto:value for ali from cairo...
2015-10-01 22:25:26 +08:00
Anthony Calosa
e1c02c8bf5 produceextra, lki(last known information) for power, toughness and basic abilities 2015-09-30 23:45:54 +08:00
Anthony Calosa
0bab560e89 Fix Cloner and Copier abilities 2015-09-29 10:42:29 +08:00
Anthony Calosa
021343ca02 fix for recover cards, preliminary support for madness 2015-09-28 21:27:27 +08:00
Anthony Calosa
7db5345f9a attempt to fix "notatarget"
notatarget must be allowed to target untargettable cards.
2015-09-23 12:14:47 +08:00
Anthony Calosa
0e90426cff Support for Silumgar Assassin, Minor PT color and Token, Clone Indicators
When a creature is damaged and has critical life, PT turns to
red(critical life is 2 and below), if a card has a powered down status
like from -1/-1 counter, the PT turns to thistle, if powered up above 4,
the PT turns into yellow, default is white. legendary eldrazi pt is
violet. Token Indicator is T, and C for cards with copy abilities(so we
can differentiate them from originals), TC for both token and copy cat
cards.
2015-09-20 13:19:03 +08:00
Anthony Calosa
c372ffa111 Switching PT, Token Indicator
Added Switching PT like Layer 7e, Token Indicator for cloned Cards
2015-09-19 23:25:33 +08:00
Anthony Calosa
6cd0474eca Bug Fix on Cloning Tokens 2015-09-18 19:56:02 +08:00
Anthony Calosa
478dea6af4 Tidy up a little... 2015-09-17 21:30:55 +08:00
Anthony Calosa
db649ddc96 Added Update on CDA
This controls whether to update Power and Toughness if we are setting
base PT or not. If we are setting base PT update the CDA but it will not
be applied since we have an effect that sets PT to a default base. If
there are no effect that sets base PT, apply it on CDA using
current/updated PT. The buffs are not affected. Yeah...
2015-09-16 09:34:32 +08:00
Anthony Calosa
6aab17d0b3 CDA complete
This fixes the bug I introduced lst time. The damage was not taking into
account, but this time the damage reflects...
TODO/TOFOLLOW: update test and update all cards that uses CDA :)
2015-09-16 06:42:02 +08:00
Anthony Calosa
72aaa18a35 CDA
CDA works by using "cdaactive" keyword on PT changes. Instead of
granting bonus, we modify the orig power and toughness since they are
dynamic PT. cdaactive are for cards like maro, tarmogoyf, etc. To
Follow/To Do: Additional Tests and other bug fix
2015-09-15 06:35:07 +08:00