Commit Graph

79 Commits

Author SHA1 Message Date
Agetian
a9c97aac2c AI Sideboarding Mode toggle as a Preferences option (#5136)
* - Initial commit for the AI sideboarding mode toggle.

* - Tweak the parameter value to correspond to the enum.

* - Consistency.
2024-04-25 14:19:47 +03:00
Agetian
40c7bccd39 Basic AI sideboarding framework (#5089)
* - Add OTJ achievements by Marek14.

* - AI hint for Transcendence.

* - Basic AI sideboarding framework.

* - Basic AI sideboarding framework.

* - Add an option to allow planeswalkers to replace creatures.

* - Add an option to only allow shared types for cards exchanged during sideboarding.

* - Comment tweak

* - Modifications according to recommendations.

* - Logic tweak for lastOutcome.
2024-04-21 17:20:59 +03:00
Agetian
8e0bc63a8b AI framework to improve sacrificing endangered cards + several AI hints (Stoneforge Mystic, Atog, others) and improvements. (#4014)
* - Implement a fallback mechanism in case getting a card by name and edition fails for whatever reason.

* - Patch up pulling a card without filters in All Card Variants mode.

* - Sacrifice creatures when they're endangered (currently works for
AF LifeGain, LifeLose, and any AFs that do not have phase-based AI restrictions or other factors that will prevent instant speed activation)

* - Tweaks to the requirements for the AI.
- Some AI enablement.

* - Account for non-creature endangered objects

* - Flag Wall of Limbs as RemAIDeck for now.

* - Support for AF PutCounter.

* - Clean up.

* - Logic fix for AF PutCounter.

* - Clean up.

* - Logic tweak/fix for AF Pump.

* - Another slight tweak.

* - Some AI hint fixes/additions.

* - Some AI hint fixes/additions.

* - Improve timing for AF LifeGain/LifeLose.

* - AI profile option for default SacCost AI preference.

* - Default Sacrifice AI preference master toggle.

* - Stoneforge Mystic AI hint.

* - For now, keep the default pref SacCost toggle to the Experimental AI and at minimum values (too extreme for general use).

* - AI hint: Cryptbreaker

* - Don't auto-sac creatures that evaluate above a given threshold, sac smaller CMC first

* - Lower the priority of cards that have a self-sacrifice activated ability

* - Revert the evaluation modification until a better solution is found.

* - AI hint for Hallowed Moonlight.

* - AI hint for Winds of Abandon (AI casts the non-overloaded version in Main 1, so cast the other one in Main 1 as well to be able to prioritize/choose)

* - AI logic for The One Ring.

* - Some logic tweaks/fixes.

* - Winds of Abandon: use the AI logic hint like other similar non-permanent spells.

* - Fix logic for default sacrifice priorities.
- Mark P9 Mox, Black Lotus, and Lotus Petal cards as bad for AI sacrifice.

* - More logic fixes.

* - One more logic fix.

* - Revert the AIDontSacrifice hint for now.

* - Revert Tinker as well

* - Limit LifeLoseAi sac logic to threatened cards.

* - Logic tweak.

* - Logic tweak.

* - Simplify check (part already checked above).

* - Some more minor cleanup.

* - AI shouldn't sacrifice things mid-combat in presence of Trample or Banding because of altered combat rules (likely to backfire/result in a misplay)
- Minor cleanup.

* - A [hacky] way to make the AI understand Anticognition and Bring the Ending.

* - Fix imports.

* - Avoid a crash by ensuring that the AI parameter indeed points to an AI player (and not e.g. predicting/simulating human decisions at the moment)

* - Do not try to sacrifice a card in an attempt to regenerate it

* - Clean up for AiController mustRespond

* - Suppress recursive checkSacrificeCost when called from the predictive code.
- Trample only matters for the attacking side when checking for threatened card SacCost requirements

* - Naming convention.

* - NPE guard.

* - Recommended tweaks and fixes.

* - Don't override X payment for a triggered ability (e.g. Spiteful Banditry)

* - A better attempt at handling X inside trigger code.

* - Process AI logic for EffectAi from triggered abilities.

* - Improve Black Lotus AI by handling it as if it were a Mana Ritual card when processing ManaEffectAi.

* - AI property guarded check + meaningful default for potential non-AI calls
2023-11-05 22:21:11 +03:00
Michael Kamensky
0701bb0097 - Update some Default AI profile preferences. 2021-02-28 07:47:38 +03:00
Michael Kamensky
b702819baf - Add an AI property to get rid of opposing curse auras with Hexproof/Shroud/Protection 2020-11-01 12:01:48 +03:00
Agetian
62d3c4457b - Improve AI logic for Bound by Moonsilver. 2020-07-20 08:03:10 +03:00
Michael Kamensky
c5e4518779 AI logic to blink-reload a planeswalker using Teferi's Time Twist. 2019-05-21 14:39:33 +00:00
Agetian
f2e9d5913e - Default settings for holding back X damage spells. 2018-12-15 10:01:29 +03:00
Agetian
7a7b461e0d - Set the damage chaining defaults for the AI profiles. 2018-12-12 14:41:39 +03:00
Agetian
1d7188b8f5 - Minor logic tweak (Buyback) + AI property
- hasXInAnyCostPart doesn't need a SA parameter now that it's in Cost.
- Fixed a minor mistype on mobile Forge.
2018-12-04 16:17:03 +03:00
Agetian
c9c5a443ef - More work on AI logic. 2018-11-27 12:45:09 +03:00
Agetian
ed556ba2a7 - Implemented logic for CopySpellAbilityAi. 2018-11-27 12:45:09 +03:00
Agetian
12ec6e24a2 - More work on flash aura logic. 2018-11-22 19:06:44 +03:00
Agetian
0b0c08631a - Added a full advanced Flash Attach Ai infrastructure and the basic logic and toggles for it. 2018-11-22 09:03:15 +03:00
Agetian
874c545a08 - Added a full advanced Flash logic infrastructure and the basic toggles for it. 2018-11-21 22:51:10 +03:00
Agetian
02cca3b8c8 - Finish promoting the life in danger AI profile options from experimental to general use. 2018-11-10 07:30:30 +03:00
Agetian
c1260dd4e1 - Some improvements to Momir/MoJhoSto basic land strategy. 2018-11-09 15:42:40 +03:00
Agetian
44de14d070 - Minor improvements in Surveil logic. 2018-11-08 08:47:19 +03:00
Michael Kamensky
985599a3b2 Various AI improvements. 2018-11-06 11:59:49 +00:00
Agetian
0c38c6306f - A simple hook that calls Scry logic for Surveil (but on top of that, checks whether there are enough cards in the library not to deck yourself).
- Can be improved further by completely differentiating the logic between the two.
2018-09-09 18:55:58 +03:00
Agetian
28998e97ab - MoJhoSto: some more profile-based configurability for AI strategy. 2018-04-21 23:15:26 +03:00
Agetian
c470e0cdcb - MoJhoSto: added an option to control the number of lands at which the AI begins to consider activating Jhoira. 2018-04-20 09:18:03 +03:00
KrazyTheFox
6d5e56f6bf Normalize line endings 2017-12-28 23:40:29 -05:00
Agetian
5d32321aa2 - RemAIDeck update: next iteration.
- An option not to hold land drops if there are no permanents in play, so there's little reason and extra confusion.
- Some improvements to CountersRemoveAi and PhasesAi.
2017-10-03 13:53:34 +00:00
Agetian
8108bdc91b - AI: added an experimental option to actively prioritize destroying creatures that are not immediately blockable and thus pose a recurring threat (currently in testing, disabled in all default profiles). 2017-09-30 06:57:17 +00:00
Agetian
a17663655b - Added an option to decrease the AI chance to randomly trade vs. an Embalm/Eternalize creature that will come back later.
- Enabling the option to hold land drops for main 2 from time to time when safe (tested by now, should work well).
2017-09-29 16:34:38 +00:00
Agetian
fce6807a3b - Simple AI support for Explore (feel free to expand). 2017-09-25 08:02:08 +00:00
Agetian
1b1a56e77c - Improved support for Illusions-Donate, added deck The Great and Powerful Trixie 2, changed the deck The Great and Powerful Trixie 3 to be a more standard Legacy-legal Trix. 2017-09-23 09:04:16 +00:00
Agetian
44a2f1880d - Some improvements to the "protect planeswalkers with weak chumps" logic. Enabling it in a conservative version by default.
- Several additional experimental toggles for ChangeZoneAllAi, will be used to fine-tune "bounce all" type spells in generic cases.
2017-09-18 15:26:15 +00:00
Agetian
cede2927c5 - Made the new experimental AI option chance-based (currently disabled by default). 2017-09-17 08:07:56 +00:00
Agetian
8c7dc08844 - Added an experimental option to hold unused land drops until main 2 (disabled by default). 2017-09-17 06:22:30 +00:00
Agetian
05a9d457aa - Improvements to Counter AI. 2017-09-14 06:18:05 +00:00
Agetian
57e5135346 - Improvements to Scry AI. Also, made Scry AI configurable using several AI profile preferences. 2017-09-14 05:35:35 +00:00
Agetian
74eea096b1 - Added some more experimental combat AI options, currently disabled by default.
- Enabling some of the previously experimental, now tested combat AI options (random favorable trades, holding combat tricks until block, trading to save a planeswalker, attempting to avoid attacking into certain blocks).
2017-09-11 17:37:43 +00:00
Agetian
edb1343676 - For the time being, hiding the latest change to attack controller behind an experimental option, enabled in the experimental profile (may be defaulted and removed as a profile option later after extensive testing). 2017-09-06 16:51:32 +00:00
Agetian
d73b3c44e3 - More work and parameter tweaking for attack/block trade experimental AI. 2017-09-06 15:32:24 +00:00
Agetian
2b11afbb2d - More tweaks to the attack/block trading experimental options. 2017-09-06 14:30:24 +00:00
Agetian
063a50b14a - Some modification of chance variables in the AI profiles related to the experimental attack/block trade options. 2017-09-04 13:24:56 +00:00
Agetian
ebb06b34b0 - Some more work on attack/block trades [experimental]. 2017-09-04 12:18:06 +00:00
Agetian
88ca671965 - Some more work on surprise attacks/trades [experimental, disabled by default]. 2017-09-03 15:26:28 +00:00
Agetian
bb82c6fa02 - Further work on trick/lure attacks with held pump spell. 2017-09-02 14:19:34 +00:00
Agetian
190703d74b - Some changes in PumpAi related to the in-dev experimental features. 2017-09-02 10:05:17 +00:00
Agetian
41409fb5c1 - An AI option to hold combat tricks until block, experimental and disabled by default (more work to follow soon). 2017-09-02 03:57:06 +00:00
Agetian
badf68b80a - Further work on random trades (experimental, disabled by default.) 2017-09-01 14:53:44 +00:00
Agetian
1779544d70 - Further work on experimental attack/block trade feature (disabled by default). 2017-09-01 05:54:01 +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
39fb42db10 - Enabling evasion prediction for assault and attrition attack declarations in default AI profiles after testing. 2017-08-29 16:05:20 +00:00
Agetian
abe710f3ab - Some more fine-grained control over AILogic PayEnergyConservatively. 2017-08-23 15:16:47 +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