**Quote:**

6. XP decay/growth will be in an even interval in both directions of extremes. (?) is that the best system for grinding.

I'm not sure what you mean by this. Do you mean that between -5 and +5 levels, the XP yield will be equally spaced between 0x and 3x normal ?

If so, that isn't possible, because you're trying to interpolate three points (-5,0) (0,1) (5,3) with a straight line, which is impossible.

I suggest doing this:

**Code:**

Function LevelAdjustedXPYield( MyLevel, OpponentLevel, NormalXPYield)

LD = OpponentLevel - MyLevel

If LD =0 Then Multiplier = 1

If LD>0 And LD<5 Then Multiplier = 3^(LD/5)

If LD>=5 Then Multiplier = 3

If LD<0 And LD>-5 Then Multiplier = (LD+5)/5

If LD<=-5 Then Multiplier = 0

LevelAdjustedXPYield = NormalXPYield * Multiplier

End Function

If I'm at Level 7, and NormalXPYield = 100, this is what it gives:

L1 -- 0

L2 -- 0

L3 -- 20

L4 -- 40

L5 -- 60

L6 -- 80

(L7 -- 100)

L8 -- 125

L9 -- 155

L10 -- 193

L11 -- 241

L12 -- 300

L13 -- 300