Commit Graph

1317 Commits

Author SHA1 Message Date
Agetian
280e4d10b2 - Make AILogic BirthingPod obey card restrictions specified in AIPreference SacCost (for the purpose of being flexible for not only Birthing Pod but Natural Order and potentially other cards). Now this AI Logic probably needs a better name. 2017-01-23 10:21:46 +00:00
Agetian
dffee55c52 - Some clarifications in comments. 2017-01-23 10:05:10 +00:00
Agetian
915e369211 - Extended Birthing Pod AI to potentially work with other cards that upgrade creatures.
- Made Natural Order use the variant of this AI logic to be able to search for cards that are better than what we currently have (can certainly be expanded and made more precise by actually evaluating sac creature against the goal creature).
2017-01-23 09:58:35 +00:00
Agetian
e13f016740 - Improved Birthing Pod AI. 2017-01-23 08:24:05 +00:00
Agetian
a0da5da10d - Added AI logic for Birthing Pod and made it AI playable (TODO: make it avoid using the roundabout override mechanism for preferences to make the code cleaner) 2017-01-23 07:15:16 +00:00
Agetian
a19db69ecf - Added AI sac priority to Natural Order (makes it AI-playable again).
- Made Eliminate the Competition AI-playable again by adding a forced AI constraint to how many targets it should set depending on how many creatures it's willing to sac + adding AI sac priority list.
- Currently set both to sac tokens and creatures with CMC 2 or less. Probably could use some tweaking, but sac'ing CMC 3+ to it will probably make the AI do stupid and unreasonable things.
2017-01-23 05:37:20 +00:00
Agetian
2cf427d046 - Added some experimental AI routines to deprioritize Storm spells in an attempt to build up Storm count and also to deprioritize certain groups of spells when deciding whether to counter them. These functions are dependent on AI profile options and, being experimental, are currently disabled in the Default and Reckless AI profiles.
- Added a new AI profile, Experimental, that is based off of the Default profile but which has different experimental AI options enabled and set to reasonable values. Will be used to test, tweak and refine parameters for certain newly introduced options, as well as to test their functionality. Most likely not for everyday use.
2017-01-22 15:42:03 +00:00
Agetian
61b06410ea - The AI should not try to illegally target a player in case it can't find any other legal target to provide (e.g. Muck Drebb + Lightning Bolt to the face). 2017-01-22 11:14:45 +00:00
Agetian
0ef430763b - Fixed Spellskite crashing upon trying to retarget a SA with DividedAsYouChoose. 2017-01-22 09:41:40 +00:00
Hanmac
2a9def0a89 ChangeTargetsAi: make PhyrexianManaCheck more generic and update to new SpellAbilityAi format 2017-01-22 07:16:15 +00:00
Agetian
5926cf9788 - Simpler test for Phyrexian mana shard in ChangeTargetsAi. 2017-01-22 06:36:18 +00:00
Agetian
359a5f343b - More crash prevention in ChangeTargetsAi. 2017-01-22 05:58:30 +00:00
Agetian
6867295a87 - Imports cleanup. 2017-01-22 05:57:27 +00:00
Agetian
2c39506879 - Some crash prevention in ChangeTargetsAi, the AI needs further improvement here if we're to teach it to retarget spells with multiple targets.
- Generalized ChangeTargetsAi not to mention Spellskite by name (so other creatures can gain its ability and be correctly used by the AI) and also not to use AI Logic and detect the ability via DefinedMagnet instead.
- Marking Muck Drubb as AI playable.
2017-01-22 05:56:30 +00:00
Agetian
001b6aea84 - One more addition/cleanup in SpecialCardAi. 2017-01-21 18:20:17 +00:00
Agetian
bdf1660e1d - Some cleanup in SpecialCardAi. 2017-01-21 18:17:39 +00:00
Agetian
80097c5221 - Use a lessCMC predicate in SpecialCardAi.ForceOfWill#consider. 2017-01-21 18:16:15 +00:00
Agetian
c06cbbfe0f - Made Mizzium Meddler use AI SpellMagnet and thus made it AI-playable. 2017-01-21 17:27:12 +00:00
Agetian
9dfc0053ff - Allow the AI to pay phyrexian mana for Gut Shot if it deals a killing blow to an opponent. 2017-01-21 14:40:11 +00:00
Agetian
e864600058 - Preventing the AI from spending Phyrexian mana on some abilities on CMC 1 cards with Phyrexian-only mana that are not typically wise to spend Phyrexian on and the AI would generally use the possibility at inappropriate times. 2017-01-21 14:30:02 +00:00
Agetian
68641a0cfe - Implemented basic "spell magnet" AI (currently used by Spellskite).
- Made the AI able to pay mana costs consisting of only phyrexian mana symbols in absence of relevant colored mana sources (e.g. Mutagenic Growth, Spellskite activated ability).
- Fixed the AI killing itself when paying phyrexian mana while being at 2 life (we might want to consider actually implementing a certain "safe limit" above 2 life, maybe 4 or 5 life, at least outside the range of a typical burn spell).
2017-01-21 14:14:16 +00:00
Agetian
a714af3a9c - AI should not ignore AF CopySpellAbility if it's a mandatory (e.g. triggered) activation. Fixes Precursor Golem and possibly other similar cards when they are controlled by the AI. 2017-01-21 10:14:04 +00:00
Hanmac
2f3d1026bc CardPredicates: add greaterCMC and lessCMC which does respect SplitCards 2017-01-21 09:28:18 +00:00
Agetian
566ed71105 - Updated SpecialCardAi to use custom predicates for CMC checks. 2017-01-21 08:48:34 +00:00
excessum
5a6969b4c1 - Fixed whitespace for r33298 2017-01-21 08:37:44 +00:00
excessum
7fd46af03f - Fixed AI for Fatal Push 2017-01-21 08:34:34 +00:00
pfps
ab867a40ee Better prompt messages for confirming optional triggers 2017-01-20 20:19:31 +00:00
Agetian
e8fd2a77f2 - For now, disabling ACTIVELY_DESTROY_ARTS_AND_NONAURA_ENCHS in Default AI profile, but keeping it enabled in the Reckless/Aggro profile (for the AI to be more aggressive in removing the opposing threats when given a chance).
- Imports cleanup.
2017-01-20 17:46:01 +00:00
Agetian
e3e97cd2e6 - Added global options to control the min CMC the AI would use permission against (disabled in both default profiles at the moment).
- Implemented some simple AI for Daze and Force of Will such that the AI does not waste them so much on every single opportunity (quite basic, needs further expansion).
- Fixed Force of Will disappearing from the AI card pool when it was trying to cast it without having a valid blue card to exile in hand.
- Marked Daze and Force of Will as AI-playable (should at least be more or less on par with other permission for the most part).
2017-01-20 17:41:43 +00:00
Agetian
29ed470ca2 - Improved Black Lotus AI in low-CMC decks. 2017-01-20 15:05:32 +00:00
Agetian
5b3250b420 - Imports cleanup. 2017-01-19 14:47:23 +00:00
Agetian
69261f48fe - Improved Yawgmoth's Will AI.
- Moved it to SpecialCardAi and named the AI logic after the card for now because it looks like the effect is rather unique in the card pool.
2017-01-19 14:46:33 +00:00
Agetian
9bf18c5b9f - A minor code simplification. 2017-01-18 17:47:28 +00:00
Agetian
a7f5b9f6da - AI is not good at considering targets for Detention Sphere on its own side of the battlefield (and will commonly miscast it that way if the opponent controls no nonland permanents), so don't consider them for now. 2017-01-18 17:29:10 +00:00
pfps
43b99d130a Drag the current spellability closer to the GUI so that it can be (eventually) displayed 2017-01-18 16:37:41 +00:00
Agetian
40bcdee62e - Fixed condition. 2017-01-17 16:14:58 +00:00
Agetian
f484f02f4d - Added an experimental (and disabled by default in all profiles) AI profile option ACTIVELY_DESTROY_ARTS_AND_NONAURA_ENCHS, which makes the AI more willing to not hold back using removal on artifacts and global (non-aura) enchantments that have "suspicious" (potentially beneficial for the opponent/disruptive for the AI) intrinsic static or triggered abilities.
- Currently very basic and requires tweaking and expansion, from hence it's disabled by default until I experiment enough with it, see how it works in practice and tweak it to account for other cases and corner cases that may be viable (and prove that it does not make the AI take stupider decisions than without this option).
2017-01-17 16:11:26 +00:00
Agetian
41ce87d6c3 - Clean up imports. 2017-01-17 06:15:52 +00:00
Agetian
3ae94b2206 - Added AILogic CastFromGraveyardUntilEOT to Effect AI.
- Made Yawgmoth's Will AI-playable.
2017-01-17 06:15:23 +00:00
Hanmac
20f354b331 CountersRemoveAi: refactor it for now, extend it later 2017-01-17 05:31:39 +00:00
Agetian
0fda15d033 - Even though the AI doesn't do anything with AF RearrangeTopOfLibrary, it should at least not miss mandatory triggers so they actually go on stack. 2017-01-15 10:37:56 +00:00
Agetian
f9c5947ab9 - AI should probably not miss opportunities to cast permanents without paying mana cost even if it's not the main phase 2 (e.g. killed Treasure Keeper cascading into a permanent). 2017-01-15 06:36:10 +00:00
Agetian
fb9f3cac48 - Correctly predict the amount of damage that will be dealt by AF DealDamage where X is dependent upon the number of cards in hand (and the spell is cast from hand). 2017-01-14 17:49:31 +00:00
Krazy
26eec4cf8b [maven-release-plugin] prepare for next development iteration 2017-01-14 02:08:47 +00:00
Krazy
5196c1bf62 [maven-release-plugin] prepare release forge-1.5.58 2017-01-14 02:08:36 +00:00
Agetian
7ecf2738aa - Additional NPE guards. 2017-01-13 16:19:48 +00:00
Agetian
04c713eb33 - Some more minor implementation tweaks for Destroy AI. 2017-01-13 16:15:27 +00:00
Agetian
410572cda0 - A more robust check for hasXCost in Destroy AI. 2017-01-13 16:12:51 +00:00
Agetian
317eeb7133 - Improved Destroy AI when dealing with mana costs featuring X ("destroy X target creatures") - the AI will consider these SAs even if it can't afford to target everything that is targetable on the battlefield. 2017-01-13 16:09:09 +00:00
Agetian
2cd474fbf3 - Removed unused import. 2017-01-13 09:03:54 +00:00