Commit Graph

264 Commits

Author SHA1 Message Date
Anthony Calosa
5e46016c4d added new legend & pw rule, trigger & event
added new pw & legend rule (i just leave the old rules behind and
disabled it), added phasesin, faceup, copiedacard event, added facedup &
phasedin trigger.
2017-02-16 21:26:03 +08:00
Anthony Calosa
c70762f871 readded modified rule 2017-02-16 02:39:03 +08:00
Anthony Calosa
01fdcfdfec zpos and zone display
added zone position (adjust dynamically), also inverts the display of
the zone so we always get the top/recent one... the library zpos is
inverted so if we choose to target the top 5 zpos like
target(*[zpos>=5|mylibrary), it will do from top to bottom... this is
only for AI so we can add alternate code for them since they cant use
reveal atm, we can make them target within allowed range...
Also this commit disabled the  new legend and planeswalker rule since it
conflicts with reveal ability, unless I/We figure it out, I recommend to
use the old one...
2017-02-14 22:30:50 +08:00
Anthony Calosa
831c8f73b0 some bug fixes
fix where the copier is treated as the same copied card, also fixes the
display ability of momir (forced), disabled reveal for AI if aicode is
not found (should add alternate for ai).
2017-02-06 21:48:41 +08:00
Anthony Calosa
e2c1d62552 modified Momir 2017-02-05 22:14:20 +08:00
Anthony Calosa
8b9dfdf96d bug fix 2017-02-05 08:07:12 +08:00
Anthony Calosa
6354d8ccca revised pw rule
also fixed where planeswalker can use its ability after it was
transformed/flipped by activation ex. Garruk Relentless... You can’t
activate a loyalty ability of Garruk Relentless and later that turn
after he transforms activate a loyalty ability of Garruk, the
Veil-Cursed.
2017-02-02 11:58:51 +08:00
Anthony Calosa
c265ce8222 Bug Correction
PermanentAbility to ListMaintainerAbility in Legend Rule, it seems It's
finally fixed even with a lot of targetchooser and copy effects.
2017-02-02 09:58:38 +08:00
Anthony Calosa
80b6496780 bug fix 2017-02-01 22:37:00 +08:00
Anthony Calosa
711934a249 Crew Corrections 2017-02-01 18:40:09 +08:00
Anthony Calosa
7b0fdcd721 refactor Legendary Rule 2017-02-01 09:49:36 +08:00
Anthony Calosa
166526dbbe Fix Legend Rule
Should fix the the move to graveyard effect with targetchooser
ability...
2017-01-29 16:30:13 +08:00
Rolzad73
85f66a8fec X11 build fixups
- fixed -Werror=misleading-indentation warning
- fixed -Werror=nonnull-compare warning on xll and QT builds
- PNG_LIBPNG_VER backward compatibily changes
- giflib backward compatibily changes
- resolved some undefs for X11 build
- silenced some small compile warnings in JGE Makefile
- added -DTIXML_USE_STL to remaining build types (PSP had it added)
- fixed x11 Boost incompatibility issue part of #548
- reworked PrecompiledHeader.h platforms used
2017-01-28 04:19:46 -05:00
Anthony Calosa
de2d663968 unattach animated equipment
another bug found is when the equipment becomes a creature, its ability
is granted to itself...
2017-01-26 02:12:02 +08:00
Anthony Calosa
9bcc54c56c add "recent" & "raidcount"
the recent attribute is to parse new cards entered play, then turns
itself to 0 if some stuff happened since it's already in play...
2016-08-25 03:40:38 +08:00
Anthony Calosa
e9705b2cc5 fix crash temporary flashback
should fix snapcaster mages ability and the likes
2016-08-22 10:17:48 +08:00
Anthony Calosa
a63065b44f try to fix 2016-08-20 03:04:58 +08:00
Anthony Calosa
8530292fef Revert my Graphic changes
I think it's the one who cause those crashes
2016-08-13 16:45:46 +08:00
Anthony Calosa
14d8d65de0 asflash
spellmastery is for alternate cost, added asflash... so cards that find
cards with flash don't find asflash...
2016-08-10 07:31:15 +08:00
Anthony Calosa
8ba97b8a74 Fix attackcost & blockcost
thanks zeth
2016-08-04 09:50:09 +08:00
Anthony Calosa
c45b5751af cantattack
change some cards since -cantattack overrides cantattack. If there is an
effect that makes creatures can't attack, you can just activate the
ability to remove -cantattack...
2016-08-04 05:41:22 +08:00
zethfoxster
eea240d7f2 changing some of the logic to the previous fixes, we want to avoid using code that looks for specific card names.
currently we have kamiflip as the only defined flip type as it is treated differently from the others. 
but we have room for more if needed now
doublefaced=kamiflip
sets the flip type of a card to the kamiflip style cards. since this is defined on cardprimitive level now, we might be able to do something different from the flipping animation. who knows.

commented out the forcing token triggers, it bypass targetchooser check. still working on a fix for this coming soon.
2016-07-27 20:03:25 -04:00
Anthony Calosa
e855ca72aa Fix Mirror Gallery & enters "tapped" cards
If Mirror Gallery leaves play, you must check for legendary status.
Fix some cards that enters tapped.
2016-07-27 01:44:18 +08:00
Anthony Calosa
ae33977e10 Add Snapcaster Mage Ability
tempflashback - flashback using manacost
2016-07-26 09:56:13 +08:00
zethfoxster
3007ddc093 added oplifetotal...or readded, i swear this was already in a long time ago when I added lifetotal as a variable. either way. 2016-07-24 11:08:08 -04:00
zethfoxster
bc2d8dab31 corrected my logic for emerge, originally I thought the cost was the same as the original cost, while coding i noticed it can have a completely different cost than the real manacost.
moved the extra cost check for "offerings" to a location before canafford in alternative reacttoclick, the reason for this is that the 2 offering cost we have handle the can afford calls, and even cast the card in the dopay. not placing this before it causes the card to not react to click if there is a different manacost attached to the emerge/kill 
test codes below.
mana={g}{g}{g}
other={emerge}(r}{4} name(emerge)

mana={6}
other={k(giant|mybattlefield)}

fixed memleaks in killoffering code.

note to devs, remember to make diff costs a variable that you can safe_delete, it creates a manacost object that will become a leak otherwise.
do not use it directly as a function.
source->controller()->getManaPool()->canAfford(source->getManaCost()->Diff(target->getManaCost()))
this will leave a memleak every single time ai checks this cost, or a player accesses the cost even if you cant pay it.
2016-07-22 19:10:06 -04:00
zethfoxster
6316577ec7 taught AI basic attack and block cost.
added functionality to send specific abilities to AI "selectAbility" to have it find mana, targets, and use a selected ability at our command.
2016-07-18 22:03:16 -04:00
zethfoxster
a8cbdafe6e unused variables. 2016-07-09 13:12:58 -04:00
zethfoxster
2e92838364 fixed an issue with dredge, where dredge is offered even though theres only one dredger on cards that draw multiple. 2016-07-09 11:38:25 -04:00
Anthony Calosa
4da7f77089 Cleanup tabs 2016-07-07 13:25:36 +08:00
zethfoxster
8265253388 fixed a issue with dredge where it was entering the stack even tho dredging itself is a replacement effect. 2016-07-06 20:26:18 -04:00
zethfoxster
7b8b197a35 another fix 2016-07-06 19:08:41 -04:00
zethfoxster
867e1b8731 fixes 2016-07-06 18:24:45 -04: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
51d06d8234 removed alias for overload 2016-07-06 05:23:25 +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
2b8f1b350c added bonus events for eldrazi and werewolves 2016-07-04 11:18:07 -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
69d92bc0ea Unused Variable
MTGRules.cpp:1361:11: error: unused variable ‘player’
[-Werror=unused-variable]
2016-06-29 11:38:51 +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
149af25d22 fix unused variable error 2016-06-14 20:50:31 +08:00
Anthony Calosa
1f54c7933b Attack Cost Rule
Update your rules folder
2016-06-14 19:40:02 +08:00
Anthony Calosa
1faf2e0694 Cleanup 2016-06-06 17:01:21 +08:00
Anthony Calosa
873db7ef27 Revised Kicker 2016-06-06 11:16:32 +08:00
Anthony Calosa
fb132173bd Kicker
TODO: Auto kicker and Affinity in Kicker....
2016-06-05 20:34:39 +08:00
Anthony Calosa
fbfc712d4c Morph 2016-06-05 13:57:57 +08:00
Anthony Calosa
5196424fbe Overload and PayZero are affected by cost increaser 2016-06-05 13:15:30 +08:00