Commit Graph

2085 Commits

Author SHA1 Message Date
Seravy
97177e379e Default turn = 1 if none set 2018-02-18 20:22:17 +01:00
Seravy
c348ffa34e Now using SVar 2018-02-18 19:54:29 +01:00
Hanmac
3a071ea071 DestroyAi: extended havepact logic 2018-02-18 11:26:34 +01:00
Michael Kamensky
d544d69524 Merge branch 'AIInDangerRange' into 'master'
AI In danger threshold now configurable and can be random instead of being locked to always 4.

See merge request core-developers/forge!220
2018-02-18 09:15:34 +00:00
Michael Kamensky
bcc0fc9e00 Merge branch 'AINoncombatantCreatures' into 'master'
Ai noncombatant creatures

See merge request core-developers/forge!221
2018-02-18 09:10:39 +00:00
Seravy
7f2d2d6588 AI In danger threshold now configurable and can be random instead of being locked to always 4.
(As a player, I find the fact the AI always changes their behavior towards more defensive at exactly 5 life extremely abusable - I can always be 100% sure they won't block certain creatures or activate certain spells/abilties otherwise, and in many cases, if the AI already got down to 5 life, even if they do activate their big trump card, it's too late : the last 5 damage is way easy to deal.)

Used this for playing the past few days and it seemed to work without problems.
2018-02-18 10:08:29 +01:00
Agetian
b7601fded3 - Minor cleanup. 2018-02-18 11:59:10 +03:00
Seravy
602f761552 This should work? 2018-02-18 09:39:17 +01:00
Seravy
f271c7a74e Now the AI properly realizes this can be played, but doesn't actually play it.
Is there something that prevents it from playing things that destroy own tokens?
2018-02-18 09:39:15 +01:00
Seravy
c47242e40e fixed card name 2018-02-18 09:39:14 +01:00
Seravy
887f2f9a52 Mark Spirit Mirror and Breeding Pit tokens as things to sacrifice.
If Grave Pact is in play, activate Spirit Mirror to destroy own token and force enemy to sac a creature if possible.
2018-02-18 09:39:13 +01:00
Agetian
4665503caa - Minor cleanup and updating CHANGES.txt. 2018-02-18 11:29:02 +03:00
Michael Kamensky
f5e095f345 Merge branch 'cantblock' into 'master'
CantBlockBy as Static Ability

See merge request core-developers/forge!218
2018-02-18 08:05:59 +00:00
Michael Kamensky
d444e8896c Merge branch 'Fireslinger' into 'master'
Fireslinger

See merge request core-developers/forge!211
2018-02-18 07:36:27 +00:00
Michael Kamensky
935d42af74 Merge branch 'SuddenImpact' into 'master'
Force use of Sudden Impact during enemy draw step after drawing if enemy holds…

See merge request core-developers/forge!212
2018-02-18 07:34:03 +00:00
Michael Kamensky
b5ae52a3b6 Merge branch 'AiNonstacking' into 'master'
AI Nonstacking Permanents

See merge request core-developers/forge!222
2018-02-18 05:54:50 +00:00
Michael Kamensky
3215eb9a8a Merge branch 'CounterFromAbilityAI' into 'master'
Counter from ability ai

See merge request core-developers/forge!224
2018-02-18 05:49:09 +00:00
Michael Kamensky
f2ddd697e9 Merge branch 'AICuriosity' into 'master'
Ai curiosity

See merge request core-developers/forge!225
2018-02-18 05:47:57 +00:00
Michael Kamensky
2dc0e10c34 Merge branch 'TreasureTroveFix' into 'master'
AI Logic name in code and actual card scripts did not match. Assuming the…

See merge request core-developers/forge!228
2018-02-18 05:45:14 +00:00
Seravy
cf9e3a5f1d "Tap to deal X damage to target player" should be a priority target even if it's a defender or 0 attack creature 2018-02-17 22:58:45 +01:00
Hanmac
4528541b3f AiController: add orderSa for token and pump effects for Hero of Bladehold 2018-02-17 16:25:41 +01:00
Seravy
67f9be5d4d endswith->equals 2018-02-17 01:19:37 +01:00
Seravy
8650a147aa AI Logic name in code and actual card scripts did not match. Assuming the scripts (6 cards) are correct as no card uses the other name. 2018-02-17 00:46:32 +01:00
Seravy
99f64d7565 Add fear to evasion abilities 2018-02-16 12:34:35 +01:00
Seravy
32ef472b0c AI prefers evasion or "tap to deal damage to player" creatures to enchant with these. 2018-02-16 12:22:50 +01:00
Seravy
33554dd9cc changed order 2018-02-15 09:48:26 +01:00
Seravy
4dd73930e3 p->P 2018-02-15 09:40:28 +01:00
Seravy
af14c33e39 Fixed problems with previous commit 2018-02-14 22:26:54 +01:00
Seravy
7e9312a93c Added :
-Never play if would suicide, unless we are losing the game next turn anyway AND it results in a double KO
-If AI has the cards that work better on small hand, do play Price of Progress even if it doesn't deal good damage to the enemy. (important synergy within Tempest block with major tournament tier cards)
2018-02-14 21:39:49 +01:00
Seravy
4048ba18f3 Merge remote-tracking branch 'remotes/origin/AINecrologia' into PriceOfProgress 2018-02-14 21:34:24 +01:00
Seravy
3ed563d3f1 Force use of Sudden Impact during enemy draw step after drawing if enemy holds 4+ cards - there likely won't be a better chance, the AI does need enough untapped mana and the human player will likely play cards over time, emptying their hand.
TODO : Ideally, the AI should hold 4 mana untapped as soon as it has 4 lands in play, and play Sudden Impact ASAP if there are 4+ cards, before the human has a chance to use up any.

Note : This might be slightly suboptimal for decks where the AI is forcing the other player to draw, and thus might deal more damage if waiting, but considering cards that force draw are usually played before this due to their mana cost and timing, I don't think this will be a problem (if such AI decks even exist right now) - especially as using one now and another later is always better than only using one and those decks should have many copies.
2018-02-14 20:58:51 +01:00
Seravy
11aef9f054 Never use if would kill self by doing so 2018-02-14 19:52:20 +01:00
Seravy
556a8e7176 One more branch where it could pick the player so "avoidtgtP" needs to be added 2018-02-14 19:36:57 +01:00
Seravy
465066c04c Had to move this part to a new "AvoidTargetP" function - shouldtargetP is not absolute, the AI still targets the player if there is no better target move, but we want it to not use the ability instead. 2018-02-14 19:20:57 +01:00
Seravy
668eaa1a7c Orcish Artielly marked as self damage
Will now target players if granted Lifelink or equivalent even if otherwise would not - self damage is not a concern
Are there any other cards that need AILogic "SelfDamage" or Svar "LikeLifeLink" added? If you are aware of any, please add!
2018-02-14 18:20:04 +01:00
Seravy
0bed673340 Do not use Fireslinger on players if our life lower
Do prefer targeting the player if has a "when this deals damage to an opponent" trigger

Important : The AI should be able to recognize the ability stacks - if there are multiple cards that deal damage, they should be used to kill the target together. (for example, tap two prodigal sorcerers to kill a 2/2 creature!)
Unfortunately, I don't think I can implement this with my current knowledge.
2018-02-14 18:06:13 +01:00
Seravy
13f606999c Improved playing conditions 2018-02-14 16:32:50 +01:00
Seravy
b0677ca006 Merge branch 'DumpTurn' into PriceOfProgress 2018-02-14 16:14:22 +01:00
Seravy
22846db1a3 Dump/Setup game state will now save current game turn.
Needed to test cards and AI that care about how many turns it have been since the start of the game.
2018-02-14 16:13:44 +01:00
Seravy
c9b634a274 fixed order of operations 2018-02-14 14:09:18 +01:00
Seravy
c37a492cb7 Was in wrong file, moved 2018-02-14 13:27:17 +01:00
Seravy
92f663c753 AI for Price of Progress 2018-02-14 13:25:13 +01:00
Michael Kamensky
2dcf4b23b7 Merge branch 'AIDestroyAllInDanger' into 'master'
AI will activate ~DestroyAll~ abilities during combat if it would lose the game,…

See merge request core-developers/forge!206
2018-02-14 03:48:09 +00:00
Michael Kamensky
22b2f30ffb Merge branch 'AICoffinQueen' into 'master'
Will not untap Coffin Queen if already reanimating a creature

See merge request core-developers/forge!204
2018-02-14 03:46:50 +00:00
Michael Kamensky
9a7215a2a2 Merge branch 'AINecrologia' into 'master'
Ai necrologia

See merge request core-developers/forge!205
2018-02-14 03:44:30 +00:00
Michael Kamensky
6d4cc6efcb Merge branch 'bloodyCardTraits' into 'master'
CardTaits: make cardtraits inside LKI has the same id's as the in the original

See merge request core-developers/forge!197
2018-02-14 03:28:25 +00:00
Seravy
ead64864f4 Now it actually works and doesn't break the card.
Marked card AI playable.

Note : This also adds a new function to ComputerUtil,that checks if the AI is in danger of being killed, or if it has a same amount of life remaning - useful for future "pay life" AI decisions.
2018-02-13 18:07:51 +01:00
Seravy
8521387312 AI can play Necrologia 2018-02-13 17:40:03 +01:00
Seravy
3e5b47185e Special case for Null Brooch because it needs to be used even though its cost has a "discard". 2018-02-13 14:59:15 +01:00
Seravy
b5dbb7da90 Countering from abilities will have a 100% chance to get used, unless it costs cards to activate, otherwise normal counter settings are used.
This ensures the AI never wastes an opportunity to counter a spell if it does not cost him a card - holding a "tap to counter target spell" ability for later use is generally bad as the AI cannot determine if they need the mana later or not - but in most cases they don't.

Required for cards Null Brooch and Ertai Wizard Adept in Tempest quest world.
2018-02-13 13:57:30 +01:00