Hi Wyndrax, welcome.
I'm afraid that yes, the Evoker damage calculation is way too complex to make readable. That's likely why no version of the game has yet attempted to make spells read "deals x-y damage" - and it's certainly why 2038 hasn't.
A huge part of that is that data alone doesn't give clear numbers. But for reference, and hopefully some guidance if you do explore this with Reanimator, here are the basic building blocks I can see.
1. Foci damage.
As Kikina said, this is defined in "min Base Dmg" and "max Base Dmg" in items.txt.
(For reference, Harrowing has created custom items to test crit specifically - which is a different beast in itself. If this interests you, either to deduce damage formulas or to delve into crit next, you may find the outline of his work
in this post.)
2. Spell damage.
This is defined in "statsSkillEventServer" in skills.txt.
A crucial issue here, strictly discussing base direct damage, is that these numbers don't equate to flat values. "90" wouldn't mean "90 damage" but 90% of the skill's unknown actual damage; so you could split a skill into 90% direct, 10% splash, for example, or go beyond 100% and it still works fine.
But you may still tweak these to test formula hypotheses, hence the mention here.
3. Dual wield.
Once you dual wield foci you also get this factor that affects damage, by reducing each foci's performance to 60%. This is what threads like the one above dub "0.6", and it too factors in.
This state is named "dual_focus" in states.txt, but is not explained there either.
All of these come before crits and added affixes, of course, and should already explain just how complex this system is since data interacts with code. Many data tables are also subject to obscure calculations (like "cd Tick" mentioned by Kikina, where 5120 = 30/m), which only makes this harder.
Still, I hope this helped clarify the bare basics data-wise.
And hey,
asking some from the London 2038 project, but they don't like moders,
We don't object to modders or mod-minded questions, so you can always reach out about this stuff. Contra helped us pinpoint a data issue, for instance, so it's beneficial all in all.
We only mind when people try to mod the MP client (for MP play, not Contra's port), have SP mods mess with their MP installation (which is thankfully
covered), or spoil our work for MP players early.
And then there's of course the disagreement in perspective, where SP-minded players insist on diminishing the MP component or otherwise equalizing the two. But that's natural, and we don't mind these discussions.
So please, don't hesitate to reach out - I only grasp the fundamentals of data myself anyway. The worst response you might get should be "I can't answer that", not "begone you meddling modder".