Commit Graph

2085 Commits

Author SHA1 Message Date
Hanmac
fadb09fca5 ComputerUtilCost: checkRemoveCounterCost allow Zero Loyality Abilities 2016-10-14 19:39:08 +00:00
Hanmac
8e220c866a MillAi: rewrote AI to work with multiple opponents
also try not to mill zero cards or itself
that should fix some cards
2016-10-14 15:20:00 +00:00
Hanmac
99bdf33774 SrcyAi: rewrote ScryAi to use new SpellAblityAi logic
add logic for Brain in a Jar
2016-10-14 10:55:18 +00:00
Hanmac
e690bdb3aa ComputerUtilCost: checkRemoveCounterCost now uses SpellAbility too
should not try to remove zero counters if its from Source or if PaymentDecision says zero
AiController: also remove getOpponent
2016-10-14 07:35:28 +00:00
Hanmac
94431e308c ComputerUtil: for CardPreference, don't use random, try to choose the worst card 2016-10-14 07:28:06 +00:00
Hanmac
5fb917e62b ManifestAi: rewrote it to use new SpellAbilityAi logic
also add some logic if ai can see its top card
2016-10-13 11:29:24 +00:00
Hanmac
60221cd5a7 AttachAi: add checks for canBeEnchantedBy and canBeEquippedBy 2016-10-12 13:30:12 +00:00
Myrd
085d752460 Optimize doesCreatureAttackAI() by not simulating combat each time the question is asked. Instead, cache the Combat object and only reset each time we're choosing which ability to play.
This speeds up games that have lots of creatures as before this change, the combat simulation would be done multiple times redundantly.
2016-10-09 22:34:43 +00:00
Hanmac
bda4379e8b ChangeZoneAi: improved SameName for Declaration in Stone
for evaluate the creature lists, need to check them per opponent.
also add checks for isTargetableBy
2016-10-09 18:11:20 +00:00
Hanmac
e3d0e6ebfe ComputerUtilCard: add evaluateCreatureListByName 2016-10-09 17:23:06 +00:00
Agetian
2cd7016703 - More changes related to supporting negative power and toughness, please test to see this doesn't break anything.
- Fixed some visualization issues in the deck editor related to supporting negative P/T (e.g. non-creatures showing up as P/T 2 billion+ / 2 billion+).
2016-10-09 12:05:55 +00:00
excessum
401dba1596 - Implemented AI for Declaration in Stone 2016-10-09 05:42:26 +00:00
Agetian
0c4e63d628 - Minor stylistic fix. 2016-10-08 16:11:45 +00:00
Agetian
01b10f2875 - Properly consider Trample damage for non-pumped blocked creatures in the previously committed routine. 2016-10-08 16:11:04 +00:00
Agetian
537c79493f - AI Pump logic update: try to determine if pumping a creature for more power will give lethal on board considering all unblocked creatures after the blockers are declared in the Declare Blockers step. 2016-10-08 16:07:31 +00:00
excessum
4ca1fc3911 - Fixed bug from r32304 2016-10-08 13:45:40 +00:00
excessum
bdae06573b - Implemented AI for Die Young and changed it to Sorcery 2016-10-08 13:08:56 +00:00
excessum
43840198ec - Updated PumpAi 2016-10-08 12:31:11 +00:00
excessum
66b59a1bb5 - Minor fixes for AnimateAi 2016-10-08 12:21:33 +00:00
excessum
1eb9fa375e - Separated vehicle crewing logic between "canPay" and "canPlay" 2016-10-08 06:14:44 +00:00
excessum
8fbfea317a - Updated AnimateAi 2016-10-08 02:43:41 +00:00
Hanmac
737fae947d PumpAiBase: updated isUsefulCurseKeyword to remove getOpponent
refactor Combat related stuff, for AI attacking, the card's controller need to be the one attacked.
2016-10-07 08:23:20 +00:00
Agetian
cb9f92d419 - Kozilek's Pathfinder AI improvement: the AI should not consider the "target creature can't block CARDNAME this turn" ability if the source of the ability is tapped and not attacking. 2016-10-06 20:24:34 +00:00
excessum
c88cb274ae - Implemented AI for "can't block CARDNAME this turn" abilities (eg. Kozilek's Pathfinder) 2016-10-06 02:40:43 +00:00
excessum
b962bc9ca6 - Stopped AI from crewing vehicles with stronger or equal (ie. crew vehicle with another copy of crewed vehicle) creatures 2016-10-06 02:25:15 +00:00
Agetian
ff89390820 - Reverted r32268, doesn't work nearly as well as expected (main problems: if nothing is sacrificed, the creature still gets counters; the AI will happily sac a much more powerful creature instead of deciding not to sac anything if it has e.g. one other creature on the battlefield). 2016-10-05 10:10:06 +00:00
Agetian
4496371a75 - Attempted to fix Harvester Troll AI, currently by adding an extra AI logic parameter that makes the AI skip the ETBing card itself when considering what to sacrifice.
- This should ideally be somehow generalized (e.g. somehow detect that an ability is an ETB ability which is either optional or has other possible targets?) and automatically work for all creatures that have an ETB sacrifice ability. A more generic solution would be highly appreciated.
2016-10-05 09:07:03 +00:00
Hanmac
396f3d4096 DamageDealAI: fixed source for Energy Counter 2016-10-04 12:37:25 +00:00
excessum
04fd286627 - Implemented AI for Harnessed Lightning 2016-10-04 12:20:24 +00:00
excessum
2ecfa4259d - Re-factored Vehicle animation logic into ComputerUtilCost.canPayCost() 2016-10-03 12:30:46 +00:00
Hanmac
28fd48e8d2 ComputerUtilCombat: canCrew now checks if the creatures can crew a vehicle, also use CardLists functions to clean up the code 2016-10-03 08:09:48 +00:00
Sol
76c4a7725e - Add very basic logic for Divine Reckoning 2016-10-01 02:26:17 +00:00
Hanmac
31156aa0d6 ComputerUtilCombat: for predictPowerBonusOfAttacker and predictToughnessBonusOfAttacker, add check if Cost of trigger can be paid 2016-09-30 13:36:21 +00:00
excessum
7541a56216 - Stopped AI from using bounce trigger for Aviary Mechanic 2016-09-27 11:50:04 +00:00
Agetian
96ee283980 - AI should only consider untapped vehicles when deciding whether the human player can crew them. 2016-09-27 06:08:16 +00:00
Agetian
38be322177 - Improved Crew AI (will now test if the defending player can actually crew the vehicle) 2016-09-27 05:18:33 +00:00
Krazy
ad1696fde2 [maven-release-plugin] prepare for next development iteration 2016-09-26 21:28:01 +00:00
Krazy
66615a683f [maven-release-plugin] prepare release forge-1.5.56 2016-09-26 21:27:49 +00:00
Hanmac
b5d7e071eb AiController: canPlaySa add check if the mana cost is zero, but the card cost does contain X
should not play this spell for free.
2016-09-26 20:11:47 +00:00
Sol
cbaa40d499 - Adding AI for Combustible Gearhulk based upon known information.
- Adding current Energy count to payenergy cost
2016-09-23 14:36:21 +00:00
Sol
c9260215c3 - Added Eager Construct 2016-09-22 13:59:49 +00:00
Sol
e63a0b3bcf - KLD Fixes (incl. small change to "can't crew Vehicles" to match Revoke Privileges text) 2016-09-21 18:53:27 +00:00
Hanmac
990df333a5 ChooseGenericEffectAi: add more logic for Fabricate.
now if the creature has haste/can attack, it does check if it can attack and would survive that
also add Special Logic for "Marionette Master" and "Cultivator of Blades",
they should react different depending on how much artifacts or creatures are on the battlefield
2016-09-18 11:46:17 +00:00
Hanmac
c0f7ea2983 CostTapType: for Crew add Keyword "CARDNAME can't crew a vehicle",
now the cost does check that the creatures does not have this.
2016-09-18 05:01:39 +00:00
Sol
4ecf85d505 - AI can now activate crew 2016-09-18 02:04:16 +00:00
Hanmac
4204334359 ChooseGenericEffectAi: add logic for Fabricate
in most cases it should prefer tokens if able
2016-09-17 07:05:14 +00:00
Hanmac
a52ae52b6a TokenAi: spawnToken now can return the token even if the toughness says it would not survive 2016-09-16 06:28:32 +00:00
Hanmac
8247310cc0 ComputerUtilCombat: add Melee boost for toughness too 2016-09-11 23:58:59 +00:00
Hanmac
9bfe889f6f GoadAi: add new class for doing the Goad target logic 2016-09-11 23:45:57 +00:00
Hanmac
22fe323c5c ComputerUtilCombat: try to fix Bonus by Melee (at this state it doesn't know how many player it will attack if any) 2016-09-11 01:57:02 +00:00