Shandalar - Program Bugs
AI doesn't recognize haste on non-summoning-sick creature as redundant (fix completed in vcs)
I've seen the AI use Flinthoof Boar 's ability multiple times even when it had no summoning sickness. A strictly haste-giving ability should probably not be used more than once and at all unless the creature has summoning sickness.
Last edited by Korath on 30 Oct 2016, 07:28, edited 1 time in total.
Reason: Retitle from "Flinthoof Boar ability spam"
Reason: Retitle from "Flinthoof Boar ability spam"
Comments
Posted by Korath » 30 Oct 2016, 08:36
Not enough information to repro - it doesn't reactivate for me, or ever unless it's summoning sick - but I'll teach the AI that adding haste to a creature without summoning sickness is as useless as adding flying to a creature with flying. For what little good that does in the context of #531.
Posted by Korath » 30 Oct 2016, 10:34
commit d58edf9a2795ef4752dba0d015bca1af01d80331
Author: Korath <dgk@Beleriand.none>
Date: Sun Oct 30 06:31:21 2016 -0400
[GG] FIX #1227, FIX #1229: Pump::redundant(): situational redundancy
These are only recognized in the common case of adding keywords; removing them
is rare enough not to be worth the implmentation effort at this time.
Defender, Flying, Horsemanship, and Shadow deliberately not included, since
plenty of non-combat effects check for them.
Also don't flag adding bushido exalted, flanking, or rampage as redundant even
if the target already has them, unless eliminated below.
Rules:
Attack-despite-defender: Redundant unless has defender and is target's turn
before attackers
Basic landwalks, can't-be-blocked, Fear, Intimidate, Menace (when it's in),
Skulk: redundant unless target's turn before blocking and at least one of
opponent's creatures could currently block
Bushido, Flanking: redundant if after blockers, if after attackers on target's
turn and isn't attacking, or if after attackers on opponent's turn and no
creature are attacking
Can't-block: redundant unless opponent's turn before blockers
Banding: Redundant if have less than two creatures, if target's turn after
declare attackers, or opponent's turn after declare blockers
Exalted, Vigilance: redundant unless target's turn before attackers
First Strike, Double Strike: redundant if after combat damage, if before
blockers and can't be blocked, or if after blockers and isn't blocked
Haste: redundant if target isn't summonsick
Hexproof: redundant if target has shroud
Rampage: redundant on opponent's turn; otherwise treat as Bushido
Reach: redundant if target has flying or can't-block, or it isn't opponent's
turn before blocking
Regeneration: redundant if target has indestructible
Trample: redundant on opponent's turn; otherwise treat as First Strike
Support:
any_can_block_target()
BEFORE_ATTACKERS()
Author: Korath <dgk@Beleriand.none>
Date: Sun Oct 30 06:31:21 2016 -0400
[GG] FIX #1227, FIX #1229: Pump::redundant(): situational redundancy
These are only recognized in the common case of adding keywords; removing them
is rare enough not to be worth the implmentation effort at this time.
Defender, Flying, Horsemanship, and Shadow deliberately not included, since
plenty of non-combat effects check for them.
Also don't flag adding bushido exalted, flanking, or rampage as redundant even
if the target already has them, unless eliminated below.
Rules:
Attack-despite-defender: Redundant unless has defender and is target's turn
before attackers
Basic landwalks, can't-be-blocked, Fear, Intimidate, Menace (when it's in),
Skulk: redundant unless target's turn before blocking and at least one of
opponent's creatures could currently block
Bushido, Flanking: redundant if after blockers, if after attackers on target's
turn and isn't attacking, or if after attackers on opponent's turn and no
creature are attacking
Can't-block: redundant unless opponent's turn before blockers
Banding: Redundant if have less than two creatures, if target's turn after
declare attackers, or opponent's turn after declare blockers
Exalted, Vigilance: redundant unless target's turn before attackers
First Strike, Double Strike: redundant if after combat damage, if before
blockers and can't be blocked, or if after blockers and isn't blocked
Haste: redundant if target isn't summonsick
Hexproof: redundant if target has shroud
Rampage: redundant on opponent's turn; otherwise treat as Bushido
Reach: redundant if target has flying or can't-block, or it isn't opponent's
turn before blocking
Regeneration: redundant if target has indestructible
Trample: redundant on opponent's turn; otherwise treat as First Strike
Support:
any_can_block_target()
BEFORE_ATTACKERS()
2 Posts
• Page 1 of 1
Ticket details
- Ticket ID: 1229
- Project: Shandalar
- Status: Fix completed in VCS
- Component: Duel AI
- Project version: Hall of the Sultan 2
- Priority: Normal
- Severity: Minor
- Assigned to: Korath
- Reported by: lujo
- Reporter's tickets: List all tickets
- Reported on: 26 Oct 2016, 12:53
- Last visited by Korath » 30 Oct 2016, 10:34.
