This replaces what was Double EXP, which was extremely limited.
What does this do for you? You can define a multiplier or a divisor for EXP based on many conditions, including character, class, enemy’s class, weapon wielded, chapter, and event ID.
How to: Make EXP bend to your will
ALIGN 4 #inctext lyn "ModularEXP/ModularEXP.elf" "ModularEXP/Hooks.elf" #define ModularEXPEntry(Character,Chapter,EventID,Multiplier,Divisor) "BYTE Character Chapter EventID Multiplier Divisor 0x00 0x00 0x00" ModularEXPChapterTable: ModularEXPEntry(0,0,0,0,0)
This table is how you will control EXP by chapter, character, and event ID. For each entry of this table, go ahead and fill those out like so, and specify how much you would like to mulyiply and divide by.
ModularEXPChapterTable: ModularEXPEntry(Franz,Chapter2,0x00,2,1) ModularEXPEntry(Ephraim,Chapter8,0x00,1,2) ModularEXPEntry(Colm,Chapter4,0x12,3,1) ModularEXPEntry(Seth,0xFF,0x00,2,3) ModularEXPEntry(0xFF,Chapter5,2,1) ModularEXPEntry(0,0,0,0,0)
Here we have an example usage.
The first entry will give Franz doubled EXP in chapter 2.
The second will give Ephraim halved EXP in chapter 8
The third will give Colm tripled EXP in chapter 4 only when event ID 0x12 is set,
The fourth will give seth two-thirds EXP in all chapters.
The fourth will give all units doubled EXP in chapter 5.
The last entry is simply a terminator.
Note that you CAN use fractions by multiplying and dividing together, and also remember that multiplying or dividing by 1 will have no effect.
That was part 1, the second part is a csv that’s indexed by class ID. Go ahead and incorporate Modular EXP Class Table.csv and it’s .nmm.
The first and second columns are the class multipliers and divisors these will always apply. Have a class that’s gaining too much EXP? Add a correctional multiplier and/or divisor.
The next 2 columns are the granting multipliers and divisors. These are the same thing as before except they apply when they grant EXP. If you want enemy soldiers to grant more EXP from combat, for example, add a multiplier here.
The rest of the columns are for weapon types. These will apply when this class is using this weapon type, and they do stack with all other multipliers and divisors. Want great knights to have 4/5 EXP when using axes for some reason? Just apply those to this part.
That’s it. Let me know of course if you find any bugs or problems of if you have any suggestions.
Some other notes
EXP per combat cannot exceed 100 EXP because of level up shenanigans. This routine will cap all EXP gains to 100.
Do not divide by 0. This should go without saying, but I accidentally did it during testing. Bad things happen.
This should be included AFTER the skill system because it conflicts with Paragon. It’ll simply overwrite Paragon’s hook. This shouldn’t be an issue for too long since I plan on integrating my ASM with the skill system to help with these irritating conflicts.