Commit Graph

2301 Commits

Author SHA1 Message Date
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
Agetian
ad8ad35c03 - One more fix. 2017-08-23 19:37:21 +00:00
Agetian
20d27bb9b3 - Removed an unused parameter. 2017-08-23 19:37:00 +00:00
Agetian
30e878cbf9 - Fixed the previous commit. 2017-08-23 19:36:29 +00:00
Agetian
374f6fcc1b - Improvements to the Electrostatic Pummeler AI logic. 2017-08-23 19:35:45 +00:00
Agetian
88491f61e2 - Some more improvements for Electrostatic Pummeler AI 2017-08-23 17:20:33 +00:00
Agetian
abe710f3ab - Some more fine-grained control over AILogic PayEnergyConservatively. 2017-08-23 15:16:47 +00:00
Agetian
3e4e87db23 - GameState: clear counters on planeswalkers and players before applying new ones from the game state. 2017-08-23 15:01:04 +00:00
Agetian
e7ca1a13a6 - Renamed a method. 2017-08-23 14:47:54 +00:00
Agetian
aca78410f6 - Moved a comment. 2017-08-23 14:47:24 +00:00
Agetian
989331cbb4 - Some improvements for Pump AI related to pump spells with pure energy cost, makes Electrostatic Pummeler a little better in AI's hands. 2017-08-23 14:45:01 +00:00
Agetian
7a8267a772 - A less reckless default AILogic PayEnergyConservatively for Longtusk Cub and Bristling Hydra (gives the AI a chance to use the energy for something else when possible). 2017-08-23 12:53:44 +00:00
Agetian
37ca383360 - Formatting code in DamageAllAi. 2017-08-23 08:52:51 +00:00
Agetian
90eb55fbf8 - Made DamageAllAi more multiplayer friendly + improved the logic for seeing if both a player can be killed and some more creatures can be dealt with in multiplayer environment.
- Marking ComputerUtil.getOpponentFor as deprecated and adding a comment about what it should be replaced with over time. Also, simplified its implementation since at the moment it's a functional synonym of getWeakestOpponent.
2017-08-23 08:51:28 +00:00
Agetian
e96c503b11 - DamageAllAi: prioritize killing the player off, if possible (e.g. Earthquake for X=1 to kill creatures or X=3 to kill a player). 2017-08-23 04:58:29 +00:00
Agetian
d364cc0f51 - Improved the experimental attack evasion prediction by considering creatures with evasion first (further tweaking and testing in progress). 2017-08-22 05:10:11 +00:00
Agetian
1e6467cf80 - Experimental: attempting to improve the AI choice for attrition attack when predicting possible opponent's forces with evasion (e.g. Flying). Currently enabled only for the Experimental AI profile for the testing period. 2017-08-21 17:29:57 +00:00
Agetian
92b985d24d - Experimental: attempting to improve the AI choice for all-in assault for battlefield situations where the defender will have several, but not enough, defenders with evasion (e.g. Flying).
- Currently only enabled for the Experimental AI profile for the testing period.
2017-08-21 17:07:46 +00:00
Agetian
b389209c05 - Added a simple Create Puzzle mode to desktop Forge (presents you with a clean battlefield, allows to dump the game state with a template for puzzle metadata).
- Enhanced the Dev Mode feature set with the "Add Card To Library/Graveyard/Exile" commands.
- Ported this Dev Mode functionality, as well as "Exile Card From Hand/Play", to mobile Forge.
2017-08-21 15:17:41 +00:00
Agetian
a82b3fd88a - Removed debug print lines. 2017-08-21 11:25:30 +00:00
Agetian
04a125d20f - A somewhat more conservative and fine-grained approach at improving the token-generation AI logic. 2017-08-21 11:24:47 +00:00
Agetian
fc2e93a57f - Converted token generation ability activation chance for the AI into a profile variable (currently defaults to 100% for all profiles, pending testing). 2017-08-21 10:29:30 +00:00
Agetian
cfe9c17b58 - Experimental: TokenAi: do not use a "80% chance to generate a token" chance when the token-generating ability is otherwise relevant. Prevents the AI from missing activations of planeswalker token generation abilities on casting a planeswalker, as well as indecisively creating tokens via The Hive and other similar cards before Declare Blockers when on defense. Will run some tests with this later, or may convert to an AI profile variable. 2017-08-21 10:19:48 +00:00