From 60fe8e6200429a84fd7275a1d045786477d113df Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 27 Mar 2021 11:17:20 +0100 Subject: [PATCH] more testing: magic skill grants additional 5% resistance --- src/magic.test.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/magic.test.c b/src/magic.test.c index 38a1324c3..af7cc09b7 100644 --- a/src/magic.test.c +++ b/src/magic.test.c @@ -480,6 +480,17 @@ static void test_resist_chance(CuTest *tc) { prob = frac_sub(prob, frac_make(1, 2)); /* only 50% base chance remains */ CuAssertIntEquals(tc, 0, prob.sa[0]); + /* 5% bonus in magic resistance for each magic level */ + set_level(u2, SK_MAGIC, 4); /* makes for 20% */ + prob = magic_resistance(u2); + prob = frac_sub(prob, frac_make(1, 5)); /* 20% from magic levels */ + CuAssertIntEquals(tc, 0, prob.sa[0]); + + prob = resist_chance(u1, u2, TYP_UNIT, 0); + prob = frac_sub(prob, frac_make(1, 2)); /* 50% basic resistance */ + prob = frac_sub(prob, frac_make(1, 5)); /* 20% from magic levels */ + CuAssertIntEquals(tc, 0, prob.sa[0]); + test_teardown(); } @@ -490,6 +501,12 @@ static void test_magic_resistance(CuTest *tc) { test_setup(); rc = test_create_race("human"); u = test_create_unit(test_create_faction_ex(rc, NULL), test_create_plain(0, 0)); + + /* 5% bonus in magic resistance for each magic level */ + set_level(u, SK_MAGIC, 4); /* makes for 20% */ + CuAssertTrue(tc, frac_equal(frac_make(1, 5), magic_resistance(u))); + set_level(u, SK_MAGIC, 0); + CuAssertTrue(tc, frac_equal(rc->magres, magic_resistance(u))); rc->magres = frac_one; CuAssert(tc, "magic resistance is capped at 0.9", frac_equal(magic_resistance(u), frac_make(9, 10)));