I found some more bugs, and fixes.
Dubious Remedy doesn't follow convention, so is unclear what it's intended effect should be, by default poison is applied to opponent and calm is applied yourself (but the help section lists it incorrectly), what the card actually does is apply both effects to yourself.
Focus works differently for the player compared to the opponent, the opponent's focus can mitigate poison damage or other damage that bypasses defenses, but the player's focus can't. To add that ability this code needs to be added to the hpToPlayer function, otherwise if poison is intended to bypass focus then the corresponding code from hpToOpponent needs to be removed. EDIT: Adding this breaks some effects that are supposed to bypass focus.
Python:
if pEffects.has_key(focusEff):
val = focusEff.onDamaged(val, True, isReaction)
Also found that abilityPage wasn't automatically changed when necessary, such as when discarding abilities or starting a new dream dive, so for the former I changed this block of code in removeCard.
Python:
if card in backupAbilities:
backupAbilities.pop(backupAbilities.index(card))
if abilityPage > 0 and abilityPage > (len(backupAbilities) - 1) / 9:
previousPage()
On the side I noticed that the hippy can't accomplish anything if you have any aphro cards.