This is probably already the case, but you should keep track of Nana's % as well (i.e. make sure she's at 0%). They might be combined in the calculation or something. A high % Nana going into rage mode might explain a disparity in behavior when Popo is at 0%. (relevant protip: Fox's lasers have splash damage so they're damaging both Climbers)
That's fair, I'll try it again, keeping that in mind. However, if nana's percent is even slightly different (+-1%) than popo's then we wouldn't see the changes where popo 79% has her not doing aerials, and 80% she does aerials.
Also, nana AI is going to be slightly different than popo AI, or just slightly simpler. With sopo any level, when the opponent is out of range and on the ground, he will shoot an ice block with more probability as the level of AI goes up. When the opponent is far away from nana, she will simply stand next to popo. When you get within a certain range, she will sometimes roll out or at high popo %'s dash attack. When you get even closer, if popo is above 60%, she will down-b. She doesn't seem to have a long range AI, like a computer sopo, and instead, her long range AI is to simply go idle, or run back to popo.
I did some testing, and while it's not conclusive, it still gives me some information.
2 minutes per cpu level with sopo (done with 20XX to easily get sopo, but I redid some of them with vanilla melee at the relevant levels 3, and 4 and saw no differences in the things I was checking)
30 seconds dashing back and forth in front of sopo
30 seconds running from one side of the map to the other (essentially evade)
30 seconds jumping above sopo in center stage
30 seconds shielding in front of sopo (with shield breaks)
All done on battlefield with human controlled demo-kirby
Code:
moves jabs smashes tilts proj b-moves aerials grabs throws combo
33 24+11 3 4 2 2 (0) 0 0 0 0
45 29+18 9 4 3 3 (0) 0 0 0 0
41 25+17 5 3 5 7 (2) 0 0 0 0
62 41+12 5 3 4 6 (2) 7 0 0 0
85 38+17 9 10 8 12 (4) 16 0 0 0
91 26+14 11 6 5 11 (6) 18 9 8 5
106 30+16 5 5 6 9 (3) 20 14 8 3
91 16+10 11 4 12 17 (5) 19 13 8 7
127 30+8 8 6 29 32 (3) 21 14 8 5 *ab
jabs - are of the format "[total]+[double hit]"
b-moves - are of the format "[total] ([non-projectile])"
combo - I'm noting here as a throw to charge fsmash. One peculiarity is that popo's combo seems to be fixed whether or not he has nana, I was wondering why popo would pummel, wait a second, and then throw, and it's because there is probably a down-b being inputed during the wait, but no nana to execute.
*ab notes the only time during testing where popo did a neutral-b while in the air
Things that seem discrete
does not use non-projectile b moves until lvl 3
does not aerial until lvl 4
does not grab until
lvl 7 lvl6
Things that could be controlled by probability, but would need more rigorous testing
'aggressiveness' number of moves per 2 minute period
between lvl4 and lvl5, the frequency in which sopo uses all moves other than jab doubles
double jabs at lvl 9
projectiles
smashes on shield (seem to be replaced by grabbing)
Things I didn't take into consideration, but may be relevant
combos? the only obvious one is grab->pummel->blizzard->charge forward smash
running vs walking
short hops
rolling
L-cancelling
crouching (he does this, and I don't know why)
platform vs ground AI
defensive AI
Things of note
before sopo was lvl 4, his response when my shield would break was to upsmash, after lvl 4 it was an aerial (usually nair)
during evade, popo would walk towards me sometimes doing neutral b, it was only when he got within a certain range that he would switch to other moves; at lvl 9, sopo would neutral b much closer, and more frequently than the other levels.
I don't think lvl 8 is less aggressive, I think I was just getting hit away from popo more during that test, and so he had less chance to hit me
Differences between nana AI and sopo AI
nana does not use probjectiles (if so, not anywhere near as much as sopo)
nana does not side b, or up b
nana does not combo (charge fsmash)
Otherwise, she shows similar discrete changes with sopo cpu levels.
I'm going to run tests next by damaging only popo and noting any changes at 20% intervals.
I may test damaging nana, and seeing if she changes her behaviour.
Also, putting nana into AI in different ways (teeter, desync double jump, popo on ledge)