Commit Graph

1553 Commits

Author SHA1 Message Date
Agetian
2bb8d8b52a - Some puzzle mode improvements. Added support for precasting simple (untargeted) spells at the beginning of the game via AIPrecast/HumanPrecast parameters. Added support for Flipped and Meld card states. 2017-08-07 04:49:24 +00:00
Agetian
54486cb5be - Reverting 34942 for now, causes weird, hard to track side effects. Better solution needed. 2017-08-06 18:17:56 +00:00
Agetian
d6dfc2ffb6 - Attempting to fix a long-standing bug with the delayed triggers getting the wrong activator set at their resolution time (the AI was aggressively overwriting the activator via its SpellAbility simulation routines).
- Ensured that all callers of getOriginalAndAltCostAbilities both call setActivatingPlayer and then reset it to its original value if there was one after the simulation completes. Thus, an aggressive setActivatingPlayer inside getOriginalAndAltCostAbilities should not be necessary.
2017-08-06 11:52:03 +00:00
Agetian
9b880eb669 - Fixed AI for Jace, Telepath Unbound -3 ability. 2017-08-05 03:53:16 +00:00
Agetian
57aa32f0c1 - Added Bow to My Command.
- Currently probably one of the most complicated scripts, utilizing a couple hacks to simulate the "tap creatures with power 8 or greater" triggered ability. Most likely needs, at least, an UnlessCost update to support the tapXType cost with total creature power, and also potentially another update when/if shared turns and shared decisions are implemented.
2017-08-04 16:15:28 +00:00
Agetian
081ea769a1 - Removed an unused variable. 2017-08-04 08:46:48 +00:00
Agetian
e3c3315873 - Improved the AI logic for Chain of Acid. 2017-08-04 08:43:47 +00:00
Agetian
bb0218d3c6 - Fixed the AI cheat-activating AF PutCounter with a sac cost without sacrificing anything (e.g. Extruder). 2017-08-04 07:27:41 +00:00
Agetian
79321a0ffb - AlwaysPlayAi: implement an overriding confirmAction (set to return always true since AlwaysPlay is meant to do exactly that). 2017-08-03 19:52:48 +00:00
Agetian
8e469493ac - Added Liege of the Hollows. 2017-08-03 16:03:38 +00:00
Agetian
8a39ff469f - Added Power Leak (for now, needs a special exclusion in the AI code to properly determine who the paying player is, otherwise the AI believes that it's the opponent who owns Power Leak in case it's cast by the opponent). 2017-08-01 16:52:26 +00:00
Agetian
e43cfce016 - Improved and fixed the handling of game states inside combat phases (DA, DB), added a way to mark cards that are attacking in saved game states. 2017-08-01 10:10:15 +00:00
Agetian
5931b53896 - Removed an unused variable. 2017-08-01 08:26:35 +00:00
Agetian
d9b3c2c15c - Added a comment. 2017-08-01 06:17:44 +00:00
Agetian
10a9825f82 - Fixed a bug that caused multiple attachments on the same permanent not to work in game states.
- Improved the game state support to handle remembered cards and ExiledWith.
2017-08-01 06:16:46 +00:00
Agetian
2bbe168200 - Script execution in GameState: look for other scripts to execute if one of the SVars was not found. 2017-07-31 12:01:53 +00:00
Agetian
d6e8a96b19 - Script execution in GameState: do not iterate over all SVars, just grab the necessary SVar directly. 2017-07-31 12:00:02 +00:00
Agetian
c34fae302e - Added a way to force execution of a portion of card script when setting up game state (needed for some puzzles that utilize cards that dynamically set up effects when they ETB, e.g. Suspension Field).
- Added PC_041415 puzzle by Xitax.
2017-07-31 05:27:15 +00:00
Agetian
56d79f36dc - Fixed a crash when loading a game state with a misspelled card name (will now report the card name in the console instead of hard-crashing). 2017-07-30 11:14:32 +00:00
Agetian
bbcf7b638f - Added a TODO entry to GameState. 2017-07-30 10:47:27 +00:00
Agetian
94cc314738 - Preserve ChosenColors and ChosenType in game states. 2017-07-30 10:40:32 +00:00
Agetian
39eb6482e3 - Handle marked damage before the triggers are unsuppressed when applying game states. 2017-07-30 10:19:46 +00:00
Agetian
85e66ebd8a - Fixed marking damage in puzzle mode and game states.
- Fixed card attachment in puzzle mode not working correctly when attaching a card to a card belonging to a different player.
2017-07-30 08:27:16 +00:00
Agetian
322b7084ea - Use calculateAmount in AttachAi instead of a custom method. 2017-07-30 06:53:52 +00:00
Agetian
8ac2c0462a - Fixed a NPE in AttachAi related to processing negative count for X (e.g. -X in Quag Sickness). 2017-07-30 06:40:17 +00:00
Hanmac
698c9d2923 PlayAi: fixed non-final error 2017-07-29 19:53:28 +00:00
Agetian
a502ceea53 - Added a way to preserve marked damage in game states and puzzles. 2017-07-29 17:04:26 +00:00
Agetian
6adf49de45 Fixed AILogic$ Evasion for EffectAi causing the AI to play the relevant cards out of context (e.g. Gruul Charm with the "can't block" mode on an empty battlefield). 2017-07-29 11:42:46 +00:00
Agetian
839ced1b32 - Use a separate AI logic for "Detain target nonland permanent". 2017-07-28 07:44:02 +00:00
Agetian
b7f220d02b - Formatting fix. 2017-07-28 04:20:19 +00:00
Agetian
398ae8946c - Fixed the AI targeting nonland permanents with no activated abilities with effects like Detain. 2017-07-28 04:19:06 +00:00
Blacksmith
1668717cf8 [maven-release-plugin] prepare for next development iteration 2017-07-22 00:46:25 +00:00
Blacksmith
0e3163dd62 [maven-release-plugin] prepare release forge-1.6.1 2017-07-22 00:46:15 +00:00
Agetian
fb58a75869 - Fixed CopySpellAbilityAi (e.g. Replicate).
- TODO: figure out why the AI won't announce the Replicate amount correctly (always says Replicate=0).
2017-07-21 19:23:30 +00:00
Agetian
9315e6ca5c - PlayAi: the mandatory parameter was not correctly propagated in chooseSingleCard, thus making the AI bail on certain mandatory spells (e.g. suspended Ancestral Vision). 2017-07-18 04:33:29 +00:00
Agetian
47566b3fef - Do not update the view on ManifestAi replacement effect check. 2017-07-17 17:21:24 +00:00
Agetian
83d0e7065a - ManifestAi: AI should check to ensure that manifesting the card will not be prevented by something like Grafdigger's Cage. 2017-07-17 17:13:44 +00:00
Hanmac
fdb19ebfbc SpellAbilityAI: add checkConditions, do extra handling for ManaSpent Check there
also add check for when main SpellAbility condition is false but the subAbility condition is true
like for Dawnglow Infusion
2017-07-16 18:31:24 +00:00
Hanmac
103ddb6f15 LifeGainAi: new Format and try to add more logic into it with using Lifegain as Damage Spell 2017-07-16 08:17:21 +00:00
Agetian
44cafc14f0 - A more robust check in MeldAi (checks ownership of both components, ensures that source of SA is the primary meld). 2017-07-15 14:36:47 +00:00
Agetian
b737932da5 - Removed incorrect javadoc. 2017-07-15 08:37:45 +00:00
Agetian
bddd2d2473 - A small filtering precaution. 2017-07-15 08:36:16 +00:00
Agetian
1c20a00f7c - Updating AI support for Meld (particularly when it's an activated ability so the AI knows when to activate it). 2017-07-15 08:32:49 +00:00
Agetian
6fdf895c01 - Embalmer's Tools: AI should generally use its activated ability at opponent's end of turn and before its own turn. 2017-07-15 03:52:48 +00:00
Agetian
507490df59 - LifeGainAi: minor formatting. 2017-07-14 16:53:08 +00:00
Agetian
3c4309d74b - LifeGainAi: Do not use the "don't sac possible blockers" code path if the cost is "sac self" and the card is not a creature (e.g. Woodweaver's Puzzleknot). 2017-07-14 14:44:28 +00:00
Agetian
8f27ba5022 - CopyPermanentAi: do not try to activate the copy ability if there is nothing to copy when there needs to be an imprinted card (Mimic Vat). 2017-07-14 10:12:39 +00:00
Agetian
05fe27afa6 - Switching Pestilence AI to be more generic and use AILogic$ DmgAllCreaturesAndPlayers 2017-07-13 06:09:07 +00:00
Agetian
c6ddc9f8dd - Comment formatting fix. 2017-07-13 05:49:41 +00:00
Agetian
f8eec67cca - Integrating the Pestilence AI improvement by Seravy. 2017-07-13 05:32:35 +00:00