Files
forge/forge-gui/res/ai
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
..