I find this bug to only be present in the vBrawl portraits build. The minus art DL I use as a base for personal builds does not have this issue.Also, in the files, you can't replace BPs by opening the BRRES files and replacing the images.
Sheik's chain whip stopped stunning Pichu until I hit Pichu with a different attack.
During the bug I encountered, Pichu was standing on the ground. I hit it with Sheik's chain whip several times, but the only effect I saw was Pichu getting damaged.When a character is stunned, they can't be stunned again until they land on the ground. They still take damage from stun attacks, but they don't experience hitlag, hitstun, or knockback.
The wishful fix would be replacing both with legit moves,
Transform can be canceled into non-special attacks and into shield/grab/dodge. This lets you stall a bit before attacking, and it also lets you airdodge out of tumble.
Very true, although I'd arguably still put that under the "niche" category.
One way to make it less niche would be to allow B-reversing it. Both Sheik and Zelda would benefit from the ability to instantly switch between fair and bair.
AI Waluigi and Mewtwo (in particular) have trouble recovering.
Specifically, if they're offstage, they'll just fall nonchalantly to their death after burning their jumps. They generally don't use their special moves to get back.
-------------
Not really "bugs" in the classical sense, but the AI for many of the characters make heavily suboptimal plays even when at level 9:
What I've noticed so far:
General:
Don't punish rest when missed. No (intentional) edge-hogging.
I have yet to see a DACUS being used.
Characters with pseudo-wavedashes (ROB, Wolf, etc.) neglect to use them.
Don't use ultra-taunts / don't often charge-up moves like Samus's Neutral-B in between stocks.
Pichu:
He doesn't really take advantage of all of his recovery, with Up-B generally getting used only once or twice, and rarely ever using Side-B.
Zelda/Sheik:
Uses Down-B. When practicing against one of them, it's really frustrating to have them switch randomly, given that no real player would do that (barring very niche circumstances). The wishful fix would be replacing both with legit moves, but I'd be fine with just removing that from the decision line-up.
Luigi:
Doesn't really use Down-B to recover, and rarely cancels dash attack into other things.
Yoshi/Ness:
I may just have not seen it yet, but they don't DJC.
FE characters:
Always flawless with using counters. This is where my knowledge of the AI runs really short in offering a fix, but I'm thinking lower the propensity to counter attacks that start before some frame X; that way things like Falcon Punch still get realistically punished while removing the jank that is countering in a window that no person ever could predict, let alone react to.
Falco:
Doesn't intentionally switch lasers, and doesn't understand at all how to wall with the slow lasers in neutral.
Jiggs:
Doesn't intentionally use explosion; I'm not sure if I want that to be a thing that they just go to immediately, but when Jiggs is up significantly in percent, I'd like to see more stock resets.
Snake:
Doesn't do sticky combos (up-throw,etc. -> kill off the top, explode sticky when opponent is offstage -> f-air, down-throw -> attach sticky, etc.)
I'll do some more investigation if I find anything else and/or remember some other odd ones.
Even PMDT AI had failings, and IIRC they put a crapton of work into looking into fixing AI [which is why the AI sometimes waveshines at all]. Given that Minus is as late as it is, and I'm sure the amount of effort that's put in, all the things you've mentioned are unrealistic, except possibly coding Waluigi/Mewtwo into using their recoveries correctly and *maybe* having Sheilda not use down+b. [Not to underestimate our dev team, but this is a long list of things, and most of them seem pretty tricky to deal with].
Rest Punishes:
when(opponentState(<isAsleep || isShieldBroken || is(Something similar)>)
{
movement.setAI(approach);
movement.setAI(attackWith(somePowerfulAttack); this might have to be manually picked for each character; I don't know if there's a method to call for the attack with the most KB/damage)
}
DACUS/Pseudowavedashes/stuff like that:
(just add into the options for movement (or, in the second case, replace dashing with) that set of actions in a sequence. i.e.
for ROB: (when he needs to attack an opponent that's far away with a smash attack) short hop -> d-air -> (whenOnGround && whenInRange) -> attack
Pichu: (same deal as normal recovery methods, but just don't stop the decision tree until it's actually exhausted everything) (I actually am unsure if Meta Knight uses everything either, although his recovery is still pretty respectable as is, so I wouldn't fret it if it causes any hair pulling.)
Ness/Yoshi: just make any aerial attacks on ground characters change from the usual to short hop -> immediate (or humanly possible) short hop -> attack
FE Characters:
No clue; I'd have to try to go back and read how the game normally handles when to counter and see what to change.
Falco: Just have him swap in to slow lasers whenever it's safe (in between stocks, etc.) and then just add both short hop -> laser and full hop -> laser(s) to the options. This might be a little tough to execute in practice though, given the AI doesn't really know how/when to zone efficiently; if any of the devs actually want to implement this, PM me and I'll see if I can help at all.
Jiggs:
while(thischaracter.damage >= (some damage percent)){
shield.propensity = (something like 95% or even 100%);
}
Snake:
This would be *really* tough; my guess would be construct a method for down-throw -> down-B, and then also find out if there's a variable for isStuck; then it'd be a when(opponentIs(offstage && isStuck)){ do whatever the combos are }. If there's no way of knowing that, I really have no clue.
Again, I don't think the AI knows how zoning is a thing, so a relatively easy one for land mines is just having him put them near the edges of the main platform, and then adding a method for finding the distance between him and a mine. After that,
when(isGrabbingSomeOpponent && (MineDistance >= acceptablerangeMin && MineDistance <= acceptablerangeMax)){
(
forward throw if that value is putting the mine on one side (negative/positive value)
back throw for the reverse case (positive/negative value)
)
}
Just wanna add to this...AI Waluigi and Mewtwo (in particular) have trouble recovering.
Specifically, if they're offstage, they'll just fall nonchalantly to their death after burning their jumps. They generally don't use their special moves to get back.