Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AI will use enchantments to give non-stacking abilities to creatures that already have them #264

Open
GoogleCodeExporter opened this issue Feb 2, 2016 · 14 comments

Comments

@GoogleCodeExporter
Copy link

Even if a creature already has a have/not have type ability like lifelink
or trample, the AI will go out of its way to play an enchantment that
gives it to this creature.
Example : Caravan Hurda has Lifelink. The AI may play vampiric link on it
even if other cards without lifelink are present.

The attached file reproduces the problem.

The suggested fix is : when considering playing an enchantment that gives
an ability, check whether the intended target already has it or not.

Original issue reported on code.google.com by jean.cha...@gmail.com on 22 Dec 2009 at 2:38

Attachments:

@GoogleCodeExporter
Copy link
Author

Original comment by jean.cha...@gmail.com on 22 Dec 2009 at 2:39

  • Added labels: Priority-Low
  • Removed labels: Priority-Medium

@GoogleCodeExporter
Copy link
Author

lifelink is a borderline example, as until July it was an ability that stacked 
(although wagic never handled that correctly).
I wonder about deathtouch (should it kill the creaure twice? Forcing, for 
example, 
that creature to regenerate twice ?).

So, the first step would be to make sure all abilities defined in Wagic are not 
supposed to stack. Once this is made clear, the fix sounds pretty 
straightforward, I 
guess...
(probably not that easy to implement though given the way it works in wagic... 
what 
about an effect that gives +1/+1 AND Lifelink to a creature that already has 
lifelink ?)

Original comment by wagic.the.homebrew@gmail.com on 22 Dec 2009 at 6:12

@GoogleCodeExporter
Copy link
Author

I think we'll need a way to differenciate stacking and non-stacking abilities...
Then it depends how the AI chooses to play or not an enchantment and its target 
; if
it's a standard weight system, it's enough to negate the weight of the ability 
for
it to work properly. But if it's more like random, I think it's generally 
better to
not play it than play it - I think we have more cases when it shouldn't be 
played
than cases when it should. I mean, there are like more cards that give the 
ability
only than the ability and bonuses no ? And we'll miss out on the card only if 
all
creatures already have the ability (which in turn increases the probability of 
there
being a better use for the mana). Well, it's my feeling that we'll waste way 
more
often than we'll miss out.

Original comment by jean.cha...@gmail.com on 22 Dec 2009 at 7:05

@GoogleCodeExporter
Copy link
Author

if and when a system for this is put in place, we might want to allow the Ai an 
option to use the card IF theres only 1 creature on the battlefield to use it 
on, for cards that contain trigger or bonuses the Ai could benifit from. if its 
made to not use a card simply because the possible target already had a ability 
it granted, it could end up crippling the Ai even further.

Original comment by omegabla...@gmail.com on 29 Aug 2010 at 3:05

@GoogleCodeExporter
Copy link
Author

this is a double edged blade, i would consider this for closing..
ai stacks cantattack on a creature...consider this, you have a disenchant...now 
you disenchant...ai is screwed...had it been allowed to cast 2 "cantattacks" 
you would have to have 2 disenchants to be able to attack. until we have min 
max, this bug report should be considered invalid.

Original comment by omegabla...@gmail.com on 27 Jan 2011 at 2:40

@GoogleCodeExporter
Copy link
Author

I strongly disagree with this.
Granted, there *are* situations where it can come in handy.
They also are overwhelmingly rare compared to the cases where the AI using it 
mistakingly.

There are 1% of the time where it's useful, that should not mask the fact that 
it's idiotic 99% of the time.

Original comment by jean.cha...@gmail.com on 27 Jan 2011 at 3:11

@GoogleCodeExporter
Copy link
Author

i disagree with YOUR comment :) i play heavy control and heavy removel, if you 
play against me you will be hit so hard with disenchants, swords of plowshare, 
control steals, ect that you would WISH you had "cantattack"'ed my creature 2 
times in a row...

its COMPLETELY reflective of your playstyle, against me its not "idiotic 99% of 
the time"...becuase i run heavy on removel....chances are judging purely by 
your comment, you are completely opposite...to someone that runs heavy 
creature, or pure aggro, yes it would seem "idiotic 99% of the time"...

Original comment by omegabla...@gmail.com on 30 Jan 2011 at 2:21

@GoogleCodeExporter
Copy link
Author

a worse bug then this that isnt even listed in the issues is that ai function 
"getPotentialMana" only allows ai to see the very first mana abilities present 
on a card...so it sees cards such as lotus petal purely as a "green" mana 
source...that function completely locks ai out of ever using mana producers 
that can produce more then one type of mana...and there are MANY...i would say 
duel mana, multimana producers are the only way to build any kind of multicolor 
successful deck...

Original comment by omegabla...@gmail.com on 30 Jan 2011 at 2:24

@GoogleCodeExporter
Copy link
Author

No that's not what I mean.
It's useful ONLY when you play against ONE particular type of deck which 
happens to be one you like, and even so it's not useful very often. It's still 
useless when the creature has the effect in the text card. It's still useless 
to put that second trample on the same 1/1. It's still useless against a 
fireball deck. It's still useless against a deplete deck. It's still useless 
against a heavy enchantment deck. It's still useless against a deck with a lot 
of little creatures.

It's useless in just any situation I can think of. Sure you can find specific 
decks where it may happen that occasionally it may come in handy. This is the 
1%.

At the time being, the AI is hurting itself a lot by this problem. Much, much 
more than it is helping itself, and that is even against the specific case of 
your deck.

Original comment by jean.cha...@gmail.com on 30 Jan 2011 at 2:35

@GoogleCodeExporter
Copy link
Author

after some serious thought and obseravtion i think that until we find a better 
solution for this issue, i want to add checks to the ai which will prevent it 
from attempting to stack abilities...paralize 3 times on a single creature is 
never a good idea. meanwhile im stomping ai with the uneffected creatures while 
it keeps in slapping more stuff on the same card. it always seems to be the 
first creature on the battlefield too...its like every time it decides thats 
the one that should have the aura slapped on...
i have to say i finally agree with you here jean, i would much rather have 3 
creatures on my field paralize and "disenchant" 2 of them, then have all 3 
paralizes on a single card and just use that card as a sacrifice cost payment...

Original comment by omegabla...@gmail.com on 19 Apr 2011 at 11:21

@GoogleCodeExporter
Copy link
Author

this will also include not giving cards with defender or cantattack abilities 
like "fear" and "shadow" which is retarded to do so....

Original comment by omegabla...@gmail.com on 19 Apr 2011 at 11:22

@GoogleCodeExporter
Copy link
Author

In response to the original post, Vampiric Link is actually a poor example -- 
Vampiric Link does not give the creature Lifelink (the keyword ability, which 
is a static ability that does not stack, and causes the creature's controller 
to gain life); rather, Vampiric Link itself has a triggered ability, that is 
not keyworded, that causes Vampiric Link's controller to gain life, and which 
does stack with Lifelink and with multiple instances of itself.

So if I enchant my own creature that has lifelink with Vampiric Link, I will 
gain twice as much life as the damage the creature deals, once at the same time 
as the damage (static effect from lifelink), and once just afterward (triggered 
effect from Vampiric Link).
If I enchant my opponent's creature that has lifelink with Vampiric link, each 
of us will gain as much life as the damage the creature deals. My opponent will 
gain his life first, then I will gain mine just afterwards.
I am pretty sure that when they changed the rules for lifelink, their two main 
reasons for doing so were A) to make it not stack with itself, and B) to 
prevent people from losing the game when they block with a creature with 
lifelink before they can gain the life (when it was still a triggered ability, 
if I were at 1 life, had just a 2/2 with lifelink, and blocked one of your two 
attacking 1/1s, I would lose from having 0 life before I could gain the 2 life 
from the triggered lifelink ability. Now the life gain and damage are 
simultaneous, so I gain 2 and lose 1 for a net of +1 and live).

Now regarding several of the later comments, I too have noticed a too-strong 
focus by the AI on the creatures to the left side of the battlefield (the 
oldest ones). In the mid-to-late game, as soon as I get sufficient defenders 
out so the AI stops all-out attacking, I can reliably predict that if I attack 
with exactly one creature, the AI will defend with exactly one creature, and it 
will always be his leftmost creature, even if there is another creature that 
would be much smarter to block with. For example, I could attack with a 6/4 
with trample, if he has, from left to right, a 1/1 with regenerate (but he's 
out of mana), two 2/3 first strikers, and a 4/4 flier, I know he will block 
with the 1/1 and it will die, rather than dual-blocking with the pair of first 
strikers. Then on each of my next two turns he will chump block with each of 
them once. Likewise he will use his removal spells on my older creatures before 
targeting the 6/4 (although he might Doom Blade it after I've declared it as an 
attacker sometimes).

Original comment by Dansi...@gmail.com on 13 May 2012 at 2:03

@GoogleCodeExporter
Copy link
Author

There are already a lot of example here but I'll just add this for 
completeness.  The AI at present (angelism deck) will put multiple copies of 
Pacifism on a single card even though there are other creatures available that 
can still block or attack.

It might be a sensible decision to play Pacifism more than once on a single 
creature if it's the only one in play and the AI can get a bonus simply from 
casting the enchantment but at present it doesn't seem to take that into 
account.

Original comment by mertensb...@gmail.com on 4 Jun 2013 at 4:22

@GoogleCodeExporter
Copy link
Author

Original comment by pank...@gmail.com on 28 Sep 2013 at 11:50

  • Added labels: AI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant