Commit Graph

1772 Commits

Author SHA1 Message Date
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
excessum
f27ffb7eca - Implemented AI for Triskelion 2017-01-28 09:47:17 +00:00
excessum
226fc544de - Fixed bug in predictThreatenedObjects() with null as second argument 2017-01-28 09:06:41 +00:00
Agetian
5f4b6f73f9 - Imports cleanup. 2017-01-28 08:57:19 +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
6c947401c3 - Fixing logic for LevelUp CountersPutAi. 2017-01-27 19:37:17 +00:00
Agetian
edb30ef749 - DestroyAllAi minor logic correction. 2017-01-27 17:48:39 +00:00
Agetian
f305ec2d87 - Added AI logic for Berserk.
- Some minor cleanup.
2017-01-27 15:38:40 +00:00
Agetian
f54198d97e - Fixed the AI crashing the game when trying to play Profaner of the Dead (which can happen, for instance, when exiling one from opponent's library and playing it without paying mana cost). 2017-01-27 14:29:27 +00:00
Agetian
6cc58919f3 - Imports cleanup. 2017-01-27 11:21:48 +00:00
Agetian
5382f4e1b0 - More precise mana cost analysis for the purpose of Mana Ritual and Nykthos AI (should lead to fewer wasted activations). 2017-01-27 11:21:09 +00:00
Agetian
dc01a30136 - More advanced Life Drain AI, now works with Soul Burn too, and also works correctly when the AI has other mana sources that do not provide black mana on the battlefield. 2017-01-27 05:58:44 +00:00
Agetian
cdbb6b9e6f - Some more tweaks to Life Drain AI. 2017-01-27 04:38:56 +00:00
Agetian
8683a85393 - A little improvement for Drain Life AI. 2017-01-26 19:57:25 +00:00
Agetian
334e315e3a - Cleanup. 2017-01-26 19:44:26 +00:00
Agetian
32ff2b77e7 - Drain Life AI will target opponent if it can do lethal. 2017-01-26 19:39:58 +00:00
Agetian
3227c9556f - Better Drain Life AI that can target both creatures and opponents. 2017-01-26 19:37:44 +00:00
Agetian
ce4b1062a7 - Imports cleanup. 2017-01-26 19:21:34 +00:00
Agetian
5247793a68 - Basic AI for Drain Life (will only go for opponent's face for 3+ damage for now, to be improved later). Soul Burn currently doesn't work with this logic due to complex xColorManaPaid which I'm not sure how to set properly for the AI. 2017-01-26 19:20:37 +00:00
Agetian
2db703109d - Do not waste all mana on animating a single manland when interrupting a sac effect. 2017-01-26 17:43:14 +00:00
Agetian
b190a58775 - Renamed the AI recursion prevention parameter to make more sense. 2017-01-26 12:17:11 +00:00
Agetian
d109a95541 - Fixed the AI crashing on trying to evaluate human-activated manlands for isAnimatedThisTurn 2017-01-26 11:54:14 +00:00
Agetian
15e0722948 - Minor tweak to DestroyAllAi. 2017-01-26 11:47:42 +00:00
Agetian
a729d44970 - Tweaked DestroyAllAi to properly evaluate situation for mass land removal (e.g. Armageddon).
- Refactored DestroyAllAi a little bit to ensure that the deprecated getOpponent() method only occurs once in each call, ready to be removed as soon as we figure out how this logic should work with multiple opponents in multiplayer.
2017-01-26 11:46:33 +00:00
Agetian
67d91f02e4 - Imports cleanup. 2017-01-26 06:45:38 +00:00
Agetian
b8db2630ff - Removed a part of AiCardMemory that did not work out as an idea. 2017-01-26 06:45:09 +00:00
Agetian
501ad43f96 - Compare by name. 2017-01-26 06:43:33 +00:00
Agetian
94f53e05e6 - Explicitly marked cards that use a re-entry mechanism for testing playability via canPlaySa such that they don't recursively call each other and thus risk getting into an infinite loop (fixes potential check combinations of e.g. various mana rituals + Yawgmoth's Will in AI's hand and other things like that, which would otherwise cause a stack overflow).
- Some simplification in the AICardMemory interface, allowing to use static methods to simplify calls.
2017-01-26 06:40:46 +00:00
Agetian
7416cc8fff - Improvements to Phyrexian Dreadnought AI handling. 2017-01-25 11:46:34 +00:00
Agetian
4c931da9c5 - Restoring Phyrexian Dreadnought to AI playable state (might need generalization to its own AI logic though, currently done via a creature-specific "hack"). 2017-01-25 11:19:10 +00:00
Agetian
aba978da58 - Do not tap just animated manlands to animate another manland. 2017-01-24 19:25:34 +00:00
Agetian
0ba88f3ce5 - Improved SacAndUpgrade AI, now it works with Eldritch Evolution and requires fewer parameters in scripts. 2017-01-24 17:42:03 +00:00
Agetian
8fe64ed124 - Simplified checkApiLogic in ChangeZoneAi by refactoring SameName logic into a separate method doSameNameLogic. 2017-01-24 12:28:00 +00:00
Agetian
5a88d2b943 - Moved SacAndUpgrade AI logic from SpecialCardAi to ChangeZoneAi (not card-specific, can be generalized further).
- We may want to eventually do something about ChangeZoneAi since it has become very "fat" and has a ton of convoluted routines for a dozen different effects.
2017-01-24 12:23:40 +00:00
Agetian
5e0c6bbaee - Moved ManaRitual AI logic to ManaEffectAi (no longer card-specific). 2017-01-24 11:16:25 +00:00
Agetian
b12a14b26a - Formatting fix. 2017-01-24 11:09:54 +00:00
Agetian
b2d8cc4a87 - Some additional limitations in ManaRitual AI. 2017-01-24 11:05:13 +00:00
Agetian
318543db38 - Trying to restore the new SpellAbilityAi format for ManaEffectAi.
- Limited mana ritual AI a bit more, it's bad at prioritizing instants for it.
2017-01-24 10:59:59 +00:00
Agetian
f241292bae - Removed an unnecessary parameter in a new method. 2017-01-24 10:40:06 +00:00
Agetian
f292d63c68 - Added a way to specify AILifeThreshold for cards which do not have a life cost but which deal damage or make the player lose life.
- Added AI life activation threshold to Smallpox and Pox to prevent the AI from killing itself with them.
2017-01-24 10:38:56 +00:00
Agetian
6000083a60 - Experimental improvements to allow the AI to consider ManaRitual in Main1. 2017-01-24 09:57:51 +00:00
Agetian
b46a32abfa - Temporarily reverted ManaEffectAi changes since they prevent ManaEffectAi from working completely and I'm not sure how this format should be written properly to make it work (e.g. ManaRitual does not work at all) and Main2 phase restriction should probably be local to ManaRitual, not global... Please feel free to revert this commit to submit an improved version 2017-01-24 09:41:04 +00:00
Agetian
d6f684e287 - Optimize BirthingPod AI by avoiding filtering library at every iteration; move ManaRitual AI in alphabetic order. 2017-01-24 09:11:04 +00:00
Hanmac
3494a8e435 SpecialCardAi: add some Tweaks for ManaRitual, also try to convert ManaEffectAi into new SpellAbilityAi format 2017-01-24 06:15:56 +00:00
Agetian
3f28c3c3d6 - Better castable material detection in ManaRitual AI, now accounts for non-permanents that the AI is willing to cast. 2017-01-23 17:52:06 +00:00
Agetian
33dce1114b - Prioritize mana rituals to try to maximize potential mana. 2017-01-23 17:29:39 +00:00
Agetian
6a2baaef71 - Slight improvement to ManaRitual AI logic. 2017-01-23 17:24:29 +00:00
Agetian
65d97cfbd5 - Imports cleanup. 2017-01-23 16:34:59 +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
Agetian
09c35b07ca - Comment fix. 2017-01-23 12:11:05 +00:00