• dkates
  • Advanced Member Topic Starter
As the topic title, I just thought I'd take a look at some of the cards that do have AI scripts, but that I think could use some improvements in that regard. I'm aware that some of these scripts are Sebrian's older scripts, while others are Snarky's. Also, since I'll readily admit to not actually knowing or understanding the AI code, it's quite possible that some of these suggestions would not be possible or would have to modified. I'm also trying to avoid suggestions having to do with the broken trigger behaviors that I've reported already.

- Battlin' Boxer Counterpunch: Current behavior is "activate if able". Suggested behavior: Activate IF ((effect can be activated) AND (effect would not be negated)) AND (the battling Battlin' Boxer is in Attack Position) AND ((The added ATK would cause the battling Battlin' Boxer to win the battle) OR (The added ATK would prevent the AI from losing the duel)). Also, if Counterpunch is available in both the hand and Graveyard, give preference to activating from the Graveyard.
- Black Luster Soldier - Envoy of the Beginning: If memory serves, this card does not check whether the effect is/would be negated when deciding whether to activate the banish effect. Suggest adding that check to the existing code.
- Dark Armed Dragon: Does not currently check whether effect is/would be negated when deciding whether to activate effect. Suggest adding that check to the existing code.
- Gorz the Emissary of Darkness: Current behavior appears to be "activate if able". Should probably stay that way if triggered from Effect Damage, but for triggering from Battle Damage, it might be wise to have it hold back if the opponent has something stronger in Attack Position, but not anything strong enough to finish off the AI's LP. (If the opponent doesn't have something stronger, or if the opponent has something that hasn't attacked, can, and could finish off the AI's LP, Gorz should be activated.)
- Lyla, Lightsworn Sorceress: Since the S/T destruction effect can be activated in MP2 even if Lyla has attacked that turn, it might be worth adjusting the script so that, depending on the situation, the AI will attack with Lyla, then activate the S/T destruction effect in MP2.
- Hieratic Dragon of Su and Hieratic Dragon of Tefnuit: I've previously reported this one. Current behavior decides Battle Position based on the printed stats of the Dragon to be Summoned. Suggest changing it to always Summon in Defense Position. I think Hieratic Dragon of Atum already does this correctly.
- Destiny Hero - Malicious: Mostly good already. Only suggested change is to have it activate and Summon a Malicious in Defense Position if this would help to prevent a loss.
- Constellar Kaus: Currently, the AI will not Set this card, only Normal Summon it, and it will choose to Normal Summon this even if it couldn't Xyz after doing so and the opponent has something strong enough to take it out. Also, it will not use the Level-decrease to allow Kaus to be used for a Rank 3.
- Constellar Siat: Currently, it seems like the AI will sometimes not Special Summon this before performing a Normal Summon, despite having the ability to do so. Also, the AI will attack with this if the field is clear; suggest having the AI keep this in Defense Position. Finally, the AI only seems to check if there's another Constellar on the field when deciding whether to use the level-change effect; it should check for any other monster that it could then Xyz with.
- Dragged Down into the Grave: Currently only activates if it can get its hand to have nothing but Dark World monsters. Not bad, but since many of the Shadoll cards can also be triggered by being discarded with this card's effect, it would be nice to add those cards to the whitelist. Possibly also add Breakthrough Skill to the whitelist.
- Dark World Dealings: Similar suggestion to Dragged Down into the Grave. Currently activates if it has a Dark World monster in hand. Add Shadolls to that check, and to the "whitelist" for cards to discard. Also, Breakthrough Skill could be added in the same way.
- The Gates of Dark World: Currently activates if able, though I think it might be coded to not banish a Grapha. (Can't tell for sure.) Should activate only if it has a Dark World monster in hand (and a non-Grapha Fiend in the Graveyard).
- Eradicator Epidemic Virus: Currently activates if able. Should hold back until it can either chain to removal (meant to get rid of either the Virus itself or a monster that can be used for the cost) or until after attacking with the monster it would use for the cost.
- Brotherhood of the Fire Fist - Bear and Brotherhood of the Fire Fist - Gorilla: Will currently Normal Summon even if the opponent has only monsters that the monster can't kill in battle and the AI has no viable fuel for the effect. Should only Normal Summon this if the opponent has no monsters, the opponent has at least one monster that the monster can kill in battle, or the AI has a card fitting the whitelist for fueling the effect.
- Coach Soldier Wolfbark: Actually, I don't think this suggestion has to do with the script for Wolfbark itself, but Wolfbark is the most likely to make this come up. Apparently, when deciding whether to attack first or Xyz first, the AI seems to treat the monster it Summoned with Wolfbark as if it were in Attack Position. It should account for that if possible.
- Green Gadget, Yellow Gadget, and Red Gadget: Will Normal Summon these even if it can't then Xyz with them, wouldn't be able to use the effect, and wouldn't be able to use them to do Battle Damage that turn. Also, if possible, should avoid Normal Summoning these if it can't then Xyz with them and the Normal Summon would result in the opponent being able to finish off the AI's LP.
- Machina Fortress: Seems to be a little too willing to use Swift Scarecrow as fuel for the inherent Special Summon. Otherwise fine.
- Redox, Dragon Ruler of Boulders: Seems a little too willing to use the "banish 2 EARTHs; Special Summon this from Grave" effect, even if that means banishing valuable monsters from the grave or even the hand. Also, consider having this use that effect to come out in Attack Position during MP1 if the AI has suitable fuel and could do Battle Damage with it that turn, rather than always waiting until MP2 and coming out in Defense Position. (The "discard this and another EARTH; Special Summon 1 monster from the Graveyard" effect seems to work well, though it might again be a bit too willing to use Swift Scarecrow for the cost. I'd have to check that.)
- Heraldic Beast Twin-Headed Eagle: Will use this effect to put Xyz Materials on an Xyz that has its effect negated due to having been Summoned by Heraldic Beast Unicorn. While this would make sense if it were then going to, for example, use Rank-Up-Magic Limited Barian's Force targeting that same monster, and Summon (for example) Giant Hand Red, it doesn't seem to consider that.
- Advanced Heraldry Art: Works properly, only problem is that it will always throw a script error.
- Rank-Up-Magic Limited Barian's Force: Works properly, but tends to throw script errors.
- Artifact Sanctum: When the trigger for its on-destruction effect is met, it always throws a script error, and never uses this effect. Works well otherwise.
- Safe Zone: Works well, there's just one hitch in the behavior for being targeted for removal. The AI doesn't check that it actually can target an opposing monster with Safe Zone, only that the opponent has an Attack Position monster. While this usually doesn't matter, I've had instances where I targeted a Safe Zone for destruction while my only monster was Obelisk the Tormentor (which can't be targeted), and the AI triggered Safe Zone, only to be forced to target one of its own monsters because it couldn't target Obelisk.

Whew, that's more cards than I expected to hit on this list. Now, don't get me wrong, I really do like what you've been doing with the AI thus far. I just want to do what I can to help you make it even better, and since I can't really work on the AI code myself, the best I can think of is to report ways that it can be improved.
  • dkates
  • Advanced Member Topic Starter
Did some further testing, found something to update from the previous post and some things to add to the list.

I said in the previous post that Advanced Heraldry Art "always" throws a script error. Turns out it doesn't throw one every time. I'll have to test further to see what makes it actually throw script errors, but if the opponent's field is clear, it will not throw a script error.

As for the additions to the list...

- El-Shadoll Nephilim: Doesn't consider its "destroy Special Summoned monsters" effect when deciding whether/what to attack. If you have a Special Summoned monster that can be destroyed by Nephilim's effect but is bigger than Nephilim, Nephilim won't attack it. Ideal change would be to check whether the opposing monster can be destroyed by Nephilim's effect (to avoid it suiciding itself on destruction-immune monsters such as Beelze), and attack the strongest monster (or biggest threat, if it ever gets to the point that the AI can do that kind of threat assessment) that it can destroy.
- Constellar Praesepe: Current behavior is "activate if able". Should activate only when it would actually help (e.g. the battling Constellar is in Attack Position, it would not win the battle without the effect, and it would either win the battle or prevent a duel loss with the added ATK).
- Multiple Traps: There are many cases when the AI will activate multiple Traps (or even multiples of the same Trap) when it really only needs to activate one. This will usually result in, at least, wasting the extra cards, though sometimes it will actually do even worse than that. (Say, targeting a monster with an effect negator, and also activating something that will remove the same monster from the field, meaning that the effect will not be negated.) Shows up most often with attack-response Traps (such as Mirror Force and Dimensional Prison).
Thank you for the extensive feedback, this will help a lot :)

I cannot spend much time on the AI right now, but once I get back, I will start working on these.