Commit Graph

122 Commits

Author SHA1 Message Date
Vittorio Alfieri
617ce45dbc Improved implementation for isCommander and RingBearer card status (now they are no longer basic abilities but inner card properties in order to avoid conflicts with abilitiy modificators), added a white border on commanders to highlight them during match in the various game zones. 2023-07-01 16:28:19 +02:00
Vittorio Alfieri
f9bcaf53c2 Added / fixed primitives from NEO set, improved Android downloader for token images, fixed a problem with castcard copied option for permanents, fixed a bug on colorless mana calculation for AI during combo. 2023-06-20 17:29:44 +02:00
Eduardo MG
84c9667c71 Reduced sacrifice efficiency for AI. Bug fixes in primitives
The AI is too willing to sacrifice permanents.
The AI sometimes doesn't use a Planeswalker ability, increasing efficiency.
Gonti, Lord of Luxury. An effect that instructs you to "cast" a card doesn't allow you to play lands.
Rona, Tolarian Obliterator exra )
Oblivion Strike
Steel Seraph
True Love's Kiss
2023-05-15 20:10:42 -06:00
Vittorio Alfieri
6ef8b45709 Implemented "Battle" type from MOM set (they are like planeswalkers), added some new primitives from MOM set, fixed some primitives targeting any target. 2023-05-11 15:57:08 +02:00
Vittorio Alfieri
f9da0c3a1e Fixed a crash on random avatar AI selection. 2023-04-20 13:28:44 +02:00
Vittorio Alfieri
fbcb1feb88 Fixed primitives, fixed "proliferate" target chooser, improved "cycled" and "discarded" triggers, added new keywords "pcycledcount" and "ocycledcount" to calculate how may cards have been cycled this turn from a specific player, added new menu choices to instantly select/deselect and confirm all the possible targets (in any zone) during the target selection of an ability (e.g. Proliferation ability can target a lot of permanents and players so using that menu choice all the targets will be instantly chosen and then the current player will be able to remove any of them or confirm the entire selection). 2021-10-13 17:39:48 +02:00
Vittorio Alfieri
fd76775923 Fixed a bug on deck choosing menu when an AI deck has no avatar image (it will be used "baka.jpg"), added new default avatar images for AI decks (up to 200), fixed "_PROLIFERATE_" macro and fixed all primitives with "proliferate" ability, improved the "proliferation" keyword for target chooser in order to avoid targeting permanents or players without counters and/or with some protections (e.g. hexproof, shroud and similar). 2021-10-08 23:01:37 +02:00
Vittorio Alfieri
9dabf121d3 Fixed primitives, changed type of "isFlipped" card variable from bool to int and fixed a related bug on targeting cards with "isFlipped" attribute, improved "disturb" ability (now fi you counter a card casted with disturb it correctly goes to exile), added "decayed" ability, added two new zone alias "mycommandplay" and "opponentcommandplay" for targeting Battlefield and CommandZone at the same time. 2021-09-06 17:31:36 +02:00
Vittorio Alfieri
001cea95bd Added/fixed primitives, updated the "missing_cards_by_sets" folder, fixed several crash on Commander Format, fixed a possible crash using "and!()!" with "imprint", added a new macros "_REBOUND_" and "_GOAD_" related to rebound and goad abilities and refactored all cards using them, implemented a new keywords "haunt", "hasprey", "preyname" and "isprey" related the haunting ability and improved all cards using it, Added "commander" and "\*" to HINT castpriority for AI decks in order to allow the user to give a cast priority to commanders. 2021-09-02 19:32:45 +02:00
Vittorio Alfieri
bbc25e2727 Added/fixed primitives, Improved AI: now it can plays cards using morph cost too. 2021-08-25 15:30:44 +02:00
Vittorio Alfieri
c978223b10 Updated changelog with last 3 years of modifications (issue #1067 by @remigiusz-suwalski), added tokens in ELD set, improved Android downloader for ELD set, fixed primitives with "asflash" ability, improved all cards with adventure: now they become instants or sorceries in stack to activate the correct trigger (e.g. with Magecraft combos), added "nomovetrigger" ability for all the "fake" cards (e.g. cards which are simple abilities) in order to don't trigger any event on their cast since they are not real cards. 2021-08-23 02:18:04 +02:00
Vittorio Alfieri
2ca03bb1f0 Fixed Muxus, Goblin Grandee and fixed Liliana, the Last Hope, added conjure keyword for J21 set, added perpetual counters and abilities for J21 set, improved imprint keyword, improved moverandom keyword for J21 set. 2021-08-04 12:33:28 +02:00
Vittorio Alfieri
849194b8da Added/fixed primitives, removed deckmaster.info source from Android downloader, fixed HTR18 set, fixed "menace" blocking issue from AI, improved Graft ability from AI, fixed hangs on Offering costs for both human and AI, added a new keyword "ishuman" to distinguish if a card controller is human or AI (e.g. on Graft trigger), fixed a possbile hang on negative manacost payment. 2021-07-21 10:51:13 +02:00
Vittorio Alfieri
79716a4533 Added a new rule to flip back modal dual face card on each phase and after each action, fixed "Aladdin's Lamp" and "Turntimber Symbiosis" primitives, allowed the AI to play back side of modal dual face cards, improved the "doubleside" keyword to flip modal dual face cards, improved filters to target flipped cards using the "isflipped" keyword, fixed a crash when zone pointer was null in GameObserver::logAction method. 2021-04-28 17:03:29 +02:00
Vittorio Alfieri
8b358b3d1c Fixed a bug: AI does not have to use the doubleside ability to avoid loops. 2021-04-27 17:44:41 +02:00
Vittorio Alfieri
37ce334688 Added TSR and HA4 sets, added/fixed primitives, improved Android downloader, fixed a crash when AI pays a Convoke alternative cost, fixed a random crash on Windows when opening zip files, fixed a random crash in destroy ability method (e.g. blasphemous act). 2021-03-09 19:07:31 +01:00
Vittorio Alfieri
c8f763173d Improved AI: now during opponent's turn it will not search just for instant cards from hand but it can also play cards with "flash" ability from all the other available zones (e.g. "flash" cards from graveyards which have "canplayfromgraveyard" of Flashback and/or Retrace cost). 2021-02-23 12:59:22 +01:00
Vittorio Alfieri
81d4b3d84f Improved AI: now it can plays cards using alternative cost too, fixed thisturn restriction in some primitives. 2021-02-22 19:16:54 +01:00
Vittorio Alfieri
d3379c9c08 Fixed a crash when AI try to activate a combo (caused by new ANYTYPEOFMANA management), fixed the Visual C++ project file descriptor, fixed ELD set DAT file, improved Andorid downloader, fixed primitives. 2021-02-19 18:50:25 +01:00
Vittorio Alfieri
17d6860505 Improved AI: now it can cast spells from graveyard using thier Flashback and Retrace costs, fixed a crash in Deck Editor stats loader when a card ability contains some "add" substrings (e.g. "counteradded" followed by "restriction{"), added/fixed primitives. 2021-02-18 12:48:59 +01:00
Vittorio Alfieri
bc9142ad6e Improved AI: now it can activate abilities of cards in all zones such as commandzone, hand, graveyard and exile using the keywords "autohand", "autocommandzone", "autograveyard" and "autoexile" just as normal Human player does. 2021-02-17 15:31:31 +01:00
Vittorio Alfieri
eb8da4d4b2 Fixed issue #1054 (opened by @ranger7271), fixed/added primitives with "scry" ability, improved scry ability for both Human and AI player, added a new ability to replace the scry ability with some actions (e.g. Eligeth, Crossroads Augur). 2021-02-08 17:08:20 +01:00
Vittorio Alfieri
2ff2d4ac79 Added/fixed primitives, improved "anytypeofmana" ability for both player and AI and implemented "anytypeofmanaability" keyword to allow the user and the AI to spend mana of any color to activate abilities. 2021-01-15 18:25:38 +01:00
Vittorio Alfieri
69885cf90a Added/Fixed primitives, improved PAYZERO rule for commandzone. 2021-01-11 16:53:14 +01:00
Vittorio Alfieri
1444ed6b7c fixed bug causing AI never play a card there are one or more cards in graveyard or other zones, fixed and improved removemana ability, fixed/added primitives. 2020-12-30 17:52:06 +01:00
valfieri
7c696ac213 Improved Commander format card selection rule, added new keyword
"autocommandzone=" to trigger abilities from Command Zone (e.g. Commander Ninjutsu), added/fixed some primitives, added a new GUI Button to show Player's Sideboard.
2020-12-08 20:48:11 +01:00
valfieri
ced2c85076 Implemented Commander mode and rules, added Command Zone to game, added/fixed primitives, increased the major release version. 2020-12-06 20:11:51 +01:00
valfieri
2c62cfd487 replaced tabs with 4 spaces. 2019-09-06 08:31:39 +02:00
Eduardo
06cb835a5b Teaching AI proliferate and shocklands
Some minor changes, corrections to XLN and C17, changing name of game mode from horde to tribal wars
2019-05-01 17:00:48 -05:00
Eduardo
5db6b807ba Set limited game mode, AI changes, primitives and _cards.dat corrections
New set limited ,where you get a deck two random sets.

Still playing with the AI values and hueristics.

Cards fixes. Masters Edition should be named ME1 and the Mythic Edition is MED, the cards multiverse ids are still the same so the decks and references should not change.
2019-04-20 15:51:52 -05:00
Eduardo
3dfcc65fa6 Bug fix for the biggest crash and fixes to the primitives
I figured a while ago that the cause of the crash was a rendering issue, not an engine issue, since you could copy spells in the stack if you didn't targeted them. The crash was most likely in ActionStack, just had to follow the trace. It doesn't affect anithing else, that line was trying to render something in the stack that's a permanent but it always had bad ptrs.
2019-04-17 20:28:43 -05:00
Eduardo
ab1fbaa806 New game modes, bug fixes in primitives, improving AI, new planeswalkers type rule
New rules based on vanguard, 3 new random game modes, one is tribal and one uses any card in the game.

Several corrections and bugs fixes. Cards with x in their cost and that can target any player used to crash the game.

Teaching AI new things and changing values of efficiency.

You can have multiple "Jace" planeswalkers, you can't have two of the exact same name (no two Jace, the mind sculptor).
2019-04-14 19:57:01 -05:00
Anthony Calosa
030dca051a support for wish cards and deck sideboard 2017-03-07 23:42:34 +08:00
Anthony Calosa
38e97aa79f fix etched affinity stalling the game
add an alias for glimmervoid and removed the hold combo hint for
glimmervoid, just tried etched affinity vs etched affinity on demo for
50 games... it doesn't stall anymore. it seems there's a conflict
somewhere parsing hint combo? not really sure... also in momir the ai
don't click choose a color command, noticed on lotus cobra so i changed
the chooseacolor to abilty$! add{mana} ...
2017-03-06 17:52:44 +08:00
Anthony Calosa
f205de7205 minor fix 2017-03-04 09:15:50 +08:00
Anthony Calosa
8437467320 refactor revealed efficiency
it's based now on actual aicode if it's available.
2017-02-23 14:10:27 +08:00
Anthony Calosa
bb9d98cc0c AI ignore sphinx of jwar isle 2017-02-20 23:23:13 +08:00
Anthony Calosa
6c28496dd8 reduced efficiency 2017-02-16 00:42:54 +08:00
Anthony Calosa
722056e78a moved this 2017-02-13 10:43:22 +08:00
Anthony Calosa
3776bff594 add effeciency to use the reveal ability
aicode overrides this on resolve and it seems most cards that have this
has possitive effect
2017-02-11 22:04:20 +08:00
Anthony Calosa
7029636291 some corrections 2017-01-31 04:16:47 +08:00
Anthony Calosa
d03ebdace8 Support for KLD and AER
Kaladesh & Aether Revolt
2017-01-18 22:13:51 +08:00
Anthony Calosa
6d72753216 OK quad and COMBATTOUGHNESS for attackers/blockers
support doubled res for OK quad, AI should consider toughness as power
if it has COMBATTOUGHNESS ability
2016-07-22 15:38:38 +08:00
zethfoxster
bb9e02da6b fixed a debug assert i introduced. 2016-07-20 18:58:29 -04:00
zethfoxster
7c163592b5 removed the changes I made to selectAbility and created a new function which handles sending an ability and card to have AI do the ability of that card.
found a selectability call after blockers that was the cause of a race condition debug assert, but most importantly, the reason AI would sometimes block a creature, then immediately decide not to block. causing it to sometimes take preventable damage, and sometime cause AI to stack a ton of blockers on a single card even tho it did not have a chance to actually kill the creature.
this is still a thing, but wont happen so grossly incorrect now.
2016-07-19 20:16:22 -04:00
zethfoxster
6316577ec7 taught AI basic attack and block cost.
added functionality to send specific abilities to AI "selectAbility" to have it find mana, targets, and use a selected ability at our command.
2016-07-18 22:03:16 -04:00
zethfoxster
4e9d4bfaf6 minor changes to ai 2016-07-17 02:19:58 -04:00
zethfoxster
542845667a stupid case for travis 2016-07-16 15:59:45 -04:00
zethfoxster
01fd8fa406 recoded cascade, the logic was incorrect. also the ability was coded incorrectly. ALL the cards get exiled, then placed on the bottom, the card that cost less is also exiled then MAY be cast otherwise its placed in the library bottom with the rest.
I also now tell AI to ALWAYS use cast card if available. as the effects are always better.
2016-07-13 23:57:30 -04:00
zethfoxster
f438548e5c teaching ai to select X on the menu again. 2016-07-11 23:46:03 -04:00