Agetian
d0b18e159b
- Minor formatting fix,
2017-07-09 14:32:25 +00:00
Agetian
6f320f2c77
- Fix imports.
2017-07-09 14:32:07 +00:00
Agetian
30e7c33f3e
- Improved Drain Life AI logic.
2017-07-09 14:31:28 +00:00
Agetian
bff2a6cad0
- AiAttackController: Switch to using CardCollection for attacker/blocker arrays, fixes the all-in overevaluation bug in a more elegant way and protects against potential duplicate entries in other places.
2017-07-09 05:59:40 +00:00
Agetian
3352c94a53
- AiAttackController: make sure that unblockedAttackers do not get added twice, which would result in the AI over-evaluating the potential attacker damage and becoming too confident in performing an all-in, resulting in a loss next turn.
2017-07-08 18:56:42 +00:00
Agetian
d17b3d4019
- Attempting to improve CountersPutAi when targeting the AI player itself (shouldn't try it if the AI player has no counters at all)
...
-TODO: isn't the inner condition check somewhat off too? (will currently attempt targeting every time eachExisting is false, even if the AI has no counters at all).
2017-07-07 18:16:20 +00:00
Agetian
2dd0267607
- Allow the AI to confirm a ChangeZone event with unpreferred targeting if its AI Logic is set to Always.
2017-07-07 17:33:07 +00:00
Hanmac
02d9c8e996
SpecialCardAI: move some Ugin logic to prevent ChosenX not found warning
2017-07-07 13:14:57 +00:00
Hanmac
edd05062d2
ComputersPutAi: more generic way to check for Land Animation
2017-07-05 08:37:02 +00:00
Myrd
78e7212ebc
fix compile
2017-07-05 01:59:58 +00:00
Agetian
6069ec7c80
- Fixed CountersPutAi for Curse abilities on opp's cards like Torture.
2017-07-04 15:34:21 +00:00
Hanmac
b4b19d7e60
DamageDealAi: fixed unlikely equals
2017-07-04 08:59:25 +00:00
Agetian
a209287b78
- AI should obey ActivationLimit on mana abilities such as Wall of Roots.
2017-07-03 03:41:10 +00:00
Agetian
25d885a96a
- Fixed attachment IDs not cleared between game sessions created via applyGameOnThread, which caused attachments to be incorrectly positioned on cards in puzzle mode when running the puzzle for second and all subsequent times.
2017-07-02 13:21:28 +00:00
Agetian
b9e604e600
- Support setting a specific card set in game states using |Set:XXX syntax.
2017-07-02 10:16:13 +00:00
Agetian
ce5b4e1fad
- Support Transformed creatures in the game states.
2017-07-02 07:44:57 +00:00
Agetian
99a808ae10
- When setting up game state, ensure that all cards are unequipped/unattached from whatever default cards they could have been assigned to by the AI.
2017-07-02 04:32:06 +00:00
Agetian
9c316b2c85
- Added AI logic for Bonds of Faith (used in PConq), marked the card as AI playable. Currently a non-generic, card-specific logic.
...
- Moved both Bonds of Faith logic and Guilty Consicence logic from AttachAi to SpecialCardAi until generalized.
2017-07-01 10:11:39 +00:00
Agetian
b3e96da2e2
- For Multikicker cards, AI should bail if the original cost was {0} and no multikicker was paid (e.g. Everflowing Chalice).
2017-06-28 16:53:10 +00:00
Agetian
231131dcd3
- Revert back to announcing AI Multikicker in ComputerUtilMana (might play better with non-permanent multikicker cards).
2017-06-28 03:26:11 +00:00
Agetian
a820bf1c4a
- Attempting to fix a NoSuchElementException in ChangeZoneAllAi when no opponent can be legally targeted with an ability.
2017-06-28 03:03:01 +00:00
Agetian
4a1a314cfd
- A better place for the AI announce of Multikicker.
2017-06-27 18:31:26 +00:00
Agetian
247f8f5be1
- Integrating the zone restriction check as a mandatory part of SpellAbility#canTarget.
2017-06-27 16:35:49 +00:00
Agetian
934683f4d5
- Added simple AI blocking logic against Afflict.
...
- Used getNetXXX instead of getCurrentXXX in several places in the code for more precise P/T AI prediction.
2017-06-27 12:51:16 +00:00
Agetian
1ea54bcd45
- Reverted previous commit (doesn't work as intended).
2017-06-27 03:38:23 +00:00
Agetian
6a43403d6c
- Better fix for the AI cheating with X values on replay (fixing the cause and not the effect).
2017-06-27 03:09:29 +00:00
Agetian
3e8059db10
- Prevent the AI from cheating with PlayEffect and spells with X in their mana cost, replaying them with X > 0 (currently the AI won't replay such spells without paying their mana cost, since the play will most often be suboptimal anyway at X=0).
2017-06-26 18:58:47 +00:00
Agetian
ef38f82d1e
- Added a way for the complex unless cost to specify a fallback ability that fires when neither unless cost ends up being legally playable.
...
- Made it possible for the AIPreference card parameter to specify multiple cost preferences using the standard pipe delimiter.
- Made the complex unless cost in ChooseGenericEffect a little more generic (TODO: we need to generalize it using a "can pay" check of some kind to make the logic both simpler and more universal).
2017-06-26 11:30:59 +00:00
Agetian
b878a93d40
- Added a way to define card-based AI priority for paying the Remove Counter cost.
...
- Set the AI priority for Power Conduit to ANY to avoid the AI lagging heavily while looping through the cost and spamming the console with errors.
- Currently the AI will use this card rather randomly. Consider improving or marking it as RemRandomDeck at the very least.
2017-06-25 16:47:17 +00:00
Agetian
53e291c9bc
- Consolidate Sarkhan the Mad specific AI logic in SpecialCardAi until it is generalized.
2017-06-25 15:26:48 +00:00
Agetian
88304beb1b
- Added an additional zone check for ChangeTargetsEffect/ChangeTargetsAi so that it's impossible to retarget a spell targeting something only in the graveyard/exile/etc.
...
- Most likely the zone check should be a mandatory part of SpellAbility#canTarget, but that has too much breaking potential, so I'll test it post-release.
2017-06-25 03:10:34 +00:00
Agetian
8a7f7bef03
- Added an AI logic for Sarkhan the Mad ultimate.
2017-06-24 18:18:35 +00:00
Agetian
174444e3b5
- Allow Sarkhan the Mad AI to use the 0 ability as a source of card advantage when Sarkhan is low on loyalty.
2017-06-24 14:06:26 +00:00
Agetian
adefa11d3a
- Minor formatting fix.
2017-06-24 13:33:48 +00:00
Agetian
dd897bef84
- More formatting.
2017-06-24 13:10:17 +00:00
Agetian
96b338ddd0
- Code formatting and import fixes.
2017-06-24 13:09:14 +00:00
Agetian
378d2fbbc6
- Added simple logic for Sarkhan the Mad to make the AI able to use it to produce 5/5 flying dragon tokens out of its own creatures.
2017-06-24 13:07:46 +00:00
Agetian
ae149ac913
- Better place for the oppList isEmpty check in Donate AI.
2017-06-22 20:15:36 +00:00
Agetian
2097d2207b
- Fixed Donate AI crashing if all opponents have hexproof.
2017-06-22 19:53:21 +00:00
Agetian
84c7b501c4
- Fixed an occasional comment corruption.
2017-06-22 09:15:55 +00:00
Agetian
379273e2b4
- AI should announce multikicker value for cards like Bloodhusk Ritualist to work correctly.
2017-06-22 09:15:20 +00:00
Hanmac
e29ec6fb83
GameActionUtil: add getOptionalCostValues to return OptionalCost with its Cost objects
...
SpellAbility: add canPlayWithOptionalCost
PlayerControllerHuman: got formated
2017-06-21 04:23:30 +00:00
Agetian
ce4cfd11bb
- Added AILogic$ ConsiderSac to Heart-Piercer Manticore, updated the logic not to sacrifice creatures with power 0 to it or valuable creatures unless lethal damage can be dealt to player (is CreatureEvalThreshold too permissive/restrictive? could stand to be improved, most likely).
2017-06-20 12:53:37 +00:00
Agetian
927575fbfa
- PumpAll AI should respect AIPreference:SacCost if specified.
...
- Specified a basic AIPreference for Maw of the Obzedat, marked it as AI playable.
2017-06-19 04:58:32 +00:00
Agetian
ecb5ea3c6a
- A minor clarification / formatting fix.
2017-06-18 09:56:54 +00:00
Agetian
c35f7f00f6
- Several fixes and improvements to PlayAi ReplaySpell logic, now compatible with cards like Wrexial, the Risen Deep.
2017-06-18 09:54:08 +00:00
Agetian
cc3442780f
- Reverted previous commit.
2017-06-17 19:17:05 +00:00
Agetian
09d74513f4
- Another tweak in ChooseTypeAi.
2017-06-17 19:16:29 +00:00
Agetian
9ca6400d0a
- A couple more tweaks in ChooseTypeAi.
2017-06-17 19:14:30 +00:00
Agetian
2f466fccfc
- A better strategy for Mirror Entity Avatar (more conservative / more aggressive depending on conditions).
2017-06-17 19:01:03 +00:00