Commit Graph

2119 Commits

Author SHA1 Message Date
pfps
8b4bfbaae4 Show static abilities for instants and sorceries that are NOT secondary instead of those that are 2017-01-23 16:01:29 +00:00
Agetian
5c6a184720 - Morph ability should not be playable without paying its mana cost. Is there a better way of detecting "without paying its mana cost" except judging by description? 2017-01-23 14:41:57 +00:00
Agetian
e5acf1fa15 - Implemented some rudimentary mana ritual AI.
- Marked Dark Ritual as AI-playable. Other similar cards can probably now also use AI ManaRitual for this purpose.
2017-01-23 11:41:51 +00:00
Agetian
80281cd576 - Partially reverting 33309 (breaks trigger-related stuff). 2017-01-22 17:03:19 +00:00
Hanmac
1218fd3619 CardFactory: make Planeswalker use of ReplaceEffect for damage and fixed missing Reference 2017-01-22 14:39:38 +00:00
Hanmac
b62dad0793 PlayEffect: remove isEncoded because its not needed anymore 2017-01-22 10:51:36 +00:00
Hanmac
8a59cf3b33 EncodeEffect: don't activate if host is a Token (copy of spell) 2017-01-22 10:08:28 +00:00
Agetian
0ef430763b - Fixed Spellskite crashing upon trying to retarget a SA with DividedAsYouChoose. 2017-01-22 09:41:40 +00:00
Agetian
13793ecf6f - Fixed logic in CostPayEnergy (fixes e.g. Confiscation Coup). 2017-01-22 04:23:44 +00:00
Agetian
13c92798d8 - Fixed the name of the activating player not appearing in the AF Cipher description.
- Still need to somehow fix the fact that "...<player> chooses the card to encode" part appears in the stack description of the copied spell (it shouldn't).
2017-01-21 19:37:26 +00:00
Agetian
9b25ce3cc6 - Fixed logic in CombatUtil#canBlock 2017-01-21 17:53:21 +00:00
Hanmac
ca45bf3da5 AbilityUtils: make calculateAmount with Triggered use getDefinedCards which does handle Trigger before
CardUtil: need to set CopiedPermanent for LKICopy
Scrap Trawler: use TriggeredCardLKICopy which might be more correct
2017-01-21 14:52:05 +00:00
Agetian
7beb11ad09 - Committing the previously missing PlayerPredicates update. 2017-01-21 14:41:08 +00:00
Agetian
68641a0cfe - Implemented basic "spell magnet" AI (currently used by Spellskite).
- Made the AI able to pay mana costs consisting of only phyrexian mana symbols in absence of relevant colored mana sources (e.g. Mutagenic Growth, Spellskite activated ability).
- Fixed the AI killing itself when paying phyrexian mana while being at 2 life (we might want to consider actually implementing a certain "safe limit" above 2 life, maybe 4 or 5 life, at least outside the range of a typical burn spell).
2017-01-21 14:14:16 +00:00
Hanmac
2f3d1026bc CardPredicates: add greaterCMC and lessCMC which does respect SplitCards 2017-01-21 09:28:18 +00:00
pfps
ab867a40ee Better prompt messages for confirming optional triggers 2017-01-20 20:19:31 +00:00
Agetian
f8804af49d - A temporary way to display the ordering of blockers for cards in the game log (best done via a combat panel update, but I wasn't very successful with that). 2017-01-20 18:15:49 +00:00
Agetian
6e706f3662 - A little clarification. 2017-01-19 18:45:26 +00:00
Agetian
5ac4d66d27 - I believe this is how ETB replacement effects not appearing on returned face-down cards in exile *should* be fixed... Please check. 2017-01-19 18:37:13 +00:00
Agetian
83a200ef69 - A slightly more generic solution for the Necropotence+The Rack problem, seems like the culprit is the "card that was exiled face down returning to hand" scenario does not reset the ETB replacement effects for some reason. Advice and better solution still welcome. 2017-01-19 18:15:27 +00:00
Agetian
8260c611a8 - Extra line removed. 2017-01-19 16:44:42 +00:00
Agetian
4f10d64b82 - FIXME: There is a strange bug with ETB replacement effects not being recreated under certain specific circumstances, for example, when an exiled-face-down card is returned to hand via AF ChangeZone: e.g. The Rack obtained via Necropotence does not work because its ETB effect ends up somehow being not set up correctly.
- For now, introduced a local change specific to Necropotence, but I think this is indicative of a bigger issue in the underlying code. If anyone knows why this is happening and where this is best fixed, please assist.
2017-01-19 16:44:01 +00:00
Hanmac
7c29bcf5b9 CombatUtil: updated CantBeBlockedBy CantBlock to work with multiple instances
turn Dragon Hunter Effect into a keyword like thing to work better with Text Change
2017-01-19 06:09:51 +00:00
Agetian
50e17d0080 - Until the deprecated Player#getOpponent() method can be removed from code, modify it such that instead of always returning the first (usually human) player, it returns the opponent with the lowest life count instead, which is a little more multiplayer-friendly. 2017-01-19 03:31:17 +00:00
pfps
43b99d130a Drag the current spellability closer to the GUI so that it can be (eventually) displayed 2017-01-18 16:37:41 +00:00
Agetian
c46e0e2eb5 - Formatting fix. 2017-01-18 14:24:59 +00:00
Agetian
c1d5e42aa2 - Formatting fix. 2017-01-18 14:06:14 +00:00
Hanmac
4559dd47e0 CountersPutEffect: existingCounter only for the ones that can be recived. Extend params for AI 2017-01-18 04:37:57 +00:00
Agetian
9050cea72e - Made Greenbelt Rampager energy cost mandatory.
- TODO: implement this for other costs that may require it + teach the AI to always respect the Mandatory parameter in costs (currently it'll observe it with Energy costs because it defaults to paying the amount if prompted to, but it may disobey this restriction in other circumstances and for other costs; not sure where to put the relevant checks in the AI code though).
2017-01-17 14:49:50 +00:00
Sol
24e913023c - EffectEffect doesn't need useless override that is basically the same as it's inheriting (except worse) 2017-01-16 20:48:44 +00:00
Agetian
0fc3d3c01f - Fixed the logic in how some parameters are checked in Player.java.
- Added Hope of Ghirapur (AER).
2017-01-16 16:08:53 +00:00
Sol
181d477397 Deprecate Player.getOpponent() so we can eventually remove this function since the AI shouldn't use it 2017-01-15 03:59:35 +00:00
Agetian
27ad23104b - Named the parameter CheckSelfLKIZone to be more self-explanatory. 2017-01-14 08:43:36 +00:00
Agetian
94b409aaf0 - Changed LKI zone check on a replacement effect into an optional parameter CheckLKIZone$ True. This can be used selectively on cards where not getting a replacement effect (e.g. on mass removal) can be an issue. This approach has less potential to break other things than when applied en masse.
- Added CheckLKIZone$ True to Kalitas, Traitor of Ghet.
2017-01-14 08:39:28 +00:00
Sol
293c71e77d - Fix each existing counter using wrong object comparison 2017-01-14 03:43:40 +00:00
Krazy
26eec4cf8b [maven-release-plugin] prepare for next development iteration 2017-01-14 02:08:47 +00:00
Krazy
5196c1bf62 [maven-release-plugin] prepare release forge-1.5.58 2017-01-14 02:08:36 +00:00
Agetian
4c2eb86a0f - A little tweak to the previous commit. 2017-01-13 17:38:04 +00:00
Agetian
50c7d5b413 - Addition to the previous commit: only use LKI in ReplaceMoved if replacing a card movement upon removal (Kalitas, Traitor of Ghet + Wrath of God), otherwise use current information, e.g. for ETB replacement effects (e.g. Essence of the Wild copy). Still needs overhaul to avoid exclusions. 2017-01-13 17:31:24 +00:00
Agetian
fe64e7b451 - Fixed Essence of the Wild still making the card enter the battlefield as a copy of itself even if it's destroyed in response to a creature spell going on stack.
- This is related to the way ReplaceMoved effects are handled, currently it's a hacky solution that tries to get the best of both worlds (e.g. effects like Kalitas + Wrath of God to function correctly *and* ETB replacement effects like Essence of the Wild to function correctly). Most likely this needs some (serious) rework to get it working correctly in all cases without the need for special exclusions.
- Updated CHANGES.txt known issues accordingly.
2017-01-13 17:11:14 +00:00
Agetian
ec68b59e24 - Log formatting fix in LifeGainEffect. 2017-01-13 09:05:09 +00:00
Hanmac
3ff06ee567 CounterPutEffect and CounterPutAi: refactor it to make the AI better use of chooseCounterType 2017-01-12 19:29:32 +00:00
Hanmac
29646ca05f PlayerPredicates: add counter Predicates from CardPredicates, probably might do a base class for that 2017-01-12 19:22:13 +00:00
Agetian
6f9b62219e - Some refactoring in AbilityUtils/SpellAbility. 2017-01-12 04:48:22 +00:00
Agetian
07f5172109 - Fixed TriggerRememberAmount not finding the correct trigger ability to get the count from (e.g. Mana Drain, Scattering Stroke). 2017-01-11 19:43:03 +00:00
Agetian
ea4057a08c - Added a way to count the number of coin flips in AF FlipACoin without the need for recursive counting script (which no longer works in the current engine).
- Fixed Crazed Firecat.
2017-01-11 15:25:37 +00:00
Agetian
f14de08c20 - Prevent Crew from taking negative power of creatures on the battlefield into consideration when determining the total amount of power available on the battlefield (instead treating them as 0 now). 2017-01-11 14:35:33 +00:00
Agetian
e86a709d72 - A more appropriate fix for Quicksmith Rebel / Quicksmith Spy. 2017-01-11 14:08:32 +00:00
Agetian
95c68bcc81 - Changed the implementation of TargetChoices comparison to an .equals() method override (seems cleaner) 2017-01-11 07:41:22 +00:00
Hanmac
877b987201 fixed max 2017-01-11 07:24:33 +00:00