When you say "removing all other sources of DR" what would these be (and why is their removal for the better)?
Skills and items are the other sources of %DR.
The reason for removing them is a handful of interlocking balance issues:
a. Now that armor is meaningful, we want to encourage players to build up their armor, rather than take the shortcut of using %DR gear.
b. Since you can now get a decent amount of %DR basically for free from the armor you already had anyway, the game gets too easy if you can get more.
c. I want to use the patched exe so that armor continues to be meaningful out beyond the reasonable limit on how much armor you can obtain. But that means that I have to remove every way that the player might exploit to get to 100% DR.
I'm tempted to reinstall GUTS just to see how you did this...
Summary:
1. Looping passive based off Share the Wealth. Adjusted the loop speed down to 0.125, shrank the damage shape down really tiny, and set the damage shape to only hit players.
2. Looping passive has five EVENT UNIT HIT blocks, one for each element. Each block contains an EXECUTE SKILL block that calls a calculator skill, and a statwatcher for that element's armor being not equal to a custom stat where I save the armor value from the last time the calculator skill ran. This helps performance by not calling the calculator skills during most iterations since armor values change infrequently. (Aside: This is also the first time I ever got a looping passive to call a subskill without crashing the game. Note this technique for future reference, since it may come in handy.)
3. Each calculator skill has 3 EVENT START blocks. The first one just sets a custom stat equal to the armor value, for the looping skill to check later. The second one contains 100 AFFIXES blocks. Each AFFIXES block contains an affix that sets a custom stat to what the final DR value is going to be, and two statwatchers (one >= and one <) using precomputed armor breakpoints. (The AFFIXES blocks for 0 and 99 only have one statwatcher.) (I'd rather use EFFECTS blocks instead of AFFIXES, but statwatchers are buggy in EFFECTS blocks.) The final EVENT START block gives a %DR bonus equal to the custom stat that got set in the second block. Exclusive is set to true, so it replaces the existing bonus with the new bonus. (I would have liked to set the DR bonus directly in the second EVENT START block rather than detouring through a custom stat, but it turns out there's insurmountable problems with any way you try to do that.)