Initial Ascend Ailments implementation

This commit is contained in:
2026-08-25 20:59:25 +02:00
commit 03deff254f
65 changed files with 4313 additions and 0 deletions
@@ -0,0 +1,26 @@
package net.fretux.ailments.api;
import net.fretux.ailments.compat.AscendCompat;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
class AilmentScalingTest {
@Test void durationCurveMatchesBalanceTargets() {
assertEquals(1.00, AilmentScaling.getDurationMultiplierForArcane(0), 0.001);
assertEquals(1.08, AilmentScaling.getDurationMultiplierForArcane(20), 0.01);
assertEquals(1.15, AilmentScaling.getDurationMultiplierForArcane(40), 0.01);
assertEquals(1.21, AilmentScaling.getDurationMultiplierForArcane(60), 0.011);
assertEquals(1.26, AilmentScaling.getDurationMultiplierForArcane(80), 0.011);
assertEquals(1.30, AilmentScaling.getDurationMultiplierForArcane(100), 0.001);
assertEquals(1.30, AilmentScaling.getDurationMultiplierForArcane(500), 0.001);
}
@Test void absentAscendAndNullSourceAreSafeDefaults() {
assertDoesNotThrow(() -> AscendCompat.getArcane(null));
assertEquals(0, AscendCompat.getArcane(null));
assertEquals(1.0, AilmentScaling.getDurationMultiplier(null), 0.0);
assertEquals(160, AilmentScaling.scaleDuration(160, null));
}
}