AstralUniverse wrote: Fri Jun 06, 2025 11:35 amdef calculate_dc(dmg):
return math.ceil(10 + (dmg ** 0.75) * 2) #this part is what you want to tweak in order to explore different scaling curves. the **0.75 is the diminishing slope, and the *2 is a general multiplier that prevents my math from producing too low DCs at higher damage.while True:
dmg = int(input("Damage: "))
print(f"DC: {calculate_dc(dmg)}")This time it isnt going to ask you to input your denominator because I used a different formula that doesnt use the damage as the numerator and there's no division action at all (powering by a number smaller than one is a bit like division in some cases but not quite the same and this is the core difference and why it now works).
The idea here is that people are unlikely to build for concentration (or even consider SF/ESF as viable options) for as long as the possibility of them getting their spells reliably disrupted regardless persists - most will either accept that they'll have their spells disrupted anyway or not touch spellcasters at all.
And this right here is precisely what I'm trying to tweak, without changing the whole dynamics of the skill TOO MUCH. This formula gives people fighting chance against none-crit special attacks, and it gives them reason to sometimes consider sf+esf concentration. That's my goal, nothing more.
DC = 10 + (√dmg) x 6
(10 + (dmg ** 0.5) * 6)
Damage: 10 DC: 29
Damage: 20 DC: 37
Damage: 30 DC: 43
Damage: 40 DC: 47
Damage: 50 DC: 52
Damage: 60 DC: 56
Damage: 70 DC: 60
Damage: 80 DC: 63
Damage: 90 DC: 67
Damage: 100 DC: 70
Damage: 110 DC: 73
Damage: 120 DC: 76
Damage: 150 DC: 83
Damage: 180 DC: 90
Damage: 200 DC: 95
Damage: 300 DC: 114
IMO this keeps the DC numbers within reasonable values, gives enough incentive for considering SF/ESF without making them a must-have auto-include.