Hanmac
5d55a66a6c
CardFactoryUtil & Card: make etbCounter abilities different. they do not add a keyword anymore for the ability to remove it
...
the Replacement Effect is now Secondary and Card itself does do the Description of the Keywords
2017-01-31 05:44:43 +00:00
Agetian
c12d530b65
- Committed a previously missing predicate.
2017-01-30 13:37:11 +00:00
Agetian
40b05f7ad4
- NPE prevention in SpellAbilityRestriction (prevents Jhoira of the Ghitu Avatar crashing)
2017-01-30 09:11:29 +00:00
Agetian
4803c757ee
[maven-release-plugin] prepare for next development iteration
2017-01-29 19:47:52 +00:00
Agetian
63809ef5ec
[maven-release-plugin] prepare release forge-1.5.59
2017-01-29 19:47:46 +00:00
Hanmac
9847da099a
Champion of Lambholt: make it working as it should.
...
Description bit ugly but can't be helped for now.
2017-01-29 18:58:55 +00:00
Hanmac
e630fafb22
CountersPutOrRemoveEffect: refactor to use better methods
...
CountersPutOrRemoveAI: use better logic to check when its good to remove a counter and when not
PlayerController: add chooseBinary with Params, use it for AddOrRemove. no need for chooseAndRemoveOrPutCounter
2017-01-29 14:44:43 +00:00
Agetian
9470f60554
- One more minor CardFactoryUtil mistype fix.
2017-01-29 12:54:45 +00:00
Agetian
5a8d2811c3
- A little correction in CardFactoryUtil.
2017-01-29 10:09:35 +00:00
Agetian
a40b5966f5
- Fixed a NPE in TriggerCrewed.
2017-01-29 04:48:21 +00:00
Agetian
a0ba7c2c31
- Crewing a vehicle should keep the vehicle's supertypes in order to obey Legendary restrictions.
2017-01-29 04:35:56 +00:00
Hanmac
a6aa647ef0
PlayerController: remove old chooseCounterType in use of new one
2017-01-28 15:23:43 +00:00
Hanmac
4b06eaf490
CountersRemove Effect and AI: update to new scripting
...
make the AI use of RemoveCounter abilities
2017-01-28 14:43:06 +00:00
Agetian
ae4e7c252a
- More precise ChangeTargetsEffect replacement deduction for the purpose of DividedAsYouChoose
2017-01-28 14:11:22 +00:00
Hanmac
7bc472b4c3
CardPredicates: add hasLessCounter for x > 0 && x <= n
2017-01-28 14:08:39 +00:00
Agetian
465831930d
- Reverting 33452, looks like it's impossible to retarget from the same SA to Spellskite twice (since the number of targets shouldn't change).
2017-01-28 11:02:40 +00:00
Agetian
677fadaa3a
- More advanced Spellskite AI logic allowing the AI to retarget spells with multiple targets.
...
- Improved retargeting spells with DividedOnAllocation (may still be imprecise in certain corner cases and for certain AF ChangeTargets variants, consider improving).
2017-01-28 08:56:21 +00:00
Agetian
7226ab7b3d
- Attempting to fix PlayEffect nagging the player to pick a card to play even if he refuses an optional effect once (e.g. AER Expertises).
...
- Maybe there's a better way to write the condition, please take a look when possible (note that Chandra, Pyromaster is a good test for something that needs to work well with the change in mind).
2017-01-26 14:43:11 +00:00
Agetian
63134e06c1
- Combine CostPayLife costs (e.g. prevents Cumulative Upkeep partial payment shenanigans)
2017-01-26 07:12:53 +00:00
Agetian
c3c4d0f098
- Better fix for the morphDown ability.
2017-01-25 15:52:27 +00:00
Agetian
7352b7aec0
- Improved AI for Bomat Courier (this logic can also be used for other potential cards that require you to discard your hand and that then refill your hand from exile; may be expanded to other zones too if necessary).
2017-01-23 16:34:33 +00:00
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