Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
I imagine this is a really easy fix, but I can't seem to find it.
Where can I change the weakness and resistance multipliers? I want to switch them to 3/2 and 2/3, respectively.
Critical hits are also on my radar, but I think I did find this.
Yeah. So these things are usually called "typemod" in the code, and weirdly are counted in ⅛s. i.e. typemod=1 is ⅛×, =2 is ¼×, =16 is 2×, etc.
Lots of code looks at the actual number inside typemod, so you can't just start using different numbers—you're going to have to find the point in the code where it applies the typemod (e.g. something along the lines of "multiplier *= typemod/8") and convert into your new multipliers instead.
My thinking is that instead of doing that, you try and find only the final uses of typemod that happen during computing the actual damage number and remap those from eighths space into your own space.
You'll need to decide what to use for cases 2 (i.e. ¼×) and 32 (i.e. 4×), but I don't think any of the other possible numbers ever come up. Also it's important to use "x.0" instead of just "x" because Ruby inherited some stupid rules about division where 2/3=0 and 3/2=1 (it truncates towards 0).