MulByTypeEffectiveness was the right answer all along.
I also added a short pause to BattleScript_AttackWeakenedByStrongWinds before STRINGID_ATTACKWEAKENEDBSTRONGWINDS is printed.
-Removed ability popup when Strong Winds weakens a SE Flying-type move
-Went back to the way I handled the dmg calculation for that originally
-Made sure to try to clear the primal weathers in a couple of other battle scripts
-Allowed Drought, Drizzle, Sand Stream and Snow Warning to activate but fail if WEATHER_STRONG_WINDS is in effect.
-Changed the way in which Gulp Missile checks for a fainted opponent, just in case the reason why the attacker's defense wasn't being lowered is that the script was falling into BattleScript_GulpMissileNoSecondEffectGulping
-Took into account max Defense stat stage, because I forgot to do that too.
-Slightly changed the Defense reduction code, just in case.
-Fixed the text string that was printed. Gulp Missile doesn't raise a stat, after all.
-Fixed the script that was being called if the attacker has Clear Body, and also added jumps for Full Metal Body, White Smoke and Flower Veil.
-Removed IsBattlerAlive check for case ABILITY_GULP_MISSILE in ABILITYEFFECT_MOVE_END_ATTACKER. Turns out Cramorant can change form even on single wild battles.
-Added a check for IsBattlerAlive in the case ABILITY_GULP_MISSILE of ABILITYEFFECT_MOVE_END, because otherwise, for whatever reason, the user was trying to trigger the Gulping effect even in its base form.
-Set the stat to change for the Gulping effect from within the battle script. The rest of the effect is handled there, so may as well.
-Fixed the check for case ABILITY_GULP_MISSILE in ABILITYEFFECT_MOVE_END_ATTACKER. Apparently, a silent species change was happening because of the order of the checks. Thanks to AsparagusEduardo for pointing this one out.
-Fixed the secondary effect of a target's Gulp Missile affecting an attacker that has fainted.
-Fixed the Defense reduction of the Gulping effect bypassing Clear Body.
-Fixed Gulp Missile's activation. Its effects were happening even if the conditions weren't actually met in battle.
-Fixed Gulp Missile activating if the only/last target has already fainted.
-Fixed Gulp Missile's Gorging animation, though it still uses Tackle's.
-Fixed Gulp Missile's Gorging attack affecting an opponent with Magic Guard.
-Fixed Gulp Missile changing Cramorant's form if Surf failed.
The extra waitmessage command is ugly but appears to be needed - if it's moved before the printstring, the message isn't displayed long enough on single hit moves.