It is currently 27 Apr 2024, 12:26
   
Text Size

Bug reports

Moderators: ubeefx, beholder, melvin, ShawnieBoy, Lodici, CCGHQ Admins

Re: Bug reports

Postby 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
User avatar
zemo
 
Posts: 3
Joined: 11 Jun 2014, 01:35
Has thanked: 1 time
Been thanked: 0 time

Re: Bug reports

Postby 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

Postby ShawnieBoy » 11 Jun 2014, 23:17

jerichopumpkin wrote:MagicTargetChoiche.SACRIFICE_NONZOMBIE is not limited to creature permanents, so Call to the Grave lets and forces you to sacrifice other permanents
The error is in the TargetFilterFactory. MagicTargetChoice.SACRIFICE_NONZOMBIE eventually works its way to MagicTargetFilter.NON_ZOMBIE_YOU_CONTROL without a creature definition.

Will post a fix shortly - Good find
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Bug reports

Postby 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"? :)
User avatar
hong yie
Programmer
 
Posts: 216
Joined: 10 Mar 2013, 06:44
Location: Jakarta
Has thanked: 75 times
Been thanked: 9 times

Re: Bug reports

Postby 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.
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Bug reports

Postby hong yie » 19 Jun 2014, 02:06

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 on an enchantment card:
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.
i found this script on my Magarena, it seemed like an enchantment as removal to me. :)
User avatar
hong yie
Programmer
 
Posts: 216
Joined: 10 Mar 2013, 06:44
Location: Jakarta
Has thanked: 75 times
Been thanked: 9 times

Re: Bug reports

Postby melvin » 19 Jun 2014, 02:41

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.
Both game rules and timing are checked before a card is considered playable by the AI at a particular point.

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.
User avatar
melvin
AI Programmer
 
Posts: 1062
Joined: 21 Mar 2010, 12:26
Location: Singapore
Has thanked: 36 times
Been thanked: 459 times

Re: Bug reports

Postby 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.
User avatar
hong yie
Programmer
 
Posts: 216
Joined: 10 Mar 2013, 06:44
Location: Jakarta
Has thanked: 75 times
Been thanked: 9 times

Re: Bug reports

Postby jerichopumpkin » 19 Jun 2014, 11:58

hong yie 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.
i found this on an enchantment card:
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.
i found this script on my Magarena, it seemed like an enchantment as removal to me. :)
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?)
jerichopumpkin
 
Posts: 212
Joined: 12 Sep 2013, 11:21
Has thanked: 19 times
Been thanked: 13 times

Re: Bug reports

Postby ShawnieBoy » 19 Jun 2014, 13:29

melvin wrote:
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.
Both game rules and timing are checked before a card is considered playable by the AI at a particular point.

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.
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.

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?
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Bug reports

Postby ShawnieBoy » 19 Jun 2014, 13:32

jerichopumpkin wrote:
hong yie 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.
i found this on an enchantment card:
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.
i found this script on my Magarena, it seemed like an enchantment as removal to me. :)
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?)
Using a MagicTargetChoice.Negative("target nonland permanent") would help prevent the AI targeting it's own permanents.
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Bug reports

Postby jerichopumpkin » 19 Jun 2014, 18:03

ShawnieBoy wrote:Using a MagicTargetChoice.Negative("target nonland permanent") would help prevent the AI targeting it's own permanents.
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...
jerichopumpkin
 
Posts: 212
Joined: 12 Sep 2013, 11:21
Has thanked: 19 times
Been thanked: 13 times

Re: Bug reports

Postby ShawnieBoy » 19 Jun 2014, 21:29

jerichopumpkin wrote:
ShawnieBoy wrote:Using a MagicTargetChoice.Negative("target nonland permanent") would help prevent the AI targeting it's own permanents.
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...
An artificial condition could help with that, but yes, I agree; shouldn't really try and script cards away from their original card text.
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Bug reports

Postby 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. :)
User avatar
hong yie
Programmer
 
Posts: 216
Joined: 10 Mar 2013, 06:44
Location: Jakarta
Has thanked: 75 times
Been thanked: 9 times

Re: Bug reports

Postby melvin » 20 Jun 2014, 12:29

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...
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.
User avatar
melvin
AI Programmer
 
Posts: 1062
Joined: 21 Mar 2010, 12:26
Location: Singapore
Has thanked: 36 times
Been thanked: 459 times

PreviousNext

Return to Magarena

Who is online

Users browsing this forum: No registered users and 56 guests


Who is online

In total there are 56 users online :: 0 registered, 0 hidden and 56 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 56 guests

Login Form