How is the Dragon's damage calculated in Rogue Legacy?

Solution 1:

The Dragon's attack is based on his Intelligence stat. Every attack he does is magical, so what you want is lots and lots of Magic Attack Up upgrades. Since he recovers MP so fast, it's easy enough to always have full MP.

Solution 2:

I dug through the code to find an answer to this, and it turns out both buttons for the dragon class do the exact same thing, which is to call CastSpell() (normally only done when pressing the 'spell' button).

Within CastSpell(), the total damage is only affected by PlayerObj.TotalMagicDamage - which depends only on your Magic-Up ("Intelligence") skill and any Magic-Up fairy chests you've opened - and some class/spell-related constants.

Thus, increasing your Attack-Up ("Strength") will not increase the dragon's attack damage at all; only Magic-Up will.