Bug reports
by ubeefx
Moderators: ubeefx, beholder, melvin, ShawnieBoy, Lodici, CCGHQ Admins
Re: Bug reports
by zemo » 11 Jun 2014, 09:49
Hello Melvin
I found the problem. it seems the problem comes from my distro. i dont know, but it seems readlink in my distro doesnt have '-e' option. i read the readlink manual and changed '-en' parameter in Magarena.sh to '-fn' and it runs. i think because my distro is designed to be minimal so they dont compiled it with -e parameter. Thank you everybody, i'll back if i found another problem
I found the problem. it seems the problem comes from my distro. i dont know, but it seems readlink in my distro doesnt have '-e' option. i read the readlink manual and changed '-en' parameter in Magarena.sh to '-fn' and it runs. i think because my distro is designed to be minimal so they dont compiled it with -e parameter. Thank you everybody, i'll back if i found another problem
Re: Bug reports
by jerichopumpkin » 11 Jun 2014, 21:14
MagicTargetChoiche.SACRIFICE_NONZOMBIE is not limited to creature permanents, so Call to the Grave lets and forces you to sacrifice other permanents
- jerichopumpkin
- Posts: 212
- Joined: 12 Sep 2013, 11:21
- Has thanked: 19 times
- Been thanked: 13 times
Re: Bug reports
by ShawnieBoy » 11 Jun 2014, 23:17
The error is in the TargetFilterFactory. MagicTargetChoice.SACRIFICE_NONZOMBIE eventually works its way to MagicTargetFilter.NON_ZOMBIE_YOU_CONTROL without a creature definition.jerichopumpkin wrote:MagicTargetChoiche.SACRIFICE_NONZOMBIE is not limited to creature permanents, so Call to the Grave lets and forces you to sacrifice other permanents
Will post a fix shortly - Good find
-
ShawnieBoy - Programmer
- Posts: 601
- Joined: 02 Apr 2012, 22:42
- Location: UK
- Has thanked: 80 times
- Been thanked: 50 times
Re: Bug reports
by hong yie » 18 Jun 2014, 11:40
Monte Carlo plays "chained to the rock" without target at first turn. of course there's no target, its the first turn. that's not smart right? isn't it better to wait for potential victim?
how about changing the timing to "removal"?
how about changing the timing to "removal"?
-
hong yie - Programmer
- Posts: 216
- Joined: 10 Mar 2013, 06:44
- Location: Jakarta
- Has thanked: 75 times
- Been thanked: 9 times
Re: Bug reports
by ShawnieBoy » 18 Jun 2014, 18:04
Changing the timing won't change the AI - The timing only limits when the card can be played. As an Aura, it can only be cast during the Main phases. If switched to removal, it will be considered in response to other spells cast, and also during combat, when it cannot be cast, and will only eat up AI thinking time.
It's also why Sorceries which destroy permanents are timing=main, and not timing=removal.
A way to fix the behaviour would to be to have a condition attached, to only cast when the opponent has a creature on the battlefield that can be targeted.
It's also why Sorceries which destroy permanents are timing=main, and not timing=removal.
A way to fix the behaviour would to be to have a condition attached, to only cast when the opponent has a creature on the battlefield that can be targeted.
-
ShawnieBoy - Programmer
- Posts: 601
- Joined: 02 Apr 2012, 22:42
- Location: UK
- Has thanked: 80 times
- Been thanked: 50 times
Re: Bug reports
by hong yie » 19 Jun 2014, 02:06
i found this on an enchantment card:Changing the timing won't change the AI - The timing only limits when the card can be played. As an Aura, it can only be cast during the Main phases. If switched to removal, it will be considered in response to other spells cast, and also during combat, when it cannot be cast, and will only eat up AI thinking time.
- Code: Select all
name=Oblivion Ring
image=http://mtgimage.com/card/oblivion%20ring.jpg
value=4.400
removal=2
rarity=C
type=Enchantment
cost={2}{W}
ability=When SN leaves the battlefield, return the exiled card to the battlefield under its owner's control.
timing=removal
requires_groovy_code
oracle=When Oblivion Ring enters the battlefield, exile another target nonland permanent. When Oblivion Ring leaves the battlefield, return the exiled card to the battlefield under its owner's control.
-
hong yie - Programmer
- Posts: 216
- Joined: 10 Mar 2013, 06:44
- Location: Jakarta
- Has thanked: 75 times
- Been thanked: 9 times
Re: Bug reports
by melvin » 19 Jun 2014, 02:41
Both game rules and timing are checked before a card is considered playable by the AI at a particular point.ShawnieBoy wrote:Changing the timing won't change the AI - The timing only limits when the card can be played. As an Aura, it can only be cast during the Main phases. If switched to removal, it will be considered in response to other spells cast, and also during combat, when it cannot be cast, and will only eat up AI thinking time.
It's also why Sorceries which destroy permanents are timing=main, and not timing=removal.
For sorceries that destroy permanents, timing=removal is preferred, since timing=main doesn't add anything new since game rules already prevents sorceries from being played outside of main phases, but if the card ever gains flash (which is not possible currently) the removal timing will be useful to limit the places where the card is considered playable by the AI.
-
melvin - AI Programmer
- Posts: 1062
- Joined: 21 Mar 2010, 12:26
- Location: Singapore
- Has thanked: 36 times
- Been thanked: 459 times
Re: Bug reports
by hong yie » 19 Jun 2014, 02:48
creature with flash is played very well right now.
i've been oftenly surprised & sometime frustrated by restoration angel played by Monte Carlo. keep it up.
i've been oftenly surprised & sometime frustrated by restoration angel played by Monte Carlo. keep it up.
-
hong yie - Programmer
- Posts: 216
- Joined: 10 Mar 2013, 06:44
- Location: Jakarta
- Has thanked: 75 times
- Been thanked: 9 times
Re: Bug reports
by jerichopumpkin » 19 Jun 2014, 11:58
However I've seen the AI (minimax, I think) play Oblivion Ring with no targets very often... I fear that if this behaviour will be fixed by adding the check for a valid target, the AI will begin exiling his own permanents, which is way worst than casting such spells for nothing (or this behaviour is already prevented?)hong yie wrote:i found this on an enchantment card:Changing the timing won't change the AI - The timing only limits when the card can be played. As an Aura, it can only be cast during the Main phases. If switched to removal, it will be considered in response to other spells cast, and also during combat, when it cannot be cast, and will only eat up AI thinking time.i found this script on my Magarena, it seemed like an enchantment as removal to me.
- Code: Select all
name=Oblivion Ring
image=http://mtgimage.com/card/oblivion%20ring.jpg
value=4.400
removal=2
rarity=C
type=Enchantment
cost={2}{W}
ability=When SN leaves the battlefield, return the exiled card to the battlefield under its owner's control.
timing=removal
requires_groovy_code
oracle=When Oblivion Ring enters the battlefield, exile another target nonland permanent. When Oblivion Ring leaves the battlefield, return the exiled card to the battlefield under its owner's control.
- jerichopumpkin
- Posts: 212
- Joined: 12 Sep 2013, 11:21
- Has thanked: 19 times
- Been thanked: 13 times
Re: Bug reports
by ShawnieBoy » 19 Jun 2014, 13:29
Was something I was thinking about as there's plenty of cards that can allow playing cards "as if they had" flash. Although not implemented yet.melvin wrote:Both game rules and timing are checked before a card is considered playable by the AI at a particular point.ShawnieBoy wrote:Changing the timing won't change the AI - The timing only limits when the card can be played. As an Aura, it can only be cast during the Main phases. If switched to removal, it will be considered in response to other spells cast, and also during combat, when it cannot be cast, and will only eat up AI thinking time.
It's also why Sorceries which destroy permanents are timing=main, and not timing=removal.
For sorceries that destroy permanents, timing=removal is preferred, since timing=main doesn't add anything new since game rules already prevents sorceries from being played outside of main phases, but if the card ever gains flash (which is not possible currently) the removal timing will be useful to limit the places where the card is considered playable by the AI.
I do feel the timing system needs a bit of revision, as there's many times I've been unable to find the correct combination of playable phases from the current selection, and timing=pump is really overused. Abilities that give a p/t boost and an ability which affects blocking in combat, at instant speed, needs pumpFlash instead. (eg. +1/+1 and flying.)
Although if suggesting that card timings should be irrespective of their current phase playability, could remove pump entirely and only use pumpFlash. Along with Main and it's various incarnations. Or have all cards as timing=none?
-
ShawnieBoy - Programmer
- Posts: 601
- Joined: 02 Apr 2012, 22:42
- Location: UK
- Has thanked: 80 times
- Been thanked: 50 times
Re: Bug reports
by ShawnieBoy » 19 Jun 2014, 13:32
Using a MagicTargetChoice.Negative("target nonland permanent") would help prevent the AI targeting it's own permanents.jerichopumpkin wrote:However I've seen the AI (minimax, I think) play Oblivion Ring with no targets very often... I fear that if this behaviour will be fixed by adding the check for a valid target, the AI will begin exiling his own permanents, which is way worst than casting such spells for nothing (or this behaviour is already prevented?)hong yie wrote:i found this on an enchantment card:Changing the timing won't change the AI - The timing only limits when the card can be played. As an Aura, it can only be cast during the Main phases. If switched to removal, it will be considered in response to other spells cast, and also during combat, when it cannot be cast, and will only eat up AI thinking time.i found this script on my Magarena, it seemed like an enchantment as removal to me.
- Code: Select all
name=Oblivion Ring
image=http://mtgimage.com/card/oblivion%20ring.jpg
value=4.400
removal=2
rarity=C
type=Enchantment
cost={2}{W}
ability=When SN leaves the battlefield, return the exiled card to the battlefield under its owner's control.
timing=removal
requires_groovy_code
oracle=When Oblivion Ring enters the battlefield, exile another target nonland permanent. When Oblivion Ring leaves the battlefield, return the exiled card to the battlefield under its owner's control.
-
ShawnieBoy - Programmer
- Posts: 601
- Joined: 02 Apr 2012, 22:42
- Location: UK
- Has thanked: 80 times
- Been thanked: 50 times
Re: Bug reports
by jerichopumpkin » 19 Jun 2014, 18:03
Yes, but it would prevent "creative" use of such cards, just as if you had the "remove unusal target choiche" option turned on . For example, remove Abyssal Persecutor from the game in the second main, after giving the finishing blow. Although, thinking about it, I don't know if the AI is capable of such finesse...ShawnieBoy wrote:Using a MagicTargetChoice.Negative("target nonland permanent") would help prevent the AI targeting it's own permanents.
- jerichopumpkin
- Posts: 212
- Joined: 12 Sep 2013, 11:21
- Has thanked: 19 times
- Been thanked: 13 times
Re: Bug reports
by ShawnieBoy » 19 Jun 2014, 21:29
An artificial condition could help with that, but yes, I agree; shouldn't really try and script cards away from their original card text.jerichopumpkin wrote:Yes, but it would prevent "creative" use of such cards, just as if you had the "remove unusal target choiche" option turned on . For example, remove Abyssal Persecutor from the game in the second main, after giving the finishing blow. Although, thinking about it, I don't know if the AI is capable of such finesse...ShawnieBoy wrote:Using a MagicTargetChoice.Negative("target nonland permanent") would help prevent the AI targeting it's own permanents.
-
ShawnieBoy - Programmer
- Posts: 601
- Joined: 02 Apr 2012, 22:42
- Location: UK
- Has thanked: 80 times
- Been thanked: 50 times
Re: Bug reports
by hong yie » 20 Jun 2014, 07:10
so....
what should we do with this "chain to the rock" & "oblivion ring" & other similar cards ?
the Ai will surely perform much better without this issue.
what should we do with this "chain to the rock" & "oblivion ring" & other similar cards ?
the Ai will surely perform much better without this issue.
-
hong yie - Programmer
- Posts: 216
- Joined: 10 Mar 2013, 06:44
- Location: Jakarta
- Has thanked: 75 times
- Been thanked: 9 times
Re: Bug reports
by melvin » 20 Jun 2014, 12:29
Adding a hint to the target choice doesn't prevent "creative" use of the card. For players, target hints apply only if "remove unusual target choices" is on. For AI, target hints are always used.jerichopumpkin wrote:Yes, but it would prevent "creative" use of such cards, just as if you had the "remove unusal target choiche" option turned on . For example, remove Abyssal Persecutor from the game in the second main, after giving the finishing blow. Although, thinking about it, I don't know if the AI is capable of such finesse...
-
melvin - AI Programmer
- Posts: 1062
- Joined: 21 Mar 2010, 12:26
- Location: Singapore
- Has thanked: 36 times
- Been thanked: 459 times
Who is online
Users browsing this forum: No registered users and 56 guests