Commit Graph

1772 Commits

Author SHA1 Message Date
Agetian
65322925a4 - Pump effects: consider beneficial combat pump effects when checking if the AI should pump the card. Also, use "gains flying until EOT" defensively if there's a chance to kill the opponent's creature or block the opposing flyer with an indestructible flying creature. 2017-09-01 08:31:50 +00:00
Agetian
346c4db3d9 - Whispers of the Muse, Treasure Trove: added AILogic$ AlwaysAtOppEOT as it's a more optimal default timing for this effect. 2017-09-01 07:56:42 +00:00
Agetian
1779544d70 - Further work on experimental attack/block trade feature (disabled by default). 2017-09-01 05:54:01 +00:00
Agetian
0270420da8 - Some minor refactoring in AiBlockController related to the previous commit. 2017-09-01 03:22:11 +00:00
Agetian
a1461851ee - Some further work on the experimental attack/block trading options (disabled by default in all profiles except Experimental). 2017-09-01 03:19:24 +00:00
Agetian
0637d5511d - Some experimental attacking and blocking changes related to surprise trade attacks and blocks, currently disabled by default in all profiles except Experimental. 2017-08-31 19:11:04 +00:00
Agetian
27682b2d07 - Electrostatic Pummeler AI: predict static damage prevention 2017-08-31 18:05:30 +00:00
Agetian
8147a315c2 - Added rudimentary AI to requested cards Erratic Portal and Null Brooch. Helm of Possession appears to be AI playable already after testing, so marking it as such. 2017-08-31 12:41:54 +00:00
Agetian
c2aac371ae - Cleaned up imports. 2017-08-30 19:28:08 +00:00
Agetian
9aa6e0d39a - CloneAi: improved a bit for Tilonalli's Skinshifter. 2017-08-30 19:27:12 +00:00
Agetian
928792bea7 - Some method renaming. 2017-08-30 17:17:10 +00:00
Agetian
99775194fd - Electrostatic Pummeler AI: teach the AI to pump the Pummeler to save it from dying to direct damage spells. 2017-08-30 17:16:00 +00:00
Agetian
beb73828e0 - LifeSetAi: Do not use this ability in case the amount the life is set to is the same as the AI's current life (e.g. Oketra's Last Mercy while the AI is already at the starting 20 life). 2017-08-30 16:52:20 +00:00
Agetian
bd6599a309 - Better Electrostatic Pummeler AI. 2017-08-30 14:55:01 +00:00
Agetian
b41e2b6f51 - Electrostatic Pummeler AI: don't overpump when using it defensively. 2017-08-29 16:56:42 +00:00
Agetian
84e73f6f52 - Fixed the AI cheating with Plague Belcher by ignoring its triggered ETB ability. 2017-08-29 16:18:09 +00:00
Agetian
59b7f9c775 - Somewhat better AI for Exhaustion. 2017-08-28 04:25:19 +00:00
Agetian
1da95433ae - Fixed the AI sacrificing everything to Westvale Abbey without honoring AIPreference:SacCost (should also fix other similar cards with sac cost that requires the AI to sacrifice several cards). 2017-08-27 19:00:23 +00:00
Agetian
45d71d0c5f - AI improvements: restored playability of Exhaustion, made Cursed Scroll AI-playable, added some additional code support for programmable Exert logic (Ahn-Crop Champion is an example), added a bit of threshold to Living Death AI, moved Momir Vig Avatar logic to SpecialCardAi. 2017-08-27 18:11:06 +00:00
Agetian
8331f92775 - GameState: added support for counters in exile zone (e.g. via Mairsil) and for face-down cards in exile (e.g. via Bomat Courier). 2017-08-27 04:12:19 +00:00
Agetian
4c3c7e3807 - GameState: use setCounters to clear the player/planeswalker counter count 2017-08-27 03:57:40 +00:00
Agetian
44ac42a4b5 - Puzzle Mode: A better solution for precasting Awaken in GameState (allows both Awaken and AwakenOnly). 2017-08-26 19:08:35 +00:00
Agetian
78a60c750a - GameState: when processing a precast effect solely for KW Awaken, only precast the Awaken part, not the parent ability. 2017-08-26 18:54:39 +00:00
Agetian
91b839dd26 - Fixed a NPE in ComputerUtil. 2017-08-26 18:17:31 +00:00
Agetian
cdb6d10519 - Genju of the X cycle of cards AI: attempt to avoid tapping the targeted card for mana if there's another source like that available (might be further improved later by detecting the actual mana type and the sources of that type that are open, after which the special AI parameter SVar might no longer be necessary). 2017-08-26 18:01:03 +00:00
Agetian
0e0b12dcc0 - Fixed keyword name capitalization in AiAttackController. 2017-08-26 14:49:03 +00:00
Agetian
b9e7b1f29b - Attack AI: Afflict should be considered as a combat effect for the purpose of attacking into non-lethal blockers. 2017-08-26 14:46:50 +00:00
Agetian
f930f2aa80 - Minor comment clarification. 2017-08-26 06:22:15 +00:00
Agetian
8698f7e4ab - Bomat Courier AI improvement: teach the AI to sac Courier when threatened in case sacrificing it would provide hand card advantage 2017-08-26 06:17:56 +00:00
Agetian
5b6e0d5c10 - CounterAi: a more generic solution for Mental Misstep exclusion, part 2 2017-08-25 15:55:28 +00:00
Agetian
a53de75873 - CounterAi: a more generic solution for counterspells only targeting CMC X vs. CMC X spells. 2017-08-25 15:52:52 +00:00
Agetian
b3dc4671d0 - Fixed the attack AI overevaluating board position because unblocked attackers with evasion were not removed from remainingAttackers before further evaluation. 2017-08-25 15:35:29 +00:00
Agetian
ef4dd57032 - NPE prevention in ComputerUtil. 2017-08-25 14:59:22 +00:00
Agetian
ad1e17f329 - Fixed a NPE in ComputerUtilCost, part 2. 2017-08-25 11:01:48 +00:00
Agetian
2ba53e2dab - Fixed a NPE in ComputerUtilCost. 2017-08-25 10:59:29 +00:00
Agetian
909b8e7127 - Bristling Hydra AI: teach the AI to use a ping activation to save the hydra from death. 2017-08-25 10:57:12 +00:00
Agetian
8280401e10 - A better algorithm for detecting available mana for the purpose of CounterAi. Should be more precise and less cheat-y. 2017-08-25 09:21:02 +00:00
Agetian
0378d54acc - Added implementation comment. 2017-08-25 05:51:54 +00:00
Agetian
d33b642b8e - A more universal CounterAi fix, accounting for sources producing multiple mana. 2017-08-25 05:49:00 +00:00
Agetian
27d68bcf45 - Fixed CounterAi in the trigger portion as well. 2017-08-25 05:28:06 +00:00
Agetian
b0122a8e38 - Renamed a method to be more self-explanatory. 2017-08-25 05:26:50 +00:00
Agetian
96cbb63c84 - CounterAi: fixed the AI not accounting for the mana in the mana pool of the SA activator; fixed the AI looking at the mana of the wrong opponent in multiplayer matches. 2017-08-25 05:23:27 +00:00
Agetian
aaf16273a9 - Minor code style unification. 2017-08-24 17:46:01 +00:00
Agetian
f83e03e775 - Fixed a comment. 2017-08-24 17:45:01 +00:00
Agetian
5328e443db - Fixed the AI tapping a creature for mana to cast a pump instant/sorcery spell on that creature. 2017-08-24 17:44:03 +00:00
Agetian
ed49943039 - Further improvements to AI handling Electrostatic Pummeler. 2017-08-24 17:27:14 +00:00
Agetian
220fdcdc75 - Added an overriding implementation of doTriggerAINoCost to BondAi, fixes the AI randomly ignoring a chance to soulbond creatures. 2017-08-24 16:21:23 +00:00
Agetian
441693ac36 - Added a couple break statements. 2017-08-24 11:49:08 +00:00
Agetian
77910d82fc - Improved AI spending counters for Skullmane Baku. 2017-08-24 11:47:59 +00:00
Agetian
05258a5b48 - Some improvement to the AI for "remove X counters": made the Baku cards that are marked as RemRandomDeck (but not RemAIDeck) playable by the AI again, albeit some of them rather suboptimally. Quillmane Baku is not supported (but was already marked RemAIDeck). 2017-08-24 10:28:43 +00:00